UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
VectorUtility.h File Reference
#include "Math/VectorRegister.h"
#include "Chaos/Core.h"

Go to the source code of this file.

Namespaces

namespace  Chaos
 
namespace  Chaos::Private
 

Functions

template<typename T >
TVectorZero ()
 
template<>
VectorRegister4Float TVectorZero< VectorRegister4Float > ()
 
template<>
VectorRegister4Double TVectorZero< VectorRegister4Double > ()
 
template<typename T >
TMakeVectorRegister (float X, float Y, float Z, float W)
 
template<>
VectorRegister4Float TMakeVectorRegister< VectorRegister4Float > (float X, float Y, float Z, float W)
 
template<>
VectorRegister4Double TMakeVectorRegister< VectorRegister4Double > (float X, float Y, float Z, float W)
 
template<typename T >
constexprTMakeVectorRegisterConstant (float X, float Y, float Z, float W)
 
template<>
constexpr VectorRegister4Float TMakeVectorRegisterConstant< VectorRegister4Float > (float X, float Y, float Z, float W)
 
template<>
constexpr VectorRegister4Double TMakeVectorRegisterConstant< VectorRegister4Double > (float X, float Y, float Z, float W)
 
template<typename T >
VectorRegister4Float TMakeVectorRegisterFloatFromDouble (const T &V)
 
template<>
VectorRegister4Float TMakeVectorRegisterFloatFromDouble< VectorRegister4Double > (const VectorRegister4Double &V)
 
template<>
constexpr VectorRegister4Float TMakeVectorRegisterFloatFromDouble< VectorRegister4Float > (const VectorRegister4Float &V)
 
FORCEINLINE VectorRegister4Float VectorCast4IntTo4Float (const VectorRegister4Int &V)
 
FORCEINLINE VectorRegister4Int VectorCast4FloatTo4Int (const VectorRegister4Float &V)
 
FORCEINLINE VectorRegister4Float VectorUnpackLo (const VectorRegister4Float &A, const VectorRegister4Float &B)
 
FORCEINLINE VectorRegister4Double VectorUnpackLo (const VectorRegister4Double &A, const VectorRegister4Double &B)
 
FORCEINLINE VectorRegister4Float VectorUnpackHi (const VectorRegister4Float &A, const VectorRegister4Float &B)
 
FORCEINLINE VectorRegister4Float VectorMoveLh (const VectorRegister4Float &A, const VectorRegister4Float &B)
 
FORCEINLINE VectorRegister4Float Chaos::Private::VectorDot3FastX (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Float Chaos::Private::VectorMatrixMultiply (const VectorRegister4Float &Vec, const FMatrix33 &M)
 
FORCEINLINE VectorRegister4Float Chaos::Private::VectorCrossNoFMA (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double Chaos::Private::VectorCrossNoFMA (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorBitwiseNotAnd (const VectorRegister4Float &A, const VectorRegister4Float &B)
 
FORCEINLINE VectorRegister4Double VectorBitwiseNotAnd (const VectorRegister4Double &A, const VectorRegister4Double &B)
 

Function Documentation

◆ TMakeVectorRegister()

template<typename T >
T TMakeVectorRegister ( float  X,
float  Y,
float  Z,
float  W 
)

◆ TMakeVectorRegister< VectorRegister4Double >()

template<>
VectorRegister4Double TMakeVectorRegister< VectorRegister4Double > ( float  X,
float  Y,
float  Z,
float  W 
)
inline

◆ TMakeVectorRegister< VectorRegister4Float >()

template<>
VectorRegister4Float TMakeVectorRegister< VectorRegister4Float > ( float  X,
float  Y,
float  Z,
float  W 
)
inline

◆ TMakeVectorRegisterConstant()

template<typename T >
constexpr T TMakeVectorRegisterConstant ( float  X,
float  Y,
float  Z,
float  W 
)
constexpr

◆ TMakeVectorRegisterConstant< VectorRegister4Double >()

◆ TMakeVectorRegisterConstant< VectorRegister4Float >()

◆ TMakeVectorRegisterFloatFromDouble()

template<typename T >
VectorRegister4Float TMakeVectorRegisterFloatFromDouble ( const T &  V)

◆ TMakeVectorRegisterFloatFromDouble< VectorRegister4Double >()

◆ TMakeVectorRegisterFloatFromDouble< VectorRegister4Float >()

◆ TVectorZero()

template<typename T >
T TVectorZero ( )

◆ TVectorZero< VectorRegister4Double >()

◆ TVectorZero< VectorRegister4Float >()

◆ VectorBitwiseNotAnd() [1/2]

FORCEINLINE VectorRegister4Double VectorBitwiseNotAnd ( const VectorRegister4Double A,
const VectorRegister4Double B 
)

◆ VectorBitwiseNotAnd() [2/2]

FORCEINLINE VectorRegister4Float VectorBitwiseNotAnd ( const VectorRegister4Float A,
const VectorRegister4Float B 
)

Combines two vectors using bitwise NOT AND (treating each vector as a 128 bit field)

Parameters
Vec11st vector
Vec22nd vector
Returns
VectorRegister4Float( for each bit i: !Vec1[i] & Vec2[i] )

◆ VectorCast4FloatTo4Int()

FORCEINLINE VectorRegister4Int VectorCast4FloatTo4Int ( const VectorRegister4Float V)

Cast VectorRegister4Float in VectorRegister4Int

Parameters
Vvector
Returns
VectorCast4FloatTo4Int( B.x, A.y, A.z, A.w)

◆ VectorCast4IntTo4Float()

FORCEINLINE VectorRegister4Float VectorCast4IntTo4Float ( const VectorRegister4Int V)

Cast VectorRegister4Int in VectorRegister4Float

Parameters
Vvector
Returns
VectorRegister4Float( B.x, A.y, A.z, A.w)

◆ VectorMoveLh()

FORCEINLINE VectorRegister4Float VectorMoveLh ( const VectorRegister4Float A,
const VectorRegister4Float B 
)

Moves the lower 2 SP FP values of b to the upper 2 SP FP values of the result. The lower 2 SP FP values of a are passed through to the result.

Parameters
A1st vector
B2nd vector
Returns
VectorRegister4Float( A.x, A.y, B.x, B.y)

◆ VectorUnpackHi()

FORCEINLINE VectorRegister4Float VectorUnpackHi ( const VectorRegister4Float A,
const VectorRegister4Float B 
)

Selects and interleaves the higher two SP FP values from A and B.

Parameters
A1st vector
B2nd vector
Returns
VectorRegister4Float( A.z, B.z, A.w, B.w)

◆ VectorUnpackLo() [1/2]

FORCEINLINE VectorRegister4Double VectorUnpackLo ( const VectorRegister4Double A,
const VectorRegister4Double B 
)

Selects and interleaves the lower two DP FP values from A and B.

Parameters
A1st vector
B2nd vector
Returns
VectorRegister4Float( A.x, B.x, A.y, B.y)

◆ VectorUnpackLo() [2/2]

FORCEINLINE VectorRegister4Float VectorUnpackLo ( const VectorRegister4Float A,
const VectorRegister4Float B 
)

Selects and interleaves the lower two SP FP values from A and B.

Parameters
A1st vector
B2nd vector
Returns
VectorRegister4Float( A.x, B.x, A.y, B.y)