UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Chaos::PMatrix< FRealDouble, 3, 3 > Class Reference

#include <Matrix.h>

+ Inheritance diagram for Chaos::PMatrix< FRealDouble, 3, 3 >:

Public Member Functions

 PMatrix ()
 
 PMatrix (UE::Math::TMatrix< FRealDouble > &&Other)
 
 PMatrix (const UE::Math::TMatrix< FRealSingle > &Other)
 
 PMatrix (const UE::Math::TMatrix< FRealDouble > &Other)
 
 PMatrix (const FRealDouble x00, const FRealDouble x11, const FRealDouble x22)
 
 PMatrix (const TVector< FRealDouble, 3 > &Vector)
 
 PMatrix (const FRealDouble x00, const FRealDouble x10, const FRealDouble x20, const FRealDouble x11, const FRealDouble x21, const FRealDouble x22)
 
 PMatrix (const FRealDouble x00, const FRealDouble x10, const FRealDouble x20, const FRealDouble x01, const FRealDouble x11, const FRealDouble x21, const FRealDouble x02, const FRealDouble x12, const FRealDouble x22)
 
 PMatrix (const FRealDouble x)
 
 PMatrix (const TVector< FRealDouble, 3 > &C1, const TVector< FRealDouble, 3 > &C2, const TVector< FRealDouble, 3 > &C3)
 
PMatrix< FRealDouble, 3, 3 > GetTransposed () const
 
FRealDouble Determinant () const
 
PMatrix< FRealDouble, 3, 3 > & operator+= (const PMatrix< FRealDouble, 3, 3 > &Other)
 
TVector< FRealDouble, 3 > operator* (const TVector< FRealDouble, 3 > &Other) const
 
PMatrix< FRealDouble, 3, 3 > operator+ (const PMatrix< FRealDouble, 3, 3 > &Other) const
 
PMatrix< FRealDouble, 3, 3 > operator- (const PMatrix< FRealDouble, 3, 3 > &Other) const
 
PMatrix< FRealDouble, 3, 3 > operator* (const PMatrix< FRealDouble, 3, 3 > &Other) const
 
PMatrix< FRealDouble, 3, 3 > operator* (const FRealDouble Other) const
 
PMatrix< FRealDouble, 3, 3 > operator*= (const FRealDouble Other)
 
PMatrix< FRealDouble, 3, 2 > operator* (const PMatrix< FRealDouble, 3, 2 > &Other) const
 
PMatrix< FRealDouble, 3, 3 > SubtractDiagonal (const FRealDouble Scalar) const
 
PMatrix< FRealDouble, 3, 3 > SymmetricCofactorMatrix () const
 
TVector< FRealDouble, 3 > LargestColumnNormalized () const
 
FORCEINLINE TVector< FRealDouble, 3 > GetAxis (int32 AxisIndex) const
 
FORCEINLINE void SetAxis (int32 AxisIndex, const TVector< FRealDouble, 3 > &Axis)
 
FORCEINLINE TVector< FRealDouble, 3 > GetRow (int32 RowIndex) const
 
FORCEINLINE void SetRow (int32 RowIndex, const TVector< FRealDouble, 3 > &V)
 
FORCEINLINE TVector< FRealDouble, 3 > GetColumn (int32 ColumnIndex) const
 
FORCEINLINE void SetColumn (int32 ColumnIndex, const TVector< FRealDouble, 3 > &V)
 
FORCEINLINE TVector< FRealDouble, 3 > GetDiagonal () const
 
FORCEINLINE FRealDouble GetAt (int32 RowIndex, int32 ColIndex) const
 
FORCEINLINE void SetAt (int32 RowIndex, int32 ColIndex, FRealDouble V)
 
bool Equals (const PMatrix< FRealDouble, 3, 3 > &Other, FRealDouble Tolerance=UE_KINDA_SMALL_NUMBER) const
 
- Public Member Functions inherited from UE::Math::TMatrix< FRealDouble >
void DiagnosticCheckNaN () const
 
 TMatrix ()=default
 
 TMatrix (EForceInit)
 
 TMatrix (const TPlane< FRealDouble > &InX, const TPlane< FRealDouble > &InY, const TPlane< FRealDouble > &InZ, const TPlane< FRealDouble > &InW)
 
 TMatrix (const TVector< FRealDouble > &InX, const TVector< FRealDouble > &InY, const TVector< FRealDouble > &InZ, const TVector< FRealDouble > &InW)
 
 TMatrix (const TMatrix< FArg > &From)
 
void SetIdentity ()
 
TMatrix< FRealDouble > operator* (const TMatrix< FRealDouble > &Other) const
 
TMatrix< FRealDouble > operator* (FRealDouble Other) const
 
void operator*= (const TMatrix< FRealDouble > &Other)
 
void operator*= (FRealDouble Other)
 
TMatrix< FRealDouble > operator+ (const TMatrix< FRealDouble > &Other) const
 
void operator+= (const TMatrix< FRealDouble > &Other)
 
bool operator== (const TMatrix< FRealDouble > &Other) const
 
bool Equals (const TMatrix< FRealDouble > &Other, FRealDouble Tolerance=UE_KINDA_SMALL_NUMBER) const
 
bool operator!= (const TMatrix< FRealDouble > &Other) const
 
TVector4< FRealDouble > TransformFVector4 (const TVector4< FRealDouble > &V) const
 
TVector4< FRealDouble > TransformPosition (const TVector< FRealDouble > &V) const
 
TVector< FRealDouble > InverseTransformPosition (const TVector< FRealDouble > &V) const
 
TVector4< FRealDouble > TransformVector (const TVector< FRealDouble > &V) const
 
TVector< FRealDouble > InverseTransformVector (const TVector< FRealDouble > &V) const
 
TMatrix< FRealDouble > GetTransposed () const
 
FRealDouble Determinant () const
 
FRealDouble RotDeterminant () const
 
TMatrix< FRealDouble > InverseFast () const
 
TMatrix< FRealDouble > Inverse () const
 
TMatrix< FRealDouble > TransposeAdjoint () const
 
void RemoveScaling (FRealDouble Tolerance=UE_SMALL_NUMBER)
 
TMatrix< FRealDouble > GetMatrixWithoutScale (FRealDouble Tolerance=UE_SMALL_NUMBER) const
 
TVector< FRealDouble > ExtractScaling (FRealDouble Tolerance=UE_SMALL_NUMBER)
 
TVector< FRealDouble > GetScaleVector (FRealDouble Tolerance=UE_SMALL_NUMBER) const
 
TMatrix< FRealDouble > RemoveTranslation () const
 
TMatrix< FRealDouble > ConcatTranslation (const TVector< FRealDouble > &Translation) const
 
bool ContainsNaN () const
 
void ScaleTranslation (const TVector< FRealDouble > &Scale3D)
 
FRealDouble GetMinimumAxisScale () const
 
FRealDouble GetMaximumAxisScale () const
 
TMatrix< FRealDouble > ApplyScale (FRealDouble Scale) const
 
TVector< FRealDouble > GetOrigin () const
 
TVector< FRealDouble > GetScaledAxis (EAxis::Type Axis) const
 
void GetScaledAxes (TVector< FRealDouble > &X, TVector< FRealDouble > &Y, TVector< FRealDouble > &Z) const
 
TVector< FRealDouble > GetUnitAxis (EAxis::Type Axis) const
 
void GetUnitAxes (TVector< FRealDouble > &X, TVector< FRealDouble > &Y, TVector< FRealDouble > &Z) const
 
void SetAxis (int32 i, const TVector< FRealDouble > &Axis)
 
void SetOrigin (const TVector< FRealDouble > &NewOrigin)
 
void SetAxes (const TVector< FRealDouble > *Axis0=NULL, const TVector< FRealDouble > *Axis1=NULL, const TVector< FRealDouble > *Axis2=NULL, const TVector< FRealDouble > *Origin=NULL)
 
TVector< FRealDouble > GetColumn (int32 i) const
 
void SetColumn (int32 i, TVector< FRealDouble > Value)
 
CORE_API UE::Math::TRotator< FRealDouble > Rotator () const
 
CORE_API UE::Math::TQuat< FRealDouble > ToQuat () const
 
void To3x4MatrixTranspose (FRealDouble *Out) const
 
void To3x4MatrixTranspose (float *Out) const
 
bool GetFrustumNearPlane (TPlane< FRealDouble > &OuTPln) const
 
bool GetFrustumFarPlane (TPlane< FRealDouble > &OuTPln) const
 
bool GetFrustumLeftPlane (TPlane< FRealDouble > &OuTPln) const
 
bool GetFrustumRightPlane (TPlane< FRealDouble > &OuTPln) const
 
bool GetFrustumTopPlane (TPlane< FRealDouble > &OuTPln) const
 
bool GetFrustumBottomPlane (TPlane< FRealDouble > &OuTPln) const
 
void Mirror (EAxis::Type MirrorAxis, EAxis::Type FlipAxis)
 
FString ToString () const
 
void DebugPrint () const
 
uint32 ComputeHash () const
 
bool Serialize (FArchive &Ar)
 
bool SerializeFromMismatchedTag (FName StructTag, FArchive &Ar)
 

Static Public Member Functions

static PMatrix< FRealDouble, 3, 3 > FromDiagonal (const TVector< FRealDouble, 3 > &D)
 
static PMatrix< FRealDouble, 3, 3 > OuterProduct (const TVector< FRealDouble, 3 > &X, const TVector< FRealDouble, 3 > &Y)
 

Static Public Attributes

static const PMatrix< FRealDouble, 3, 3 > Zero = PMatrix<FRealDouble, 3, 3>(0, 0, 0)
 
static const PMatrix< FRealDouble, 3, 3 > Identity = PMatrix<FRealDouble, 3, 3>(1, 1, 1)
 
- Static Public Attributes inherited from UE::Math::TMatrix< FRealDouble >
static CORE_API const TMatrix Identity
 

Friends

PMatrix< FRealDouble, 3, 3 > operator+ (const PMatrix< FRealDouble, 3, 3 > &Other)
 
PMatrix< FRealDouble, 3, 3 > operator- (const PMatrix< FRealDouble, 3, 3 > &Other)
 
PMatrix< FRealDouble, 3, 3 > operator* (const FRealDouble OtherF, const PMatrix< FRealDouble, 3, 3 > &OtherM)
 

Additional Inherited Members

- Public Types inherited from UE::Math::TMatrix< FRealDouble >
using FReal = FRealDouble
 
- Public Attributes inherited from UE::Math::TMatrix< FRealDouble >
FRealDouble M [4][4]
 

Constructor & Destructor Documentation

◆ PMatrix() [1/10]

Chaos::PMatrix< FRealDouble, 3, 3 >::PMatrix ( )
inline

◆ PMatrix() [2/10]

Chaos::PMatrix< FRealDouble, 3, 3 >::PMatrix ( UE::Math::TMatrix< FRealDouble > &&  Other)
inline

◆ PMatrix() [3/10]

Chaos::PMatrix< FRealDouble, 3, 3 >::PMatrix ( const UE::Math::TMatrix< FRealSingle > &  Other)
inline

◆ PMatrix() [4/10]

Chaos::PMatrix< FRealDouble, 3, 3 >::PMatrix ( const UE::Math::TMatrix< FRealDouble > &  Other)
inline

◆ PMatrix() [5/10]

Chaos::PMatrix< FRealDouble, 3, 3 >::PMatrix ( const FRealDouble  x00,
const FRealDouble  x11,
const FRealDouble  x22 
)
inline

◆ PMatrix() [6/10]

Chaos::PMatrix< FRealDouble, 3, 3 >::PMatrix ( const TVector< FRealDouble, 3 > &  Vector)
inlineexplicit

◆ PMatrix() [7/10]

Chaos::PMatrix< FRealDouble, 3, 3 >::PMatrix ( const FRealDouble  x00,
const FRealDouble  x10,
const FRealDouble  x20,
const FRealDouble  x11,
const FRealDouble  x21,
const FRealDouble  x22 
)
inline

◆ PMatrix() [8/10]

Chaos::PMatrix< FRealDouble, 3, 3 >::PMatrix ( const FRealDouble  x00,
const FRealDouble  x10,
const FRealDouble  x20,
const FRealDouble  x01,
const FRealDouble  x11,
const FRealDouble  x21,
const FRealDouble  x02,
const FRealDouble  x12,
const FRealDouble  x22 
)
inline

◆ PMatrix() [9/10]

Chaos::PMatrix< FRealDouble, 3, 3 >::PMatrix ( const FRealDouble  x)
inline

◆ PMatrix() [10/10]

Chaos::PMatrix< FRealDouble, 3, 3 >::PMatrix ( const TVector< FRealDouble, 3 > &  C1,
const TVector< FRealDouble, 3 > &  C2,
const TVector< FRealDouble, 3 > &  C3 
)
inline

Member Function Documentation

◆ Determinant()

FRealDouble Chaos::PMatrix< FRealDouble, 3, 3 >::Determinant ( ) const
inline

◆ Equals()

bool Chaos::PMatrix< FRealDouble, 3, 3 >::Equals ( const PMatrix< FRealDouble, 3, 3 > &  Other,
FRealDouble  Tolerance = UE_KINDA_SMALL_NUMBER 
) const
inline

◆ FromDiagonal()

static PMatrix< FRealDouble, 3, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::FromDiagonal ( const TVector< FRealDouble, 3 > &  D)
inlinestatic

Return a diagonal matrix with the specified elements

◆ GetAt()

FORCEINLINE FRealDouble Chaos::PMatrix< FRealDouble, 3, 3 >::GetAt ( int32  RowIndex,
int32  ColIndex 
) const
inline

◆ GetAxis()

FORCEINLINE TVector< FRealDouble, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::GetAxis ( int32  AxisIndex) const
inline

Get the specified axis (0-indexed, X,Y,Z).

Note
: we are treating matrices as column major, so axis elements are sequential in memory

◆ GetColumn()

FORCEINLINE TVector< FRealDouble, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::GetColumn ( int32  ColumnIndex) const
inline

Get the specified column (0-indexed, X,Y,Z). Equivalent to GetAxis.

Note
: we are treating matrices as column major, so columns are sequential in memory @seealso GetAxis, GetRow

◆ GetDiagonal()

FORCEINLINE TVector< FRealDouble, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::GetDiagonal ( ) const
inline

Get the diagonal elements as a vector.

◆ GetRow()

FORCEINLINE TVector< FRealDouble, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::GetRow ( int32  RowIndex) const
inline

Get the specified row (0-indexed, X,Y,Z).

Note
: we are treating matrices as column major, so rows are not sequential in memory @seealso GetAxis, GetColumn

◆ GetTransposed()

PMatrix< FRealDouble, 3, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::GetTransposed ( ) const
inline

◆ LargestColumnNormalized()

TVector< FRealDouble, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::LargestColumnNormalized ( ) const
inline

◆ operator*() [1/4]

PMatrix< FRealDouble, 3, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::operator* ( const FRealDouble  Other) const
inline

◆ operator*() [2/4]

PMatrix< FRealDouble, 3, 2 > Chaos::PMatrix< FRealDouble, 3, 3 >::operator* ( const PMatrix< FRealDouble, 3, 2 > &  Other) const
inline

◆ operator*() [3/4]

PMatrix< FRealDouble, 3, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::operator* ( const PMatrix< FRealDouble, 3, 3 > &  Other) const
inline

◆ operator*() [4/4]

TVector< FRealDouble, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::operator* ( const TVector< FRealDouble, 3 > &  Other) const
inline

◆ operator*=()

PMatrix< FRealDouble, 3, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::operator*= ( const FRealDouble  Other)
inline

◆ operator+()

PMatrix< FRealDouble, 3, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::operator+ ( const PMatrix< FRealDouble, 3, 3 > &  Other) const
inline

◆ operator+=()

PMatrix< FRealDouble, 3, 3 > & Chaos::PMatrix< FRealDouble, 3, 3 >::operator+= ( const PMatrix< FRealDouble, 3, 3 > &  Other)
inline

◆ operator-()

PMatrix< FRealDouble, 3, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::operator- ( const PMatrix< FRealDouble, 3, 3 > &  Other) const
inline

◆ OuterProduct()

static PMatrix< FRealDouble, 3, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::OuterProduct ( const TVector< FRealDouble, 3 > &  X,
const TVector< FRealDouble, 3 > &  Y 
)
inlinestatic

◆ SetAt()

FORCEINLINE void Chaos::PMatrix< FRealDouble, 3, 3 >::SetAt ( int32  RowIndex,
int32  ColIndex,
FRealDouble  V 
)
inline

◆ SetAxis()

FORCEINLINE void Chaos::PMatrix< FRealDouble, 3, 3 >::SetAxis ( int32  AxisIndex,
const TVector< FRealDouble, 3 > &  Axis 
)
inline

Set the specified axis (0-indexed, X,Y,Z).

Note
: we are treating matrices as column major, so axis elements are sequential in memory

◆ SetColumn()

FORCEINLINE void Chaos::PMatrix< FRealDouble, 3, 3 >::SetColumn ( int32  ColumnIndex,
const TVector< FRealDouble, 3 > &  V 
)
inline

Set the specified column. Equivalent to SetAxis.

Note
: we are treating matrices as column major, so axis elements are sequential in memory @seealso SetAxis, SetRow

◆ SetRow()

FORCEINLINE void Chaos::PMatrix< FRealDouble, 3, 3 >::SetRow ( int32  RowIndex,
const TVector< FRealDouble, 3 > &  V 
)
inline

Set the specified row.

Note
: we are treating matrices as column major, so axis elements are sequential in memory @seealso SetAxis, SetColumn

◆ SubtractDiagonal()

PMatrix< FRealDouble, 3, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::SubtractDiagonal ( const FRealDouble  Scalar) const
inline

◆ SymmetricCofactorMatrix()

PMatrix< FRealDouble, 3, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::SymmetricCofactorMatrix ( ) const
inline

Friends And Related Symbol Documentation

◆ operator*

PMatrix< FRealDouble, 3, 3 > operator* ( const FRealDouble  OtherF,
const PMatrix< FRealDouble, 3, 3 > &  OtherM 
)
friend

◆ operator+

PMatrix< FRealDouble, 3, 3 > operator+ ( const PMatrix< FRealDouble, 3, 3 > &  Other)
friend

◆ operator-

PMatrix< FRealDouble, 3, 3 > operator- ( const PMatrix< FRealDouble, 3, 3 > &  Other)
friend

Member Data Documentation

◆ Identity

const PMatrix< FRealDouble, 3, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::Identity = PMatrix<FRealDouble, 3, 3>(1, 1, 1)
static

◆ Zero

const PMatrix< FRealDouble, 3, 3 > Chaos::PMatrix< FRealDouble, 3, 3 >::Zero = PMatrix<FRealDouble, 3, 3>(0, 0, 0)
static

The documentation for this class was generated from the following files: