Navigation
Unreal Engine C++ API Reference > Runtime > ChaosCore
Classes
Type | Name | Description | |
---|---|---|---|
![]() |
GivensRotation | Class for givens rotation. | |
![]() |
Pair | ||
![]() |
PMatrix | ||
![]() |
TAABB | ||
![]() |
TArrayCollection | ||
![]() |
TArrayCollectionArray | ||
![]() |
TArrayCollectionArrayBase | ||
![]() |
TArrayFaceND | ||
![]() |
TArrayND | ||
![]() |
TArrayNDBase | ||
![]() |
TObjectPool | ||
![]() |
TObjectPoolDeleter | A deleter for use with TUniquePtr and a TObjectPool item | |
![]() |
TRigidTransform | ||
![]() |
TRotation | ||
![]() |
TSimdInt32 | A TNumLanes-wide set of integers. | |
![]() |
TSimdRealf | A TNumLanes-wide set of single-precision floats. | |
![]() |
TSimdSelector | The result of Simd comparison operations and used in SimdSelect. | |
![]() |
TSimdValue | Used to store any value type in a TNumLanes-wide set. | |
![]() |
TSimdVec3f | A TNumLanes-wide set of floating point 3-vectors. | |
![]() |
TVector | ||
![]() |
TVectorTraits | ||
![]() |
VectorND |
Constants
Name | Description |
---|---|
Chaos::Private::SimdAlignment | WIP: Not ready for public use. |
Typedefs
Name | Description |
---|---|
FAABB3 | |
FAABB3f | |
FMatrix33 | |
FMatrix44 | |
FReal | Common data types for the Chaos physics engine. |
FRealDouble | Specific precision types, this should be used in very targeted places where the use of a specific type is necessary over using FReal |
FRealSingle | |
FRigidTransform3 | |
FRigidTransform3f | |
FRigidTransformRealSingle3 | |
FRotation3 | |
FRotation3f | |
FSimd4Int32 | |
FSimd4Realf | WIP: Not ready for public use. |
FSimd4Selector | |
FSimd4Vec3f | |
FTransformPair | |
FVec2 | |
FVec2f | |
FVec3 | |
FVec3f | |
FVec4 | |
PMatrix33d | |
TMatrix33 | |
TRequiresDestructor | The type needs to have a destructor run when the pool pointer is freed. |
TRotation3 | |
TTrivialDestruct | The type needs no destruction and can just be abandoned on free. |
TVec2 | |
TVec3 | |
TVec4 |
Functions
Type | Name | Description | |
---|---|---|---|
![]() |
float | Chaos::ConvertDoubleToFloat
(
double DoubleValue |
|
![]() |
TVec3< float > | Chaos::ConvertDoubleToFloat
(
TVec3< double > DoubleValue |
|
![]() |
double | Chaos::ConvertFloatToDouble
(
float FloatValue |
|
![]() |
TVec3< double > | Chaos::ConvertFloatToDouble
(
TVec3< float > FloatValue |
|
![]() |
void | Chaos::dRdFCorotated
(
const PMatrix< T, 3, 3 >& F, |
3X3 version of dRdF indexing of diff: dRdF[9*(i*3+j)+(m*3+n)] = dR.GetAt(m, n) /dF.GetAt (i, j): |
![]() |
void | Chaos::FlipSign
(
int i, |
Helper function of 3X3 SVD for flipping signs due to flipping signs of sigma. |
![]() |
FString | ||
![]() |
uint32 | Chaos::GetTypeHash
(
const Chaos::TVector< T, 3 >& V |
|
![]() |
uint32 | Chaos::GetTypeHash
(
const Chaos::TVector< T, 2 >& V |
|
![]() |
void | Chaos::MakeLambdaShape
(
PMatrix< T, 3, 3 >& H, |
Make a 3X3 matrix to lambda shape original form of H: x x x x x x x x x after : x 0 0 x x 0 x 0 x |
![]() |
Pair< T1, T2 > | Chaos::MakePair
(
const T1& First, |
|
![]() |
void | Chaos::MakeUpperBidiag
(
PMatrix< T, 3, 3 >& H, |
Make a 3X3 matrix to upper bidiagonal form original form of H: x x x x x x x x x after zero chase: x x 0 0 x x 0 0 x |
![]() |
TVector< T, 3 > | Chaos::operator*
(
const T S, |
|
![]() |
TVector< T, 3 > | Chaos::operator/
(
const T S, |
|
![]() |
bool | Chaos::operator==
(
const Pair< T1, T2 >& First, |
|
![]() |
bool | Chaos::operator>
(
const Pair< T1, T2 >& First, |
|
![]() |
void | Chaos::PolarDecomposition
(
const PMatrix< T, 2, 2 >& A, |
2x2 polar decomposition. |
![]() |
void | Chaos::PolarDecomposition
(
const PMatrix< T, 3, 3 >& A, |
3X3 polar decomposition. |
![]() |
void | Chaos::PolarDecomposition
(
const PMatrix< T, 2, 2 >& A, |
2x2 polar decomposition. |
![]() |
FSimd4Realf | Chaos::Private::SimdAdd
(
const FSimd4Realf& InL, |
|
![]() |
FSimd4Vec3f | Chaos::Private::SimdAdd
(
const FSimd4Vec3f& L, |
|
![]() |
bool | Chaos::Private::SimdAllTrue
(
const FSimd4Selector& InL |
|
![]() |
FSimd4Selector | Chaos::Private::SimdAnd
(
const FSimd4Selector& InL, |
|
![]() |
bool | Chaos::Private::SimdAnyTrue
(
const FSimd4Selector& InL |
4-wide Logical operations |
![]() |
FSimd4Vec3f | Chaos::Private::SimdCrossProduct
(
const FSimd4Vec3f& L, |
|
![]() |
FSimd4Realf | Chaos::Private::SimdDivide
(
const FSimd4Realf& InL, |
|
![]() |
FSimd4Realf | Chaos::Private::SimdDotProduct
(
const FSimd4Vec3f& L, |
|
![]() |
FSimd4Selector | Chaos::Private::SimdEqual
(
const FSimd4Realf& InL, |
|
![]() |
FSimd4Vec3f | Chaos::Private::SimdGatherAligned
(
const FVec3f& InA, |
4-wide Gather/Scatter operations Convert 4 row-vectors into 3 column-vectors NOTE: The input vectors must be 16-byte aligned and padded to 16 bytes to avoid reading past valid memory |
![]() |
FSimd4Selector | Chaos::Private::SimdGreater
(
const FSimd4Int32& InL, |
|
![]() |
FSimd4Selector | Chaos::Private::SimdGreater
(
const FSimd4Realf& InL, |
|
![]() |
FSimd4Selector | Chaos::Private::SimdGreaterEqual
(
const FSimd4Realf& InL, |
|
![]() |
FSimd4Selector | Chaos::Private::SimdGreaterEqual
(
const FSimd4Int32& InL, |
|
![]() |
FSimd4Realf | Chaos::Private::SimdInvSqrt
(
const FSimd4Realf& InV |
|
![]() |
FSimd4Selector | Chaos::Private::SimdLess
(
const FSimd4Int32& InL, |
|
![]() |
FSimd4Selector | Chaos::Private::SimdLess
(
const FSimd4Realf& InL, |
|
![]() |
FSimd4Realf | Chaos::Private::SimdMax
(
const FSimd4Realf& InL, |
|
![]() |
FSimd4Realf | Chaos::Private::SimdMin
(
const FSimd4Realf& InL, |
|
![]() |
FSimd4Vec3f | Chaos::Private::SimdMultiply
(
const FSimd4Vec3f& L, |
|
![]() |
FSimd4Vec3f | Chaos::Private::SimdMultiply
(
const FSimd4Realf& L, |
|
![]() |
FSimd4Realf | Chaos::Private::SimdMultiply
(
const FSimd4Realf& InL, |
|
![]() |
FSimd4Vec3f | Chaos::Private::SimdMultiply
(
const FSimd4Vec3f& L, |
|
![]() |
FSimd4Vec3f | Chaos::Private::SimdMultiplyAdd
(
const FSimd4Vec3f& L, |
|
![]() |
FSimd4Realf | Chaos::Private::SimdNegate
(
const FSimd4Realf& InL |
4-wide Math operations |
![]() |
FSimd4Selector | Chaos::Private::SimdNot
(
const FSimd4Selector& InL |
|
![]() |
FSimd4Selector | Chaos::Private::SimdNotEqual
(
const FSimd4Realf& InL, |
|
![]() |
FSimd4Selector | Chaos::Private::SimdOr
(
const FSimd4Selector& InL, |
|
![]() |
FSimd4Realf | Chaos::Private::SimdSelect
(
const FSimd4Selector& InSelector, |
|
![]() |
FSimd4Realf | Chaos::Private::SimdSqrt
(
const FSimd4Realf& InV |
|
![]() |
FSimd4Realf | Chaos::Private::SimdSquare
(
const FSimd4Realf& InV |
|
![]() |
FSimd4Vec3f | Chaos::Private::SimdSubtract
(
const FSimd4Vec3f& L, |
|
![]() |
FSimd4Realf | Chaos::Private::SimdSubtract
(
const FSimd4Realf& InL, |
|
![]() |
VectorRegister4Float | Chaos::Private::VectorCrossNoFMA
(
const VectorRegister4Float& Vec1, |
Calculates the cross product of two vectors (XYZ components). |
![]() |
VectorRegister4Double | Chaos::Private::VectorCrossNoFMA
(
const VectorRegister4Double& Vec1, |
Calculates the cross product of two vectors (XYZ components). |
![]() |
VectorRegister4Float | Chaos::Private::VectorDot3FastX
(
const VectorRegister4Float& Vec1, |
Calculates the dot product of two vectors and returns a vector with the result in the first component. |
![]() |
VectorRegister4Float | Chaos::Private::VectorMatrixMultiply
(
const VectorRegister4Float& Vec, |
|
![]() |
void | Chaos::Process
(
PMatrix< T, 3, 3 >& B, |
Helper function of 3X3 SVD for Processing 2X2 SVD. |
![]() |
FArchive & | Chaos::SerializeReal
(
FArchive& Ar, |
This is used as |
![]() |
void | Chaos::SingularValueDecomposition
(
const PMatrix< T, 2, 2 >& A, |
2x2 SVD (singular value decomposition) A=USV' |
![]() |
void | Chaos::SingularValueDecomposition
(
const PMatrix< T, 2, 2 >& A, |
2x2 SVD (singular value decomposition) A=USV' |
![]() |
int | Chaos::SingularValueDecomposition
(
const PMatrix< T, 3, 3 >& A, |
3X3 SVD (singular value decomposition) A=USV' |
![]() |
void | Chaos::Sort0
(
PMatrix< T, 3, 3 >& U, |
Helper function of 3X3 SVD for sorting singular values. |
![]() |
void | Chaos::Sort1
(
PMatrix< T, 3, 3 >& U, |
Helper function of 3X3 SVD for Sorting singular values. |
![]() |
void | Chaos::SwapCols
(
PMatrix< T, 3, 3 >& A, |
IMPORTANT: test this function before testing polar: |
![]() |
void | Chaos::TryBulkSerializeArrayNDBase
(
FArchive& Ar, |
|
![]() |
void | Chaos::TryBulkSerializeArrayNDBase
(
FArchive& Ar, |
|
![]() |
void | Chaos::TryBulkSerializeArrayNDBase
(
FArchive& Ar, |
|
![]() |
void | Chaos::TryBulkSerializeArrayNDBase
(
FArchive& Ar, |
LWC_TODO : Perf pessimization : this is sub-optimal but will do until we sort the serialization out. |
![]() |
void | Chaos::TryBulkSerializeArrayNDBase
(
FArchive& Ar, |
LWC_TODO : Perf pessimization : this is sub-optimal but will do until we sort the serialization out. |
![]() |
void | Chaos::TryBulkSerializeArrayNDBaseForDoubles
(
FArchive& Ar, |
LWC_TODO : Perf pessimization : this is sub-optimal but will do until we sort the serialization out. |
![]() |
T | Chaos::WilkinsonShift
(
const T a1, |
Compute WilkinsonShift of the block a1 b1 b1 a2 based on the WilkinsonShift formula mu = c + d - sign (d) \ sqrt (d*d + b*b), where d = (a-c)/2. |
![]() |
void | Chaos::ZeroChase
(
PMatrix< T, 3, 3 >& H, |
Zero chasing the 3X3 matrix to bidiagonal form original form of H: x x 0 x x x 0 0 x after zero chase: x x 0 0 x x 0 0 x |
![]() |
T | TMakeVectorRegister
(
float X, |
|
![]() |
T | TMakeVectorRegisterConstant
(
float X, |
|
![]() |
VectorRegister4Float | TMakeVectorRegisterFloatFromDouble
(
const T& V |
|
![]() |
T | TVectorZero () |
Copyright Epic Games, Inc. All Rights Reserved. |
![]() |
VectorRegister4Float | VectorBitwiseNotAnd
(
const VectorRegister4Float& A, |
Combines two vectors using bitwise NOT AND (treating each vector as a 128 bit field) |
![]() |
VectorRegister4Double | VectorBitwiseNotAnd
(
const VectorRegister4Double& A, |
|
![]() |
VectorRegister4Int | VectorCast4FloatTo4Int
(
const VectorRegister4Float& V |
Cast VectorRegister4Float in VectorRegister4Int |
![]() |
VectorRegister4Float | VectorCast4IntTo4Float
(
const VectorRegister4Int& V |
Cast VectorRegister4Int in VectorRegister4Float |
![]() |
VectorRegister4Float | VectorMoveLh
(
const VectorRegister4Float& A, |
Moves the lower 2 SP FP values of b to the upper 2 SP FP values of the result. |
![]() |
VectorRegister4Float | VectorUnpackHi
(
const VectorRegister4Float& A, |
Selects and interleaves the higher two SP FP values from A and B. |
![]() |
VectorRegister4Float | VectorUnpackLo
(
const VectorRegister4Float& A, |
Selects and interleaves the lower two SP FP values from A and B. |
![]() |
VectorRegister4Double | VectorUnpackLo
(
const VectorRegister4Double& A, |
Selects and interleaves the lower two DP FP values from A and B. |
Variables
Type | Name | Description | |
---|---|---|---|
![]() |
bool | bRealTypeCompatibleWithISPC | ISPC optimization supports float and double, this allows classes that uses ISPC to branch to the right implementation without having to check the actual underlying type of FReal |
![]() |
const TCHAR *const | ChaosVersionGUID | NOTE: if you get a merge conflict on the GUID, you must replace it with a new GUID - do not accept the source or target or you will likely get DDC version conflicts resulting in crashes during load. |