"L. Spiro Engine"
Public Member Functions | Static Public Member Functions | Public Attributes

lsm::CMatrix3x3Base< _tType, _tVector3Type > Class Template Reference

The base matrix template allowing any type of number to be used. More...

#include <LSMMatrix3x3Base.h>

List of all members.

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

Detailed Description

template<typename _tType, typename _tVector3Type>
class lsm::CMatrix3x3Base< _tType, _tVector3Type >

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.


Member Function Documentation

template<typename _tType, typename _tVector3Type>
_tType LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::Determ ( ) const [inline]

Get the determinant.

Returns:
Returns the determinant of this matrix.
template<typename _tType, typename _tVector3Type>
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.

Parameters:
_tYawHolds the returned yaw.
_tPitchHolds the returned pitch.
_tRollHolds the returned roll.
template<typename _tType, typename _tVector3Type>
CMatrix3x3Base<_tType, _tVector3Type>& LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::Identity ( ) [inline]

Set the identity matrix in place.

Returns:
Returns this matrix.
template<typename _tType, typename _tVector3Type>
CMatrix3x3Base<_tType, _tVector3Type> lsm::CMatrix3x3Base< _tType, _tVector3Type >::Inverse ( ) const [inline]

Get the inverse of this matrix. Upon failure, the identity matrix is returned.

Returns:
Returns the inverse of this matrix, or identity on failure.
template<typename _tType, typename _tVector3Type>
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.

Parameters:
_m33bOutThe output matrix holding the result of the operation.
_m33bM1The left operand.
_m33bM2The right operand.
Returns:
Returns a pointer to _m33bOut.
template<typename _tType, typename _tVector3Type>
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.

Parameters:
_m33bMatThe matrix by which to transform the given vector.
_v3bInThe vector to transform.
_v3bOutThe resulting vector after the transformation has been applied.
template<typename _tType, typename _tVector3Type>
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.

Parameters:
_m33bMatThe matrix by which to transform the given vector.
_v3bInThe vector to transform.
_v3bOutThe resulting vector after the transformation has been applied.
template<typename _tType, typename _tVector3Type>
_tType& LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::operator() ( LSUINT32  _ui32Row,
LSUINT32  _ui32Col 
) [inline]

Provides row/column access to the values in the matrix.

Parameters:
_ui32RowThe row of the value to obtain.
_ui32ColThe column of the value to obtain.
Returns:
Returns a reference to the value at the given row and column. Can be used for reading or writing.
template<typename _tType, typename _tVector3Type>
_tType LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::operator() ( LSUINT32  _ui32Row,
LSUINT32  _ui32Col 
) const [inline]

Provides row/column access to the values in the matrix.

Parameters:
_ui32RowThe row of the value to obtain.
_ui32ColThe column of the value to obtain.
Returns:
Returns the value at the given row and column.
template<typename _tType, typename _tVector3Type>
_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.

Parameters:
_v3bOtherThe vector to transform by this matrix.
Returns:
Returns the vector transformed by this matrix.
template<typename _tType, typename _tVector3Type>
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.

Parameters:
_m33bOtherThe matrix by which to multiply this matrix.
Returns:
Returns the result of the matrix combination.
template<typename _tType, typename _tVector3Type>
CMatrix3x3Base<_tType, _tVector3Type> LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::operator* ( _tType  _tValue) const [inline]

Multiply each component of the matrix by the given real.

Parameters:
_tValueThe real by which to multiply each component of this matrix.
Returns:
The result of the multiplication is returned.
template<typename _tType, typename _tVector3Type>
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.

Parameters:
_tValueThe real by which to multiply each component of this matrix.
Returns:
The result of the multiplication is returned.
template<typename _tType, typename _tVector3Type>
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.

Parameters:
_m33bOtherThe matrix by which each component is added.
Returns:
Returns this matrix.
template<typename _tType, typename _tVector3Type>
LSVOID LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::SetRow ( LSUINT32  _ui32Row,
const _tVector3Type &  _v3bVec 
) [inline]

Set a row.

Parameters:
_ui32RowThe row to set.
_vRetThe value to apply to the row.
template<typename _tType, typename _tVector3Type>
CMatrix3x3Base<_tType, _tVector3Type>& LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::SetSkewSymmetric ( const _tVector3Type &  _v3bVec) [inline]

Apply a skew symmetric matrix to this object.

Parameters:
_v3bVecThe vector from which the skew symmetric matrix is to be obtained.
Returns:
Returns this matrix.
template<typename _tType, typename _tVector3Type>
CMatrix3x3Base<_tType, _tVector3Type>& LSE_FCALL lsm::CMatrix3x3Base< _tType, _tVector3Type >::Transpose ( ) [inline]

Transpose a matrix in place.

Returns:
Returns this matrix.

The documentation for this class was generated from the following file:
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator