12 :
x( a_fX ),
y( a_fY ),
z( a_fZ ),
w( a_fW )
16 :
x( a_pFloats[ 0 ] ),
y( a_pFloats[ 1 ] ),
z( a_pFloats[ 2 ] ),
w( a_pFloats[ 3 ] )
20 :
x( a_rcOther.
x ),
y( a_rcOther.
y ),
z( a_rcOther.
z ),
w( 1.0f )
24 :
x( a_rcOther.
x ),
y( a_rcOther.
y ),
z( a_rcOther.
z ),
w( a_rcOther.
w )
139 TFLOAT ratio = 1.0f / scalar;
148 if ( scalar != 0.0f )
150 TFLOAT ratio = 1.0f / scalar;
225 x = vec2.
z * vec1.
y - vec2.
y * vec1.
z;
226 y = vec1.
z * vec2.
x - vec2.
z * vec1.
x;
227 z = vec1.
x * vec2.
y - vec1.
y * vec2.
x;
287 return a_rcVec.
x ==
x && a_rcVec.
y ==
y && a_rcVec.
z ==
z;
3D vector implementation for the Toshi engine
#define TREINTERPRETCAST(TYPE, VALUE)
#define TOSHI_NAMESPACE_START
#define TOSHI_NAMESPACE_END
TFORCEINLINE TFLOAT Abs(TFLOAT fVal)
TFORCEINLINE TFLOAT Cos(TFLOAT fVal)
TFORCEINLINE TFLOAT Sqrt(TFLOAT a_fX)
constexpr TFLOAT MagnitudeSqXZ() const
constexpr TBOOL isNormalised(TFLOAT fVal=0.05f) const
static constexpr TFLOAT DistanceSqXZ(const TVector4 &vec1, const TVector4 &vec2)
constexpr void Lerp4(const TVector4 &start, const TVector4 &finish, TFLOAT t)
constexpr void Negate4(const TVector4 &vec)
constexpr TVector4 operator/(const TVector3 &other) const
TFLOAT MagnitudeXZ() const
constexpr void Add4(const TVector4 &vec)
static const constinit TVector4 VEC_POSZ
constexpr void Negate(const TVector4 &vec)
void operator*=(const TVector4 &other)
static constexpr TFLOAT DistanceSq(const TVector4 &vec1, const TVector4 &vec2)
TVector4 & operator-=(const TVector4 &other)
static const constinit TVector4 VEC_ZERO
constexpr void Substract(const TVector4 &a, const TVector4 &b)
void Cos(const TVector4 &vec)
TFLOAT constexpr DotProduct4(const TVector4 &vec) const
constexpr double GetScalarProjectionOnUnit(const TVector4 &vec)
constexpr void Substract(const TVector4 &vec)
constexpr void Multiply(const TVector4 &vec)
constexpr TVector4(const TVector4 &a_rcOther)
static void Swap(TVector4 &a_rVec1, TVector4 &a_rVec2)
constexpr void Add(const TVector3 &vec)
constexpr void Substract4(const TVector4 &vec)
void ProjectNormalToPlane(const TVector4 &vec, const TVector4 &vec2)
constexpr void Divide(const TVector4 &vec)
constexpr TVector4(TFLOAT a_pFloats[4])
constexpr void Substract4(const TVector4 &a, const TVector4 &b)
constexpr void Divide(const TVector4 &vec1, const TVector4 &vec2)
constexpr TVector4 operator+(const TVector3 &other) const
constexpr void Add(const TVector4 &a, const TVector4 &b)
constexpr void Set(const TVector4 &vec)
constexpr void Lerp3(const TVector4 &start, const TVector4 &finish, TFLOAT t)
static TFLOAT DistanceXZ(const TVector4 &vec1, const TVector4 &vec2)
constexpr TBOOL IsEqual(const TVector4 &a_rcVec) const
constexpr TVector4()=default
void operator=(const TVector4 &other)
const TVector2 & AsVector2() const
void operator*=(TFLOAT a_fScalar)
static constexpr TFLOAT DotProduct4(const TVector4 &vec1, const TVector4 &vec2)
constexpr TVector4 operator-(const TVector3 &other) const
static const constinit TVector4 VEC_POSY
constexpr TVector4(TFLOAT a_fX, TFLOAT a_fY, TFLOAT a_fZ, TFLOAT a_fW=1.0f)
constexpr void Multiply4(TFLOAT scalar)
constexpr TFLOAT MagnitudeSq() const
constexpr void Add(const TVector4 &vec)
constexpr void Multiply4(const TVector4 &vec)
constexpr TVector4(const TVector3 &a_rcOther)
constexpr void Set(TFLOAT floats[4])
static const constinit TVector4 VEC_NEGY
constexpr void Divide(const TVector4 &vec, TFLOAT scalar)
constexpr void Divide4(TFLOAT scalar)
constexpr void Set(TFLOAT x, TFLOAT y, TFLOAT z, TFLOAT w)
void CrossProduct(const TVector4 &vec1, const TVector4 &vec2)
void operator+=(const TVector4 &other)
constexpr TVector4 operator+(const TVector4 &other) const
TFLOAT Magnitude4() const
constexpr void Divide(TFLOAT scalar)
constexpr TVector4 operator*(const TVector3 &other) const
static const constinit TVector4 VEC_NEGX
void operator/=(TFLOAT a_fScalar)
static const constinit TVector4 VEC_NEGZ
static constexpr TFLOAT DotProduct(const TVector4 &vec1, const TVector4 &vec2)
static TFLOAT Distance(const TVector4 &vec1, const TVector4 &vec2)
static constexpr TFLOAT DotProduct3(const TVector4 &vec1, const TVector4 &vec2)
constexpr void Multiply4(const TVector4 &vec, TFLOAT scalar)
void operator/=(const TVector4 &other)
void operator=(const TVector3 &other)
void Abs(const TVector4 &vec4)
constexpr void Negate3(const TVector4 &vec)
constexpr void Multiply(const TVector4 &vec, TFLOAT scalar)
constexpr void Lerp4(const TVector4 &finish, TFLOAT t)
constexpr TVector4 operator*(const TVector4 &other) const
constexpr void Multiply(TFLOAT scalar)
constexpr TVector4 operator-(const TVector4 &other) const
constexpr TVector4 operator/(const TVector4 &other) const
constexpr void Set(const TVector3 &vec)
static const constinit TVector4 VEC_POSX
constexpr void Lerp3(const TVector4 &finish, TFLOAT t)
constexpr TFLOAT MagnitudeSq4() const
constexpr void Add4(const TVector4 &a, const TVector4 &b)
const TFLOAT * AsArray() const
TFLOAT constexpr DotProduct(const TVector4 &vec) const
TFLOAT constexpr DotProduct3(const TVector4 &vec) const
const TVector3 & AsVector3() const