Navigation
Unreal Engine C++ API Reference > Runtime > ChaosCore
Classes
Type | Name | Description | |
---|---|---|---|
![]() |
GivensRotation | Class for givens rotation. | |
![]() |
Pair | ||
![]() |
TArrayCollection | ||
![]() |
TArrayCollectionArrayBase | ||
![]() |
TArrayNDBase | ||
![]() |
TObjectPool | ||
![]() |
TObjectPoolDeleter | A deleter for use with TUniquePtr and a TObjectPool item | |
![]() |
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. | |
![]() |
TVectorTraits | ||
![]() |
VectorND |
Constants
Name | Description |
---|---|
Chaos::Private::SimdAlignment | WIP: Not ready for public use. |
Typedefs
Name | Description |
---|---|
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 | |
FVec2 | |
FVec2f | |
FVec3 | |
FVec3f | |
FVec4 | |
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, 2 >& V |
|
![]() |
uint32 | Chaos::GetTypeHash
(
const Chaos::TVector< T, 3 >& 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, 3, 3 >& A, |
3X3 polar decomposition. |
![]() |
void | Chaos::PolarDecomposition
(
const PMatrix< T, 2, 2 >& A, |
2x2 polar decomposition. |
![]() |
void | Chaos::PolarDecomposition
(
const PMatrix< T, 2, 2 >& A, |
2x2 polar decomposition. |
![]() |
FSimd4Vec3f | Chaos::Private::SimdAdd
(
const FSimd4Vec3f& L, |
|
![]() |
FSimd4Realf | Chaos::Private::SimdAdd
(
const FSimd4Realf& InL, |
|
![]() |
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 operationsConvert 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 FSimd4Realf& InL, |
|
![]() |
FSimd4Selector | Chaos::Private::SimdGreater
(
const FSimd4Int32& 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 FSimd4Realf& InL, |
|
![]() |
FSimd4Selector | Chaos::Private::SimdLess
(
const FSimd4Int32& InL, |
|
![]() |
FSimd4Realf | Chaos::Private::SimdMax
(
const FSimd4Realf& InL, |
|
![]() |
FSimd4Realf | Chaos::Private::SimdMin
(
const FSimd4Realf& InL, |
|
![]() |
FSimd4Vec3f | Chaos::Private::SimdMultiply
(
const FSimd4Realf& L, |
|
![]() |
FSimd4Vec3f | Chaos::Private::SimdMultiply
(
const FSimd4Vec3f& 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 |
|
![]() |
FSimd4Realf | Chaos::Private::SimdSubtract
(
const FSimd4Realf& InL, |
|
![]() |
FSimd4Vec3f | Chaos::Private::SimdSubtract
(
const FSimd4Vec3f& L, |
|
![]() |
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, |
LWC_TODO : Perf pessimization : this is sub-optimal but will do until we sort the serialization out. |
![]() |
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::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 |
Variables
Type | Name | Description | |
---|---|---|---|
![]() |
constexpr 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. |