struct FVector
{
public:
/** Vector's X component. */
float X;
/** Vector's Y component. */
float Y;
/** Vector's Z component. */
float Z;
}
最基本也是最重要的向量类了,包含了大量的变换和操作,涉及到很多的数学内容。
一些基本的常量向量:
/** A zero vector (0,0,0) */
static CORE_API const FVector ZeroVector;
/** One vector (1,1,1) */
static CORE_API const FVector OneVector;
/** Unreal up vector (0,0,1) */
static CORE_API const FVector UpVector;
/** Unreal down vector (0,0,-1) */
static CORE_API const FVector DownVector;
/** Unreal forward vector (1,0,0) */
static CORE_API const FVector ForwardVector;
/** Unreal backward vector (-1,0,0) */
static CORE_API const FVector BackwardVector;
/** Unreal right vector (0,1,0) */
static CORE_API const FVector RightVector;
/** Unreal left vector (0,-1,0) */
static CORE_API const FVector LeftVector;
基本操作
/**
* Calculate the cross product of two vectors.
*
* @param A The first vector.
* @param B The second vector.
* @return The cross product.
*/
FORCEINLINE FVector FVector::operator^(const FVector& V) const
{
return FVector
(
Y * V.Z - Z * V.Y,
Z * V.X - X * V.Z,
X * V.Y - Y * V.X
);
}
向量叉乘,[latex]\begin{bmatrix} x1\\y1\\ z1 \end{bmatrix}\times \begin{bmatrix} x2 \\ y2 \\ z2 \end{bmatrix}= \begin{bmatrix} y1z2-z1y2 \\ z1x2-x1z2 \\ x1y2-y1x2 \end{bmatrix}[/latex]
基本的向量操作都有了&#x