![]() |
XII Release 0.1.0
|
A 4x4 matrix class. More...
#include <SimdMat4f.h>
Public Member Functions | |
XII_DECLARE_POD_TYPE () | |
void | GetAsArray (float *out_pData, xiiMatrixLayout::Enum layout) const |
void | Transpose () |
Transposes this matrix. | |
xiiSimdMat4f | GetTranspose () const |
Returns the transpose of this matrix. | |
xiiResult | Invert (const xiiSimdFloat &fEpsilon=xiiMath::SmallEpsilon< float >()) |
Inverts this matrix. Return value indicates whether the matrix could be inverted. | |
xiiSimdMat4f | GetInverse (const xiiSimdFloat &fEpsilon=xiiMath::SmallEpsilon< float >()) const |
Returns the inverse of this matrix. | |
bool | IsEqual (const xiiSimdMat4f &rhs, const xiiSimdFloat &fEpsilon) const |
Equality Check with epsilon. | |
bool | IsIdentity (const xiiSimdFloat &fEpsilon=xiiMath::DefaultEpsilon< float >()) const |
Checks whether this is an identity matrix. | |
bool | IsValid () const |
Checks whether all components are finite numbers. | |
bool | IsNaN () const |
Checks whether any component is NaN. | |
void | SetRows (const xiiSimdVec4f &vRow0, const xiiSimdVec4f &vRow1, const xiiSimdVec4f &vRow2, const xiiSimdVec4f &vRow3) |
void | GetRows (xiiSimdVec4f &ref_vRow0, xiiSimdVec4f &ref_vRow1, xiiSimdVec4f &ref_vRow2, xiiSimdVec4f &ref_vRow3) const |
xiiSimdVec4f | TransformPosition (const xiiSimdVec4f &v) const |
Matrix-vector multiplication, assuming the 4th component of the vector is one (default behavior). | |
xiiSimdVec4f | TransformDirection (const xiiSimdVec4f &v) const |
Matrix-vector multiplication, assuming the 4th component of the vector is zero. So, rotation/scaling only. | |
xiiSimdMat4f | operator* (const xiiSimdMat4f &rhs) const |
void | operator*= (const xiiSimdMat4f &rhs) |
bool | operator== (const xiiSimdMat4f &rhs) const |
bool | operator!= (const xiiSimdMat4f &rhs) const |
Static Public Member Functions | |
static xiiSimdMat4f | MakeZero () |
Returns a zero matrix. | |
static xiiSimdMat4f | MakeIdentity () |
Returns an identity matrix. | |
static xiiSimdMat4f | MakeFromRowMajorArray (const float *const pData) |
Creates a matrix from 16 values that are in row-major layout. | |
static xiiSimdMat4f | MakeFromColumnMajorArray (const float *const pData) |
Creates a matrix from 16 values that are in column-major layout. | |
static xiiSimdMat4f | MakeFromColumns (const xiiSimdVec4f &vCol0, const xiiSimdVec4f &vCol1, const xiiSimdVec4f &vCol2, const xiiSimdVec4f &vCol3) |
Creates a matrix from 4 column vectors. | |
static xiiSimdMat4f | MakeFromValues (float f1r1, float f2r1, float f3r1, float f4r1, float f1r2, float f2r2, float f3r2, float f4r2, float f1r3, float f2r3, float f3r3, float f4r3, float f1r4, float f2r4, float f3r4, float f4r4) |
Creates a matrix from 16 values. Naming is "column-n row-m". | |
Public Attributes | |
xiiSimdVec4f | m_col0 |
xiiSimdVec4f | m_col1 |
xiiSimdVec4f | m_col2 |
xiiSimdVec4f | m_col3 |
A 4x4 matrix class.
xiiResult xiiSimdMat4f::Invert | ( | const xiiSimdFloat & | fEpsilon = xiiMath::SmallEpsilon<float>() | ) |
Inverts this matrix. Return value indicates whether the matrix could be inverted.