BNM 2.4.0
 
Loading...
Searching...
No Matches
BNM::Structures::Unity::Matrix4x4 Struct Reference

Public Types

enum class  InitIdentity { kIdentity }
 

Public Member Functions

 Matrix4x4 (InitIdentity)
 
 Matrix4x4 (const Matrix3x3 &other)
 
 Matrix4x4 (const float data[16])
 
float & Get (int row, int column)
 
const float & Get (int row, int column) const
 
float * GetPtr ()
 
const float * GetPtr () const
 
float operator[] (int index) const
 
float & operator[] (int index)
 
Matrix4x4operator*= (const Matrix4x4 &inM)
 
Matrix4x4operator= (const Matrix3x3 &other)
 
Vector3 MultiplyVector3 (const Vector3 &inV) const
 
void MultiplyVector3 (const Vector3 &inV, Vector3 &output) const
 
bool PerspectiveMultiplyVector3 (const Vector3 &inV, Vector3 &output) const
 
Vector4 MultiplyVector4 (const Vector4 &inV) const
 
void MultiplyVector4 (const Vector4 &inV, Vector4 &output) const
 
Vector3 MultiplyPoint3 (const Vector3 &inV) const
 
void MultiplyPoint3 (const Vector3 &inV, Vector3 &output) const
 
Vector2 MultiplyPoint2 (const Vector2 &inV) const
 
void MultiplyPoint2 (const Vector2 &inV, Vector2 &output) const
 
bool PerspectiveMultiplyPoint3 (const Vector3 &inV, Vector3 &output) const
 
Vector3 InverseMultiplyPoint3Affine (const Vector3 &inV) const
 
Vector3 InverseMultiplyVector3Affine (const Vector3 &inV) const
 
bool IsIdentity (float threshold=Vector3::kEpsilon) const
 
bool IsPerspective () const
 
float MaxabsScale () const
 
void RemoveScale ()
 
float GetDeterminant () const
 
float GetDeterminant2x2 () const
 
Matrix4x4Invert_Full ()
 
Matrix4x4Transpose ()
 
Matrix4x4SetIdentity ()
 
Matrix4x4SetZero ()
 
Matrix4x4SetPerspective (float fovy, float aspect, float zNear, float zFar)
 
Matrix4x4SetPerspectiveCotan (float cotanHalfFOV, float zNear, float zFar)
 
Matrix4x4SetOrtho (float left, float right, float bottom, float top, float zNear, float zFar)
 
Matrix4x4SetFrustum (float left, float right, float bottom, float top, float nearval, float farval)
 
Matrix4x4AdjustDepthRange (float origNear, float newNear, float newFar)
 
Vector3 GetAxisX () const
 
Vector3 GetAxisY () const
 
Vector3 GetAxisZ () const
 
Vector3 GetAxis (int axis) const
 
Vector3 GetPosition () const
 
Vector3 GetLossyScale () const
 
Vector4 GetRow (int row) const
 
Vector4 GetColumn (int col) const
 
void SetAxisX (const Vector3 &v)
 
void SetAxisY (const Vector3 &v)
 
void SetAxisZ (const Vector3 &v)
 
void SetAxis (int axis, const Vector3 &v)
 
void SetPosition (const Vector3 &v)
 
void SetRow (int row, const Vector4 &v)
 
void SetColumn (int col, const Vector4 &v)
 
Matrix4x4SetTranslate (const Vector3 &inTrans)
 
Matrix4x4SetBasis (const Vector3 &inX, const Vector3 &inY, const Vector3 &inZ)
 
Matrix4x4SetBasisTransposed (const Vector3 &inX, const Vector3 &inY, const Vector3 &inZ)
 
Matrix4x4SetScale (const Vector3 &inScale)
 
Matrix4x4SetScaleAndPosition (const Vector3 &inScale, const Vector3 &inPosition)
 
Matrix4x4SetPositionAndOrthoNormalBasis (const Vector3 &inPosition, const Vector3 &inX, const Vector3 &inY, const Vector3 &inZ)
 
Matrix4x4Translate (const Vector3 &inTrans)
 
Matrix4x4Scale (const Vector3 &inScale)
 
Matrix4x4SetFromToRotation (const Vector3 &from, const Vector3 &to)
 
void SetTR (const Vector3 &pos, const Quaternion &q)
 
void SetTRS (const Vector3 &pos, const Quaternion &q, const Vector3 &s)
 
void SetTRInverse (const Vector3 &pos, const Quaternion &q)
 
FrustumPlanes DecomposeProjection () const
 
bool ValidTRS () const
 

Static Public Member Functions

static void MultiplyMatrices4x4 (const Matrix4x4 *__restrict lhs, const Matrix4x4 *__restrict rhs, Matrix4x4 *__restrict res)
 
static bool Invert_Full (const Matrix4x4 &inM, Matrix4x4 &outM)
 
static bool Invert_General3D (const Matrix4x4 &in, Matrix4x4 &out)
 
static Matrix4x4 Rotate (Quaternion q)
 

Public Attributes

float m_Data [16] {}
 

Static Public Attributes

static const Matrix4x4 identity