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