"L. Spiro Engine"
|
The base matrix template allowing any type of number to be used. More...
#include <LSMMatrix3x3Base.h>
Public Member Functions | |
LSE_CALLCTOR | CMatrix3x3Base (const CMatrix3x3Base< _tType, _tVector3Type > &_m33bOther) |
LSE_CALLCTOR | CMatrix3x3Base (const CMatrix3x3Base< _tType, _tVector3Type > &_m33bOther, LSBOOL _bTranspose) |
LSE_CALLCTOR | CMatrix3x3Base (const _tType *_ptArray) |
_tType &LSE_FCALL | operator() (LSUINT32 _ui32Row, LSUINT32 _ui32Col) |
_tType LSE_FCALL | operator() (LSUINT32 _ui32Row, LSUINT32 _ui32Col) const |
CMatrix3x3Base< _tType, _tVector3Type > LSE_FCALL | operator* (const CMatrix3x3Base< _tType, _tVector3Type > &_m33bOther) const |
_tVector3Type LSE_FCALL | operator* (const _tVector3Type &_v3bOther) const |
CMatrix3x3Base< _tType, _tVector3Type > LSE_FCALL | operator* (_tType _tValue) const |
CMatrix3x3Base< _tType, _tVector3Type > &LSE_FCALL | operator*= (_tType _tValue) |
CMatrix3x3Base< _tType, _tVector3Type > &LSE_FCALL | operator+= (const CMatrix3x3Base< _tType, _tVector3Type > &_m33bOther) |
CMatrix3x3Base< _tType, _tVector3Type > &LSE_FCALL | Identity () |
CMatrix3x3Base< _tType, _tVector3Type > &LSE_FCALL | Transpose () |
CMatrix3x3Base< _tType, _tVector3Type > | Inverse () const |
_tType LSE_FCALL | Determ () const |
LSVOID LSE_FCALL | SetRow (LSUINT32 _ui32Row, const _tVector3Type &_v3bVec) |
CMatrix3x3Base< _tType, _tVector3Type > &LSE_FCALL | SetSkewSymmetric (const _tVector3Type &_v3bVec) |
LSVOID LSE_FCALL | GetYawPitchRoll (_tType &_tYaw, _tType &_tPitch, _tType &_tRoll) const |
Static Public Member Functions | |
static CMatrix3x3Base< _tType, _tVector3Type > *LSE_FCALL | MatrixMultiply (CMatrix3x3Base< _tType, _tVector3Type > &_m33bOut, const CMatrix3x3Base< _tType, _tVector3Type > &_m33bM1, const CMatrix3x3Base< _tType, _tVector3Type > &_m33bM2) |
static LSVOID LSE_FCALL | MultiplyVec3ByMat3x3 (const CMatrix3x3Base< _tType, _tVector3Type > &_m33bMat, const _tVector3Type &_v3bIn, _tVector3Type &_v3bOut) |
static LSVOID LSE_FCALL | MultiplyVec3ByMat3x3Transpose (const CMatrix3x3Base< _tType, _tVector3Type > &_m33bMat, const _tVector3Type &_v3bIn, _tVector3Type &_v3bOut) |
Public Attributes | |
_tType | _11 |
_tType | _12 |
_tType | _13 |
_tType | _21 |
_tType | _22 |
_tType | _23 |
_tType | _31 |
_tType | _32 |
_tType | _33 |
The base matrix template allowing any type of number to be used.
Class CMatrix3x3Base Description: The base matrix template allowing any type of number to be used. Vectors are stored row-major.
_tType LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::Determ | ( | ) | const [inline] |
Get the determinant.
LSVOID LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::GetYawPitchRoll | ( | _tType & | _tYaw, |
_tType & | _tPitch, | ||
_tType & | _tRoll | ||
) | const [inline] |
Get the yaw, pitch, and roll from this matrix.
_tYaw | Holds the returned yaw. |
_tPitch | Holds the returned pitch. |
_tRoll | Holds the returned roll. |
CMatrix3x3Base<_tType, _tVector3Type>& LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::Identity | ( | ) | [inline] |
Set the identity matrix in place.
CMatrix3x3Base<_tType, _tVector3Type> lsm::CMatrix3x3Base< _tType, _tVector3Type >::Inverse | ( | ) | const [inline] |
Get the inverse of this matrix. Upon failure, the identity matrix is returned.
static CMatrix3x3Base<_tType, _tVector3Type>* LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::MatrixMultiply | ( | CMatrix3x3Base< _tType, _tVector3Type > & | _m33bOut, |
const CMatrix3x3Base< _tType, _tVector3Type > & | _m33bM1, | ||
const CMatrix3x3Base< _tType, _tVector3Type > & | _m33bM2 | ||
) | [inline, static] |
Multiply two matrices together. The result represents the transformation M1 followed by the transformation M2.
_m33bOut | The output matrix holding the result of the operation. |
_m33bM1 | The left operand. |
_m33bM2 | The right operand. |
static LSVOID LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::MultiplyVec3ByMat3x3 | ( | const CMatrix3x3Base< _tType, _tVector3Type > & | _m33bMat, |
const _tVector3Type & | _v3bIn, | ||
_tVector3Type & | _v3bOut | ||
) | [inline, static] |
Transforms vector (x, y, z) by a given matrix. _v3bIn and _v3bOut must not be the same vectors.
_m33bMat | The matrix by which to transform the given vector. |
_v3bIn | The vector to transform. |
_v3bOut | The resulting vector after the transformation has been applied. |
static LSVOID LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::MultiplyVec3ByMat3x3Transpose | ( | const CMatrix3x3Base< _tType, _tVector3Type > & | _m33bMat, |
const _tVector3Type & | _v3bIn, | ||
_tVector3Type & | _v3bOut | ||
) | [inline, static] |
Transforms vector (x, y, z) by the transpose of a given matrix. _v3bIn and _v3bOut must not be the same vectors.
_m33bMat | The matrix by which to transform the given vector. |
_v3bIn | The vector to transform. |
_v3bOut | The resulting vector after the transformation has been applied. |
_tType& LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::operator() | ( | LSUINT32 | _ui32Row, |
LSUINT32 | _ui32Col | ||
) | [inline] |
Provides row/column access to the values in the matrix.
_ui32Row | The row of the value to obtain. |
_ui32Col | The column of the value to obtain. |
_tType LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::operator() | ( | LSUINT32 | _ui32Row, |
LSUINT32 | _ui32Col | ||
) | const [inline] |
Provides row/column access to the values in the matrix.
_ui32Row | The row of the value to obtain. |
_ui32Col | The column of the value to obtain. |
_tVector3Type LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::operator* | ( | const _tVector3Type & | _v3bOther | ) | const [inline] |
Multiply this matrix with a vector, returning the result as V = this * _v3bOther.
_v3bOther | The vector to transform by this matrix. |
CMatrix3x3Base<_tType, _tVector3Type> LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::operator* | ( | const CMatrix3x3Base< _tType, _tVector3Type > & | _m33bOther | ) | const [inline] |
Multiply this matrix with another, returning the result as M = this * _m33bOther.
_m33bOther | The matrix by which to multiply this matrix. |
CMatrix3x3Base<_tType, _tVector3Type> LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::operator* | ( | _tType | _tValue | ) | const [inline] |
Multiply each component of the matrix by the given real.
_tValue | The real by which to multiply each component of this matrix. |
CMatrix3x3Base<_tType, _tVector3Type>& LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::operator*= | ( | _tType | _tValue | ) | [inline] |
Multiply each component of the matrix by the given real in-place.
_tValue | The real by which to multiply each component of this matrix. |
CMatrix3x3Base<_tType, _tVector3Type>& LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::operator+= | ( | const CMatrix3x3Base< _tType, _tVector3Type > & | _m33bOther | ) | [inline] |
Performs a componentwise addition between this matrix and the given matrix.
_m33bOther | The matrix by which each component is added. |
LSVOID LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::SetRow | ( | LSUINT32 | _ui32Row, |
const _tVector3Type & | _v3bVec | ||
) | [inline] |
Set a row.
_ui32Row | The row to set. |
_vRet | The value to apply to the row. |
CMatrix3x3Base<_tType, _tVector3Type>& LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::SetSkewSymmetric | ( | const _tVector3Type & | _v3bVec | ) | [inline] |
Apply a skew symmetric matrix to this object.
_v3bVec | The vector from which the skew symmetric matrix is to be obtained. |
CMatrix3x3Base<_tType, _tVector3Type>& LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::Transpose | ( | ) | [inline] |
Transpose a matrix in place.