12class [[nodiscard]] alignas(JPH_DVECTOR_ALIGNMENT)
DMat44
34 static JPH_INLINE
DMat44 sZero();
37 static JPH_INLINE
DMat44 sIdentity();
43 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); }
58 JPH_INLINE
bool operator == (
DMat44Arg inM2)
const;
59 JPH_INLINE
bool operator != (
DMat44Arg inM2)
const {
return !(*
this == inM2); }
62 JPH_INLINE
bool IsClose(
DMat44Arg inM2,
float inMaxDistSq = 1.0e-12f)
const;
98 JPH_INLINE
DMat44 PostTranslated(
Vec3Arg inTranslation)
const;
118 JPH_INLINE
DMat44 Inversed()
const;
121 JPH_INLINE
DMat44 InversedRotationTranslation()
const;
127 JPH_INLINE
void SetRotation(
Mat44Arg inRotation);
139 friend ostream & operator << (ostream &inStream,
DMat44Arg inM)
141 inStream << inM.mCol[0] <<
", " << inM.mCol[1] <<
", " << inM.mCol[2] <<
", " << inM.mCol3;
150static_assert(is_trivial<DMat44>(),
"Is supposed to be a trivial type!");
unsigned int uint
Definition Core.h:309
#define JPH_NAMESPACE_END
Definition Core.h:240
#define JPH_NAMESPACE_BEGIN
Definition Core.h:234
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:115
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:113
JPH_INLINE void SetTranslation(DVec3Arg inV)
Definition DMat44.h:111
JPH_INLINE void SetAxisZ(Vec3Arg inV)
Definition DMat44.h:109
JPH_INLINE void SetAxisX(Vec3Arg inV)
Definition DMat44.h:105
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:133
JPH_INLINE Vec4 GetColumn4(uint inCol) const
Definition DMat44.h:114
static JPH_INLINE DMat44 sRotationTranslation(QuatArg inR, DVec3Arg inT)
Get matrix that rotates and translates.
Definition DMat44.h:46
JPH_INLINE Mat44 ToMat44() const
Convert to Mat44 rounding to nearest.
Definition DMat44.h:55
JPH_INLINE Vec3 Multiply3x3Transposed(Vec3Arg inV) const
Multiply vector by only 3x3 part of the transpose of the matrix ( )
Definition DMat44.h:83
static JPH_INLINE DMat44 sScale(Vec3Arg inV)
Get matrix that scales (produces a matrix with (inV, 1) on its diagonal)
Definition DMat44.h:52
DMat44()=default
Constructor.
JPH_INLINE void SetAxisY(Vec3Arg inV)
Definition DMat44.h:107
JPH_INLINE Quat GetQuaternion() const
Convert to quaternion.
Definition DMat44.h:130
static JPH_INLINE DMat44 sRotation(QuatArg inQuat)
Rotate from quaternion.
Definition DMat44.h:40
JPH_INLINE Vec3 Multiply3x3(Vec3Arg inV) const
Multiply vector by only 3x3 part of the matrix.
Definition DMat44.h:77
static JPH_INLINE DMat44 sTranslation(DVec3Arg inV)
Get matrix that translates.
Definition DMat44.h:43
JPH_INLINE Vec3 GetAxisX() const
Access to the columns.
Definition DMat44.h:104
JPH_INLINE DMat44 Decompose(Vec3 &outScale) const
Works identical to Mat44::Decompose.
Definition DMat44.h:136
DMat44(const DMat44 &inM2)=default
JPH_INLINE DVec3 GetTranslation() const
Definition DMat44.h:110
JPH_INLINE Mat44 GetRotation() const
Get rotation part only (note: retains the first 3 values from the bottom row)
Definition DMat44.h:124
Vec4::Type Type
Definition DMat44.h:18
JPH_INLINE Vec3 GetColumn3(uint inCol) const
Definition DMat44.h:112
JPH_INLINE Vec3 GetAxisZ() const
Definition DMat44.h:108
JPH_INLINE Vec3 GetAxisY() const
Definition DMat44.h:106
const Type & TypeArg
Definition DVec3.h:30
static JPH_INLINE DVec3 sZero()
Vector with all zeros.
Definition DVec3.inl:120
struct { double mData[4];} Type
Definition DVec3.h:29
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:493
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:883
struct { float mData[4];} Type
Definition Vec4.h:24