12class [[nodiscard]] alignas(JPH_VECTOR_ALIGNMENT) 
Mat44 
   32    static JPH_INLINE 
Mat44     sZero();
 
   35    static JPH_INLINE 
Mat44     sIdentity();
 
   38    static JPH_INLINE 
Mat44     sNaN();
 
   41    static JPH_INLINE 
Mat44     sLoadFloat4x4(
const Float4 *inV);
 
   44    static JPH_INLINE 
Mat44     sLoadFloat4x4Aligned(
const Float4 *inV);
 
   47    static JPH_INLINE 
Mat44     sRotationX(
float inX);
 
   48    static JPH_INLINE 
Mat44     sRotationY(
float inY);
 
   49    static JPH_INLINE 
Mat44     sRotationZ(
float inZ);
 
   52    static JPH_INLINE 
Mat44     sRotation(
Vec3Arg inAxis, 
float inAngle);
 
   67    static JPH_INLINE 
Mat44     sScale(
float inScale);
 
   91    static JPH_INLINE 
Mat44     sPerspective(
float inFovY, 
float inAspect, 
float inNear, 
float inFar);
 
   94    JPH_INLINE 
float            operator () (
uint inRow, 
uint inColumn)
 const           { 
JPH_ASSERT(inRow < 4); 
JPH_ASSERT(inColumn < 4); 
return mCol[inColumn].mF32[inRow]; }
 
   98    JPH_INLINE 
bool             operator == (
Mat44Arg inM2) 
const;
 
   99    JPH_INLINE 
bool             operator != (
Mat44Arg inM2)
 const                       { 
return !(*
this == inM2); }
 
  102    JPH_INLINE 
bool             IsClose(
Mat44Arg inM2, 
float inMaxDistSq = 1.0e-12f) 
const;
 
  115    JPH_INLINE 
Vec3             Multiply3x3Transposed(
Vec3Arg inV) 
const;
 
  121    JPH_INLINE 
Mat44            Multiply3x3LeftTransposed(
Mat44Arg inM) 
const;
 
  124    JPH_INLINE 
Mat44            Multiply3x3RightTransposed(
Mat44Arg inM) 
const;
 
  131    JPH_INLINE 
Mat44 &          operator *= (
float inV);
 
  137    JPH_INLINE 
Mat44            operator - () 
const;
 
  164    JPH_INLINE 
void             StoreFloat4x4(
Float4 *outV) 
const;
 
  167    JPH_INLINE 
Mat44            Transposed() 
const;
 
  170    JPH_INLINE 
Mat44            Transposed3x3() 
const;
 
  173    JPH_INLINE 
Mat44            Inversed() 
const;
 
  176    JPH_INLINE 
Mat44            InversedRotationTranslation() 
const;
 
  179    JPH_INLINE 
float            GetDeterminant3x3() 
const;
 
  182    JPH_INLINE 
Mat44            Adjointed3x3() 
const;
 
  185    JPH_INLINE 
Mat44            Inversed3x3() 
const;
 
  188    JPH_INLINE 
bool             SetInversed3x3(
Mat44Arg inM);
 
  191    JPH_INLINE 
Mat44            GetRotation() 
const;
 
  194    JPH_INLINE 
Mat44            GetRotationSafe() 
const;
 
  197    JPH_INLINE 
void             SetRotation(
Mat44Arg inRotation);
 
  200    JPH_INLINE 
Quat             GetQuaternion() 
const;
 
  206    JPH_INLINE 
Mat44            PreTranslated(
Vec3Arg inTranslation) 
const;
 
  209    JPH_INLINE 
Mat44            PostTranslated(
Vec3Arg inTranslation) 
const;
 
  221    JPH_INLINE 
Mat44            Decompose(
Vec3 &outScale) 
const;
 
  223#ifndef JPH_DOUBLE_PRECISION 
  229    friend ostream &            operator << (ostream &inStream, 
Mat44Arg inM)
 
  231        inStream << inM.mCol[0] << 
", " << inM.mCol[1] << 
", " << inM.mCol[2] << 
", " << inM.mCol[3];
 
  239static_assert(is_trivial<Mat44>(), 
"Is supposed to be a trivial type!");
 
unsigned int uint
Definition: Core.h:452
 
#define JPH_NAMESPACE_END
Definition: Core.h:378
 
#define JPH_NAMESPACE_BEGIN
Definition: Core.h:372
 
DVec3 operator*(double inV1, DVec3Arg inV2)
Definition: DVec3.inl:451
 
#define JPH_ASSERT(...)
Definition: IssueReporting.h:33
 
const Mat44 & Mat44Arg
Definition: MathTypes.h:27
 
#define JPH_OVERRIDE_NEW_DELETE
Macro to override the new and delete functions.
Definition: Memory.h:31
 
Class that holds 4 float values. Convert to Vec4 to perform calculations.
Definition: Float4.h:11
 
Holds a 4x4 matrix of floats, but supports also operations on the 3x3 upper left part of the matrix.
Definition: Mat44.h:13
 
JPH_INLINE Vec3 GetAxisY() const
Definition: Mat44.h:148
 
JPH_INLINE void SetAxisX(Vec3Arg inV)
Definition: Mat44.h:147
 
JPH_INLINE void SetColumn3(uint inCol, Vec3Arg inV)
Definition: Mat44.h:159
 
JPH_INLINE Vec3 GetAxisZ() const
Definition: Mat44.h:150
 
JPH_INLINE Mat44 Transposed3x3() const
Transpose 3x3 subpart of matrix.
Definition: Mat44.inl:502
 
JPH_INLINE Mat44 GetDirectionPreservingMatrix() const
Get matrix that transforms a direction with the same transform as this matrix (length is not preserve...
Definition: Mat44.h:203
 
JPH_INLINE void SetDiagonal4(Vec4Arg inV)
Definition: Mat44.h:157
 
JPH_INLINE Mat44 ToMat44() const
In single precision mode just return the matrix itself.
Definition: Mat44.h:225
 
Vec4::Type Type
Definition: Mat44.h:18
 
JPH_INLINE void SetAxisZ(Vec3Arg inV)
Definition: Mat44.h:151
 
JPH_INLINE Vec3 GetColumn3(uint inCol) const
Definition: Mat44.h:158
 
JPH_INLINE Vec3 GetDiagonal3() const
Definition: Mat44.h:154
 
JPH_INLINE Vec4 GetColumn4(uint inCol) const
Definition: Mat44.h:160
 
JPH_INLINE Vec3 GetAxisX() const
Access to the columns.
Definition: Mat44.h:146
 
JPH_INLINE void SetDiagonal3(Vec3Arg inV)
Definition: Mat44.h:155
 
Mat44(const Mat44 &inM2)=default
 
JPH_INLINE Vec3 GetTranslation() const
Definition: Mat44.h:152
 
JPH_INLINE void SetColumn4(uint inCol, Vec4Arg inV)
Definition: Mat44.h:161
 
Mat44()=default
Constructor.
 
JPH_INLINE Mat44 Inversed3x3() const
Inverse 3x3 matrix.
Definition: Mat44.inl:753
 
JPH_INLINE void SetAxisY(Vec3Arg inV)
Definition: Mat44.h:149
 
JPH_INLINE void SetTranslation(Vec3Arg inV)
Definition: Mat44.h:153
 
JPH_INLINE Vec4 GetDiagonal4() const
Definition: Mat44.h:156
 
JPH_INLINE float GetX() const
Get individual components.
Definition: Vec3.h:124
 
JPH_INLINE float GetY() const
Definition: Vec3.h:125
 
JPH_INLINE float GetZ() const
Definition: Vec3.h:126
 
JPH_INLINE float GetW() const
Definition: Vec4.h:116
 
JPH_INLINE float GetX() const
Get individual components.
Definition: Vec4.h:113
 
{ float mData[4] Type
Definition: Vec4.h:24
 
JPH_INLINE float GetZ() const
Definition: Vec4.h:115
 
JPH_INLINE float GetY() const
Definition: Vec4.h:114