![]() |
ezEngine Release 26.3
|
A 3x3 component matrix class. More...
#include <Mat3.h>
Public Types | |
| using | ComponentType = Type |
Public Member Functions | |
| EZ_DECLARE_POD_TYPE () | |
| EZ_ALWAYS_INLINE Type & | Element (ezInt32 iColumn, ezInt32 iRow) |
| EZ_ALWAYS_INLINE Type | Element (ezInt32 iColumn, ezInt32 iRow) const |
| ezMat3Template () | |
| Default Constructor DOES NOT INITIALIZE the matrix, at all. | |
| void | GetAsArray (Type *out_pData, ezMatrixLayout::Enum layout) const |
| Copies the 9 values of this matrix into the given array. 'layout' defines whether the data should end up in column-major or row-major format. | |
| void | SetZero () |
| Sets all elements to zero. | |
| void | SetIdentity () |
| Sets all elements to zero, except the diagonal, which is set to one. | |
| void | Transpose () |
| Transposes this matrix. | |
| const ezMat3Template< Type > | GetTranspose () const |
| Returns the transpose of this matrix. | |
| ezResult | Invert (Type fEpsilon=ezMath::SmallEpsilon< Type >()) |
| Inverts this matrix. Return value indicates whether the matrix could be Inverted. | |
| const ezMat3Template< Type > | GetInverse (Type fEpsilon=ezMath::SmallEpsilon< Type >()) const |
| Returns the inverse of this matrix. | |
| bool | IsZero (Type fEpsilon=ezMath::DefaultEpsilon< Type >()) const |
| Checks whether all elements are zero. | |
| bool | IsIdentity (Type fEpsilon=ezMath::DefaultEpsilon< Type >()) 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. | |
| ezVec3Template< Type > | GetRow (ezUInt32 uiRow) const |
| Returns all 3 components of the i-th row. | |
| void | SetRow (ezUInt32 uiRow, const ezVec3Template< Type > &vRow) |
| Sets all 3 components of the i-th row. | |
| ezVec3Template< Type > | GetColumn (ezUInt32 uiColumn) const |
| Returns all 3 components of the i-th column. | |
| void | SetColumn (ezUInt32 uiColumn, const ezVec3Template< Type > &vColumn) |
| Sets all 3 components of the i-th column. | |
| ezVec3Template< Type > | GetDiagonal () const |
| Returns all 3 components on the diagonal of the matrix. | |
| void | SetDiagonal (const ezVec3Template< Type > &vDiag) |
| Sets all 3 components on the diagonal of the matrix. | |
| const ezVec3Template< Type > | GetScalingFactors () const |
| Returns the 3 scaling factors that are encoded in the matrix. | |
| ezResult | SetScalingFactors (const ezVec3Template< Type > &vXYZ, Type fEpsilon=ezMath::DefaultEpsilon< Type >()) |
| Tries to set the three scaling factors in the matrix. Returns EZ_FAILURE if the matrix columns cannot be normalized and thus no rescaling is possible. | |
| Type | GetDeterminant () const |
| Computes the determinant of the matrix. | |
| const ezVec3Template< Type > | TransformDirection (const ezVec3Template< Type > &v) const |
| Matrix-vector multiplication, assuming the 4th component of the vector is zero. So, rotation/scaling only. Useful as an optimization. | |
| void | operator*= (Type f) |
| Component-wise multiplication (commutative) | |
| void | operator/= (Type f) |
| Component-wise division. | |
| bool | IsIdentical (const ezMat3Template< Type > &rhs) const |
| Equality Check. | |
| bool | IsEqual (const ezMat3Template< Type > &rhs, Type fEpsilon) const |
| Equality Check with epsilon. | |
Static Public Member Functions | |
| static ezMat3Template< Type > | MakeZero () |
| Returns a zero matrix. | |
| static ezMat3Template< Type > | MakeIdentity () |
| Returns an identity matrix. | |
| static ezMat3Template< Type > | MakeFromRowMajorArray (const Type *const pData) |
| Creates a matrix from 9 values that are in row-major layout. | |
| static ezMat3Template< Type > | MakeFromColumnMajorArray (const Type *const pData) |
| Creates a matrix from 9 values that are in column-major layout. | |
| static ezMat3Template< Type > | MakeFromValues (Type c1r1, Type c2r1, Type c3r1, Type c1r2, Type c2r2, Type c3r2, Type c1r3, Type c2r3, Type c3r3) |
| Creates a matrix from 9 values. Naming is "column-n row-m". | |
| static ezMat3Template< Type > | MakeScaling (const ezVec3Template< Type > &vScale) |
| Creates a matrix with all zero values, except along the diagonal, which is set to x,y,z. | |
| static ezMat3Template< Type > | MakeRotationX (ezAngleTemplate< Type > angle) |
| Creates a matrix that is a rotation matrix around the X-axis. | |
| static ezMat3Template< Type > | MakeRotationY (ezAngleTemplate< Type > angle) |
| Creates a matrix that is a rotation matrix around the Y-axis. | |
| static ezMat3Template< Type > | MakeRotationZ (ezAngleTemplate< Type > angle) |
| Creates a matrix that is a rotation matrix around the Z-axis. | |
| static ezMat3Template< Type > | MakeAxisRotation (const ezVec3Template< Type > &vAxis, ezAngleTemplate< Type > angle) |
| Creates a matrix that is a rotation matrix around the given axis. | |
Public Attributes | |
| Type | m_fElementsCM [9] |
| The matrix as a 9-element Type array (column-major) | |
A 3x3 component matrix class.
Matrix layout (column-major):