12class [[nodiscard]] alignas(JPH_DVECTOR_ALIGNMENT) 
DMat44 
   35    static JPH_INLINE 
DMat44    sZero();
 
   38    static JPH_INLINE 
DMat44    sIdentity();
 
   44    static JPH_INLINE 
DMat44    sTranslation(
DVec3Arg inV)                              { 
return DMat44(
Vec4(1, 0, 0, 0), 
Vec4(0, 1, 0, 0), 
Vec4(0, 0, 1, 0), inV); }
 
   59    JPH_INLINE 
bool             operator == (
DMat44Arg inM2) 
const;
 
   60    JPH_INLINE 
bool             operator != (
DMat44Arg inM2)
 const                      { 
return !(*
this == inM2); }
 
   63    JPH_INLINE 
bool             IsClose(
DMat44Arg inM2, 
float inMaxDistSq = 1.0e-12f) 
const;
 
   99    JPH_INLINE 
DMat44           PostTranslated(
Vec3Arg inTranslation) 
const;
 
  122    JPH_INLINE 
DMat44           Inversed() 
const;
 
  125    JPH_INLINE 
DMat44           InversedRotationTranslation() 
const;
 
  131    JPH_INLINE 
void             SetRotation(
Mat44Arg inRotation);
 
  143    friend ostream &            operator << (ostream &inStream, 
DMat44Arg inM)
 
  145        inStream << inM.mCol[0] << 
", " << inM.mCol[1] << 
", " << inM.mCol[2] << 
", " << inM.mCol3;
 
  154static_assert(std::is_trivial<DMat44>(), 
"Is supposed to be a trivial type!");
 
unsigned int uint
Definition: Core.h:487
#define JPH_NAMESPACE_END
Definition: Core.h:419
#define JPH_NAMESPACE_BEGIN
Definition: Core.h:413
DVec3 operator*(double inV1, DVec3Arg inV2)
Definition: DVec3.inl:456
#define JPH_ASSERT(...)
Definition: IssueReporting.h:33
const DMat44 & DMat44Arg
Definition: MathTypes.h:30
#define JPH_OVERRIDE_NEW_DELETE
Macro to override the new and delete functions.
Definition: Memory.h:31
Holds a 4x4 matrix of floats with the last column consisting of doubles.
Definition: DMat44.h:13
JPH_INLINE void SetColumn4(uint inCol, Vec4Arg inV)
Definition: DMat44.h:116
DVec3::Type DType
Definition: DMat44.h:19
DVec3::TypeArg DTypeArg
Definition: DMat44.h:20
JPH_INLINE void SetColumn3(uint inCol, Vec3Arg inV)
Definition: DMat44.h:114
JPH_INLINE void SetTranslation(DVec3Arg inV)
Definition: DMat44.h:112
JPH_INLINE void SetAxisZ(Vec3Arg inV)
Definition: DMat44.h:110
JPH_INLINE void SetAxisX(Vec3Arg inV)
Definition: DMat44.h:106
JPH_INLINE Mat44 GetDirectionPreservingMatrix() const
Get matrix that transforms a direction with the same transform as this matrix (length is not preserve...
Definition: DMat44.h:137
JPH_INLINE Vec4 GetColumn4(uint inCol) const
Definition: DMat44.h:115
static JPH_INLINE DMat44 sRotationTranslation(QuatArg inR, DVec3Arg inT)
Get matrix that rotates and translates.
Definition: DMat44.h:47
JPH_INLINE Mat44 ToMat44() const
Convert to Mat44 rounding to nearest.
Definition: DMat44.h:56
JPH_INLINE Mat44 Transposed3x3() const
Transpose 3x3 subpart of matrix.
Definition: DMat44.h:119
JPH_INLINE Vec3 Multiply3x3Transposed(Vec3Arg inV) const
Multiply vector by only 3x3 part of the transpose of the matrix ( )
Definition: DMat44.h:84
static JPH_INLINE DMat44 sScale(Vec3Arg inV)
Get matrix that scales (produces a matrix with (inV, 1) on its diagonal)
Definition: DMat44.h:53
DMat44()=default
Constructor.
JPH_INLINE void SetAxisY(Vec3Arg inV)
Definition: DMat44.h:108
JPH_INLINE Quat GetQuaternion() const
Convert to quaternion.
Definition: DMat44.h:134
static JPH_INLINE DMat44 sRotation(QuatArg inQuat)
Rotate from quaternion.
Definition: DMat44.h:41
JPH_INLINE Vec3 Multiply3x3(Vec3Arg inV) const
Multiply vector by only 3x3 part of the matrix.
Definition: DMat44.h:78
static JPH_INLINE DMat44 sTranslation(DVec3Arg inV)
Get matrix that translates.
Definition: DMat44.h:44
JPH_INLINE Vec3 GetAxisX() const
Access to the columns.
Definition: DMat44.h:105
JPH_INLINE DMat44 Decompose(Vec3 &outScale) const
Works identical to Mat44::Decompose.
Definition: DMat44.h:140
DMat44(const DMat44 &inM2)=default
JPH_INLINE DVec3 GetTranslation() const
Definition: DMat44.h:111
JPH_INLINE Mat44 GetRotation() const
Get rotation part only (note: retains the first 3 values from the bottom row)
Definition: DMat44.h:128
Vec4::Type Type
Definition: DMat44.h:18
JPH_INLINE Vec3 GetColumn3(uint inCol) const
Definition: DMat44.h:113
JPH_INLINE Vec3 GetAxisZ() const
Definition: DMat44.h:109
JPH_INLINE Vec3 GetAxisY() const
Definition: DMat44.h:107
{ double mData[4] Type
Definition: DVec3.h:29
const Type & TypeArg
Definition: DVec3.h:30
static JPH_INLINE DVec3 sZero()
Vector with all zeros.
Definition: DVec3.inl:120
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 Mat44 Transposed3x3() const
Transpose 3x3 subpart of matrix.
Definition: Mat44.inl:502
static JPH_INLINE Mat44 sScale(float inScale)
Get matrix that scales uniformly.
Definition: Mat44.inl:163
static JPH_INLINE Mat44 sRotation(Vec3Arg inAxis, float inAngle)
Rotate around arbitrary axis.
Definition: Mat44.inl:139
JPH_INLINE Mat44 Inversed3x3() const
Inverse 3x3 matrix.
Definition: Mat44.inl:753
{ float mData[4] Type
Definition: Vec4.h:24