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(is_trivial<DMat44>(),
"Is supposed to be a trivial type!");
unsigned int uint
Definition: Core.h:439
#define JPH_NAMESPACE_END
Definition: Core.h:367
#define JPH_NAMESPACE_BEGIN
Definition: Core.h:361
DVec3 operator*(double inV1, DVec3Arg inV2)
Definition: DVec3.inl:447
#define JPH_ASSERT(...)
Definition: IssueReporting.h:33
const DMat44 & DMat44Arg
Definition: MathTypes.h:32
#define JPH_OVERRIDE_NEW_DELETE
Macro to override the new and delete functions.
Definition: Memory.h:29
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