|
| EZ_DECLARE_POD_TYPE () |
|
EZ_ALWAYS_INLINE Type & | Element (ezInt32 column, ezInt32 row) |
|
EZ_ALWAYS_INLINE Type | Element (ezInt32 column, ezInt32 row) const |
|
| ezMat3Template () |
| Default Constructor DOES NOT INITIALIZE the matrix, at all.
|
|
| ezMat3Template (const Type *const pData, ezMatrixLayout::Enum layout) |
| Copies 9 values from pData into the matrix. Can handle the data in row-major or column-major order. More...
|
|
| ezMat3Template (Type c1r1, Type c2r1, Type c3r1, Type c1r2, Type c2r2, Type c3r2, Type c1r3, Type c2r3, Type c3r3) |
| Sets each element manually: Naming is "column-n row-m".
|
|
void | SetFromArray (const Type *const pData, ezMatrixLayout::Enum layout) |
| Copies 9 values from pData into the matrix. Can handle the data in row-major or column-major order. More...
|
|
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 | SetElements (Type c1r1, Type c2r1, Type c3r1, Type c1r2, Type c2r2, Type c3r2, Type c1r3, Type c2r3, Type c3r3) |
| Sets each element manually: Naming is "column-n row-m".
|
|
void | SetZero () |
| Sets all elements to zero.
|
|
void | SetIdentity () |
| Sets all elements to zero, except the diagonal, which is set to one.
|
|
void | SetScalingMatrix (const ezVec3Template< Type > &vScale) |
| Sets the matrix to all zero, except the diagonal, which is set to x,y,z,1.
|
|
void | SetRotationMatrixX (ezAngle angle) |
| Sets this matrix to be a rotation matrix around the X-axis.
|
|
void | SetRotationMatrixY (ezAngle angle) |
| Sets this matrix to be a rotation matrix around the Y-axis.
|
|
void | SetRotationMatrixZ (ezAngle angle) |
| Sets this matrix to be a rotation matrix around the Z-axis.
|
|
void | SetRotationMatrix (const ezVec3Template< Type > &vAxis, ezAngle angle) |
| Sets this matrix to be a rotation matrix around the given axis.
|
|
void | SetLookInDirectionMatrix (ezVec3Template< Type > vLookDir, ezVec3Template< Type > vUpDir=ezVec3Template< Type >(0, 0, 1)) |
| Sets this matrix to be a look-at matrix (without the translation).
|
|
void | Transpose () |
| Transposes this matrix.
|
|
const ezMat3Template< Type > | GetTranspose () const |
| Returns the transpose of this matrix.
|
|
ezResult | Invert (Type fEpsilon=ezMath::BasicType< Type >::SmallEpsilon()) |
| Inverts this matrix. Return value indicates whether the matrix could be Inverted.
|
|
const ezMat3Template< Type > | GetInverse (Type fEpsilon=ezMath::BasicType< Type >::SmallEpsilon()) const |
| Returns the inverse of this matrix.
|
|
bool | IsZero (Type fEpsilon=ezMath::BasicType< Type >::DefaultEpsilon()) const |
| Checks whether all elements are zero.
|
|
bool | IsIdentity (Type fEpsilon=ezMath::BasicType< Type >::DefaultEpsilon()) 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 > &row) |
| 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 > &column) |
| 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 > &diag) |
| 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::BasicType< Type >::DefaultEpsilon()) |
| 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 matix.
|
|
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.
|
|
template<typename Type>
class ezMat3Template< Type >
A 3x3 component matrix class.