Assimp  v3.0 (July 2012)
Public Member Functions | Static Public Member Functions | Public Attributes
aiMatrix3x3t< TReal > Class Template Reference

Represents a row-major 3x3 matrix. More...

List of all members.

Public Member Functions

 aiMatrix3x3t ()
 aiMatrix3x3t (TReal _a1, TReal _a2, TReal _a3, TReal _b1, TReal _b2, TReal _b3, TReal _c1, TReal _c2, TReal _c3)
 aiMatrix3x3t (const aiMatrix4x4t< TReal > &pMatrix)
 Construction from a 4x4 matrix.
TReal Determinant () const
aiMatrix3x3tInverse ()
 Invert the matrix.
template<typename TOther >
 operator aiMatrix3x3t< TOther > () const
bool operator!= (const aiMatrix4x4t< TReal > m) const
aiMatrix3x3t operator* (const aiMatrix3x3t &m) const
aiMatrix3x3toperator*= (const aiMatrix3x3t &m)
bool operator== (const aiMatrix4x4t< TReal > m) const
TReal * operator[] (unsigned int p_iIndex)
const TReal * operator[] (unsigned int p_iIndex) const
aiMatrix3x3tTranspose ()
 Transpose the matrix.

Static Public Member Functions

static aiMatrix3x3tFromToMatrix (const aiVector3t< TReal > &from, const aiVector3t< TReal > &to, aiMatrix3x3t &out)
 A function for creating a rotation matrix that rotates a vector called "from" into another vector called "to".
static aiMatrix3x3tRotation (TReal a, const aiVector3t< TReal > &axis, aiMatrix3x3t &out)
 Returns a rotation matrix for a rotation around an arbitrary axis.
static aiMatrix3x3tRotationZ (TReal a, aiMatrix3x3t &out)
 Returns a rotation matrix for a rotation around z.
static aiMatrix3x3tTranslation (const aiVector2t< TReal > &v, aiMatrix3x3t &out)
 Returns a translation matrix.

Public Attributes

TReal a1
TReal a2
TReal a3
TReal b1
TReal b2
TReal b3
TReal c1
TReal c2
TReal c3

Detailed Description

template<typename TReal>
class aiMatrix3x3t< TReal >

Represents a row-major 3x3 matrix.

There's much confusion about matrix layouts (column vs. row order). This is always a row-major matrix. Not even with the aiProcess_ConvertToLeftHanded flag, which absolutely does not affect matrix order - it just affects the handedness of the coordinate system defined thereby.


Constructor & Destructor Documentation

template<typename TReal >
aiMatrix3x3t< TReal >::aiMatrix3x3t ( )
inline
template<typename TReal >
aiMatrix3x3t< TReal >::aiMatrix3x3t ( TReal  _a1,
TReal  _a2,
TReal  _a3,
TReal  _b1,
TReal  _b2,
TReal  _b3,
TReal  _c1,
TReal  _c2,
TReal  _c3 
)
inline
template<typename TReal >
aiMatrix3x3t< TReal >::aiMatrix3x3t ( const aiMatrix4x4t< TReal > &  pMatrix)
inlineexplicit

Construction from a 4x4 matrix.

The remaining parts of the matrix are ignored.


Member Function Documentation

template<typename TReal >
TReal aiMatrix3x3t< TReal >::Determinant ( ) const
inline
template<typename TReal >
aiMatrix3x3t< TReal > & aiMatrix3x3t< TReal >::FromToMatrix ( const aiVector3t< TReal > &  from,
const aiVector3t< TReal > &  to,
aiMatrix3x3t< TReal > &  out 
)
inlinestatic

A function for creating a rotation matrix that rotates a vector called "from" into another vector called "to".

Input : from[3], to[3] which both must be normalized non-zero vectors Output: mtx[3][3] – a 3x3 matrix in colum-major form Authors: Tomas Möller, John Hughes "Efficiently Building a Matrix to Rotate One Vector to Another" Journal of Graphics Tools, 4(4):1-4, 1999

template<typename TReal >
aiMatrix3x3t< TReal > & aiMatrix3x3t< TReal >::Inverse ( )
inline

Invert the matrix.

If the matrix is not invertible all elements are set to qnan. Beware, use (f != f) to check whether a TReal f is qnan.

template<typename TReal >
template<typename TOther >
aiMatrix3x3t< TReal >::operator aiMatrix3x3t< TOther > ( ) const
template<typename TReal >
bool aiMatrix3x3t< TReal >::operator!= ( const aiMatrix4x4t< TReal >  m) const
inline
template<typename TReal >
aiMatrix3x3t< TReal > aiMatrix3x3t< TReal >::operator* ( const aiMatrix3x3t< TReal > &  m) const
inline
template<typename TReal >
aiMatrix3x3t< TReal > & aiMatrix3x3t< TReal >::operator*= ( const aiMatrix3x3t< TReal > &  m)
inline
template<typename TReal >
bool aiMatrix3x3t< TReal >::operator== ( const aiMatrix4x4t< TReal >  m) const
inline
template<typename TReal >
TReal * aiMatrix3x3t< TReal >::operator[] ( unsigned int  p_iIndex)
inline
template<typename TReal >
const TReal * aiMatrix3x3t< TReal >::operator[] ( unsigned int  p_iIndex) const
inline
template<typename TReal >
aiMatrix3x3t< TReal > & aiMatrix3x3t< TReal >::Rotation ( TReal  a,
const aiVector3t< TReal > &  axis,
aiMatrix3x3t< TReal > &  out 
)
inlinestatic

Returns a rotation matrix for a rotation around an arbitrary axis.

Parameters:
aRotation angle, in radians
axisAxis to rotate around
outTo be filled
template<typename TReal >
aiMatrix3x3t< TReal > & aiMatrix3x3t< TReal >::RotationZ ( TReal  a,
aiMatrix3x3t< TReal > &  out 
)
inlinestatic

Returns a rotation matrix for a rotation around z.

Parameters:
aRotation angle, in radians
outReceives the output matrix
Returns:
Reference to the output matrix
template<typename TReal >
aiMatrix3x3t< TReal > & aiMatrix3x3t< TReal >::Translation ( const aiVector2t< TReal > &  v,
aiMatrix3x3t< TReal > &  out 
)
inlinestatic

Returns a translation matrix.

Parameters:
vTranslation vector
outReceives the output matrix
Returns:
Reference to the output matrix
template<typename TReal >
aiMatrix3x3t< TReal > & aiMatrix3x3t< TReal >::Transpose ( )
inline

Transpose the matrix.


Member Data Documentation

template<typename TReal >
TReal aiMatrix3x3t< TReal >::a1
template<typename TReal >
TReal aiMatrix3x3t< TReal >::a2
template<typename TReal >
TReal aiMatrix3x3t< TReal >::a3
template<typename TReal >
TReal aiMatrix3x3t< TReal >::b1
template<typename TReal >
TReal aiMatrix3x3t< TReal >::b2
template<typename TReal >
TReal aiMatrix3x3t< TReal >::b3
template<typename TReal >
TReal aiMatrix3x3t< TReal >::c1
template<typename TReal >
TReal aiMatrix3x3t< TReal >::c2
template<typename TReal >
TReal aiMatrix3x3t< TReal >::c3

The documentation for this class was generated from the following files: