Wm4::Matrix3< Real > Class Template Reference

#include <Wm4Matrix3.h>

Collaboration diagram for Wm4::Matrix3< Real >:

Collaboration graph
[legend]
List of all members.

Public Types

enum  EulerResult { EA_UNIQUE, EA_NOT_UNIQUE_SUM, EA_NOT_UNIQUE_DIF }

Public Member Functions

 Matrix3 (bool bZero=true)
 Matrix3 (const Matrix3 &rkM)
 Matrix3 (Real fM00, Real fM01, Real fM02, Real fM10, Real fM11, Real fM12, Real fM20, Real fM21, Real fM22)
 Matrix3 (const Real afEntry[9], bool bRowMajor)
 Matrix3 (const Vector3< Real > &rkU, const Vector3< Real > &rkV, const Vector3< Real > &rkW, bool bColumns)
 Matrix3 (const Vector3< Real > *akV, bool bColumns)
 Matrix3 (Real fM00, Real fM11, Real fM22)
 Matrix3 (const Vector3< Real > &rkAxis, Real fAngle)
 Matrix3 (const Vector3< Real > &rkU, const Vector3< Real > &rkV)
Matrix3MakeZero ()
Matrix3MakeIdentity ()
Matrix3MakeDiagonal (Real fM00, Real fM11, Real fM22)
Matrix3FromAxisAngle (const Vector3< Real > &rkAxis, Real fAngle)
Matrix3MakeTensorProduct (const Vector3< Real > &rkU, const Vector3< Real > &rkV)
 operator const Real * () const
 operator Real * ()
const Real * operator[] (int iRow) const
Real * operator[] (int iRow)
Real operator() (int iRow, int iCol) const
Real & operator() (int iRow, int iCol)
void SetRow (int iRow, const Vector3< Real > &rkV)
Vector3< Real > GetRow (int iRow) const
void SetColumn (int iCol, const Vector3< Real > &rkV)
Vector3< Real > GetColumn (int iCol) const
void GetColumnMajor (Real *afCMajor) const
Matrix3operator= (const Matrix3 &rkM)
bool operator== (const Matrix3 &rkM) const
bool operator!= (const Matrix3 &rkM) const
bool operator< (const Matrix3 &rkM) const
bool operator<= (const Matrix3 &rkM) const
bool operator> (const Matrix3 &rkM) const
bool operator>= (const Matrix3 &rkM) const
Matrix3 operator+ (const Matrix3 &rkM) const
Matrix3 operator- (const Matrix3 &rkM) const
Matrix3 operator * (const Matrix3 &rkM) const
Matrix3 operator * (Real fScalar) const
Matrix3 operator/ (Real fScalar) const
Matrix3 operator- () const
Matrix3operator+= (const Matrix3 &rkM)
Matrix3operator-= (const Matrix3 &rkM)
Matrix3operator *= (Real fScalar)
Matrix3operator/= (Real fScalar)
Vector3< Real > operator * (const Vector3< Real > &rkV) const
Matrix3 Transpose () const
Matrix3 TransposeTimes (const Matrix3 &rkM) const
Matrix3 TimesTranspose (const Matrix3 &rkM) const
Matrix3 Inverse () const
Matrix3 Adjoint () const
Real Determinant () const
Real QForm (const Vector3< Real > &rkU, const Vector3< Real > &rkV) const
Matrix3 TimesDiagonal (const Vector3< Real > &rkDiag) const
Matrix3 DiagonalTimes (const Vector3< Real > &rkDiag) const
void ToAxisAngle (Vector3< Real > &rkAxis, Real &rfAngle) const
void Orthonormalize ()
void EigenDecomposition (Matrix3 &rkRot, Matrix3 &rkDiag) const
Matrix3FromEulerAnglesXYZ (Real fXAngle, Real fYAngle, Real fZAngle)
Matrix3FromEulerAnglesXZY (Real fXAngle, Real fZAngle, Real fYAngle)
Matrix3FromEulerAnglesYXZ (Real fYAngle, Real fXAngle, Real fZAngle)
Matrix3FromEulerAnglesYZX (Real fYAngle, Real fZAngle, Real fXAngle)
Matrix3FromEulerAnglesZXY (Real fZAngle, Real fXAngle, Real fYAngle)
Matrix3FromEulerAnglesZYX (Real fZAngle, Real fYAngle, Real fXAngle)
EulerResult ToEulerAnglesXYZ (Real &rfXAngle, Real &rfYAngle, Real &rfZAngle) const
EulerResult ToEulerAnglesXZY (Real &rfXAngle, Real &rfZAngle, Real &rfYAngle) const
EulerResult ToEulerAnglesYXZ (Real &rfYAngle, Real &rfXAngle, Real &rfZAngle) const
EulerResult ToEulerAnglesYZX (Real &rfYAngle, Real &rfZAngle, Real &rfXAngle) const
EulerResult ToEulerAnglesZXY (Real &rfZAngle, Real &rfXAngle, Real &rfYAngle) const
EulerResult ToEulerAnglesZYX (Real &rfZAngle, Real &rfYAngle, Real &rfXAngle) const
EulerResult ToEulerAnglesXYX (Real &rfX0Angle, Real &rfYAngle, Real &rfX1Angle) const
EulerResult ToEulerAnglesXZX (Real &rfX0Angle, Real &rfZAngle, Real &rfX1Angle) const
EulerResult ToEulerAnglesYXY (Real &rfY0Angle, Real &rfXAngle, Real &rfY1Angle) const
EulerResult ToEulerAnglesYZY (Real &rfY0Angle, Real &rfZAngle, Real &rfY1Angle) const
EulerResult ToEulerAnglesZXZ (Real &rfZ0Angle, Real &rfXAngle, Real &rfZ1Angle) const
EulerResult ToEulerAnglesZYZ (Real &rfZ0Angle, Real &rfYAngle, Real &rfZ1Angle) const
Matrix3Slerp (Real fT, const Matrix3 &rkR0, const Matrix3 &rkR1)
void SingularValueDecomposition (Matrix3 &rkL, Matrix3 &rkD, Matrix3 &rkRTranspose) const
void SingularValueComposition (const Matrix3 &rkL, const Matrix3 &rkD, const Matrix3 &rkRTranspose)
void PolarDecomposition (Matrix3 &rkQ, Matrix3 &rkS)
void QDUDecomposition (Matrix3 &rkQ, Matrix3 &rkD, Matrix3 &rkU) const

Static Public Attributes

static WM4_FOUNDATION_ITEM
const Matrix3 
ZERO
static WM4_FOUNDATION_ITEM
const Matrix3 
IDENTITY

template<class Real>
class Wm4::Matrix3< Real >


Member Enumeration Documentation

template<class Real>
enum Wm4::Matrix3::EulerResult

Enumerator:
EA_UNIQUE 
EA_NOT_UNIQUE_SUM 
EA_NOT_UNIQUE_DIF 


Constructor & Destructor Documentation

template<class Real>
Wm4::Matrix3< Real >::Matrix3 ( bool  bZero = true  ) 

template<class Real>
Wm4::Matrix3< Real >::Matrix3 ( const Matrix3< Real > &  rkM  ) 

template<class Real>
Wm4::Matrix3< Real >::Matrix3 ( Real  fM00,
Real  fM01,
Real  fM02,
Real  fM10,
Real  fM11,
Real  fM12,
Real  fM20,
Real  fM21,
Real  fM22 
)

template<class Real>
Wm4::Matrix3< Real >::Matrix3 ( const Real  afEntry[9],
bool  bRowMajor 
)

template<class Real>
Wm4::Matrix3< Real >::Matrix3 ( const Vector3< Real > &  rkU,
const Vector3< Real > &  rkV,
const Vector3< Real > &  rkW,
bool  bColumns 
)

template<class Real>
Wm4::Matrix3< Real >::Matrix3 ( const Vector3< Real > *  akV,
bool  bColumns 
)

template<class Real>
Wm4::Matrix3< Real >::Matrix3 ( Real  fM00,
Real  fM11,
Real  fM22 
)

template<class Real>
Wm4::Matrix3< Real >::Matrix3 ( const Vector3< Real > &  rkAxis,
Real  fAngle 
)

template<class Real>
Wm4::Matrix3< Real >::Matrix3 ( const Vector3< Real > &  rkU,
const Vector3< Real > &  rkV 
)


Member Function Documentation

template<class Real>
Matrix3< Real > & Wm4::Matrix3< Real >::MakeZero (  ) 

template<class Real>
Matrix3< Real > & Wm4::Matrix3< Real >::MakeIdentity (  ) 

template<class Real>
Matrix3< Real > & Wm4::Matrix3< Real >::MakeDiagonal ( Real  fM00,
Real  fM11,
Real  fM22 
)

template<class Real>
Matrix3< Real > & Wm4::Matrix3< Real >::FromAxisAngle ( const Vector3< Real > &  rkAxis,
Real  fAngle 
)

template<class Real>
Matrix3< Real > & Wm4::Matrix3< Real >::MakeTensorProduct ( const Vector3< Real > &  rkU,
const Vector3< Real > &  rkV 
)

template<class Real>
Wm4::Matrix3< Real >::operator const Real * (  )  const [inline]

template<class Real>
Wm4::Matrix3< Real >::operator Real * (  )  [inline]

template<class Real>
const Real * Wm4::Matrix3< Real >::operator[] ( int  iRow  )  const [inline]

template<class Real>
Real * Wm4::Matrix3< Real >::operator[] ( int  iRow  )  [inline]

template<class Real>
Real Wm4::Matrix3< Real >::operator() ( int  iRow,
int  iCol 
) const [inline]

template<class Real>
Real & Wm4::Matrix3< Real >::operator() ( int  iRow,
int  iCol 
) [inline]

template<class Real>
void Wm4::Matrix3< Real >::SetRow ( int  iRow,
const Vector3< Real > &  rkV 
)

template<class Real>
Vector3< Real > Wm4::Matrix3< Real >::GetRow ( int  iRow  )  const

template<class Real>
void Wm4::Matrix3< Real >::SetColumn ( int  iCol,
const Vector3< Real > &  rkV 
)

template<class Real>
Vector3< Real > Wm4::Matrix3< Real >::GetColumn ( int  iCol  )  const

template<class Real>
void Wm4::Matrix3< Real >::GetColumnMajor ( Real *  afCMajor  )  const

template<class Real>
Matrix3< Real > & Wm4::Matrix3< Real >::operator= ( const Matrix3< Real > &  rkM  )  [inline]

template<class Real>
bool Wm4::Matrix3< Real >::operator== ( const Matrix3< Real > &  rkM  )  const

template<class Real>
bool Wm4::Matrix3< Real >::operator!= ( const Matrix3< Real > &  rkM  )  const

template<class Real>
bool Wm4::Matrix3< Real >::operator< ( const Matrix3< Real > &  rkM  )  const

template<class Real>
bool Wm4::Matrix3< Real >::operator<= ( const Matrix3< Real > &  rkM  )  const

template<class Real>
bool Wm4::Matrix3< Real >::operator> ( const Matrix3< Real > &  rkM  )  const

template<class Real>
bool Wm4::Matrix3< Real >::operator>= ( const Matrix3< Real > &  rkM  )  const

template<class Real>
Matrix3< Real > Wm4::Matrix3< Real >::operator+ ( const Matrix3< Real > &  rkM  )  const [inline]

template<class Real>
Matrix3< Real > Wm4::Matrix3< Real >::operator- ( const Matrix3< Real > &  rkM  )  const [inline]

template<class Real>
Matrix3< Real > Wm4::Matrix3< Real >::operator * ( const Matrix3< Real > &  rkM  )  const [inline]

template<class Real>
Matrix3< Real > Wm4::Matrix3< Real >::operator * ( Real  fScalar  )  const [inline]

template<class Real>
Matrix3< Real > Wm4::Matrix3< Real >::operator/ ( Real  fScalar  )  const [inline]

template<class Real>
Matrix3< Real > Wm4::Matrix3< Real >::operator- (  )  const [inline]

template<class Real>
Matrix3< Real > & Wm4::Matrix3< Real >::operator+= ( const Matrix3< Real > &  rkM  )  [inline]

template<class Real>
Matrix3< Real > & Wm4::Matrix3< Real >::operator-= ( const Matrix3< Real > &  rkM  )  [inline]

template<class Real>
Matrix3< Real > & Wm4::Matrix3< Real >::operator *= ( Real  fScalar  )  [inline]

template<class Real>
Matrix3< Real > & Wm4::Matrix3< Real >::operator/= ( Real  fScalar  )  [inline]

template<class Real>
Vector3< Real > Wm4::Matrix3< Real >::operator * ( const Vector3< Real > &  rkV  )  const [inline]

template<class Real>
Matrix3< Real > Wm4::Matrix3< Real >::Transpose (  )  const

template<class Real>
Matrix3< Real > Wm4::Matrix3< Real >::TransposeTimes ( const Matrix3< Real > &  rkM  )  const

template<class Real>
Matrix3< Real > Wm4::Matrix3< Real >::TimesTranspose ( const Matrix3< Real > &  rkM  )  const

template<class Real>
Matrix3< Real > Wm4::Matrix3< Real >::Inverse (  )  const

template<class Real>
Matrix3< Real > Wm4::Matrix3< Real >::Adjoint (  )  const

template<class Real>
Real Wm4::Matrix3< Real >::Determinant (  )  const

template<class Real>
Real Wm4::Matrix3< Real >::QForm ( const Vector3< Real > &  rkU,
const Vector3< Real > &  rkV 
) const

template<class Real>
Matrix3< Real > Wm4::Matrix3< Real >::TimesDiagonal ( const Vector3< Real > &  rkDiag  )  const

template<class Real>
Matrix3< Real > Wm4::Matrix3< Real >::DiagonalTimes ( const Vector3< Real > &  rkDiag  )  const

template<class Real>
void Wm4::Matrix3< Real >::ToAxisAngle ( Vector3< Real > &  rkAxis,
Real &  rfAngle 
) const

template<class Real>
void Wm4::Matrix3< Real >::Orthonormalize (  ) 

template<class Real>
void Wm4::Matrix3< Real >::EigenDecomposition ( Matrix3< Real > &  rkRot,
Matrix3< Real > &  rkDiag 
) const

template<class Real>
Matrix3< Real > & Wm4::Matrix3< Real >::FromEulerAnglesXYZ ( Real  fXAngle,
Real  fYAngle,
Real  fZAngle 
)

template<class Real>
Matrix3< Real > & Wm4::Matrix3< Real >::FromEulerAnglesXZY ( Real  fXAngle,
Real  fZAngle,
Real  fYAngle 
)

template<class Real>
Matrix3< Real > & Wm4::Matrix3< Real >::FromEulerAnglesYXZ ( Real  fYAngle,
Real  fXAngle,
Real  fZAngle 
)

template<class Real>
Matrix3< Real > & Wm4::Matrix3< Real >::FromEulerAnglesYZX ( Real  fYAngle,
Real  fZAngle,
Real  fXAngle 
)

template<class Real>
Matrix3< Real > & Wm4::Matrix3< Real >::FromEulerAnglesZXY ( Real  fZAngle,
Real  fXAngle,
Real  fYAngle 
)

template<class Real>
Matrix3< Real > & Wm4::Matrix3< Real >::FromEulerAnglesZYX ( Real  fZAngle,
Real  fYAngle,
Real  fXAngle 
)

template<class Real>
Matrix3< Real >::EulerResult Wm4::Matrix3< Real >::ToEulerAnglesXYZ ( Real &  rfXAngle,
Real &  rfYAngle,
Real &  rfZAngle 
) const

template<class Real>
Matrix3< Real >::EulerResult Wm4::Matrix3< Real >::ToEulerAnglesXZY ( Real &  rfXAngle,
Real &  rfZAngle,
Real &  rfYAngle 
) const

template<class Real>
Matrix3< Real >::EulerResult Wm4::Matrix3< Real >::ToEulerAnglesYXZ ( Real &  rfYAngle,
Real &  rfXAngle,
Real &  rfZAngle 
) const

template<class Real>
Matrix3< Real >::EulerResult Wm4::Matrix3< Real >::ToEulerAnglesYZX ( Real &  rfYAngle,
Real &  rfZAngle,
Real &  rfXAngle 
) const

template<class Real>
Matrix3< Real >::EulerResult Wm4::Matrix3< Real >::ToEulerAnglesZXY ( Real &  rfZAngle,
Real &  rfXAngle,
Real &  rfYAngle 
) const

template<class Real>
Matrix3< Real >::EulerResult Wm4::Matrix3< Real >::ToEulerAnglesZYX ( Real &  rfZAngle,
Real &  rfYAngle,
Real &  rfXAngle 
) const

template<class Real>
Matrix3< Real >::EulerResult Wm4::Matrix3< Real >::ToEulerAnglesXYX ( Real &  rfX0Angle,
Real &  rfYAngle,
Real &  rfX1Angle 
) const

template<class Real>
Matrix3< Real >::EulerResult Wm4::Matrix3< Real >::ToEulerAnglesXZX ( Real &  rfX0Angle,
Real &  rfZAngle,
Real &  rfX1Angle 
) const

template<class Real>
Matrix3< Real >::EulerResult Wm4::Matrix3< Real >::ToEulerAnglesYXY ( Real &  rfY0Angle,
Real &  rfXAngle,
Real &  rfY1Angle 
) const

template<class Real>
Matrix3< Real >::EulerResult Wm4::Matrix3< Real >::ToEulerAnglesYZY ( Real &  rfY0Angle,
Real &  rfZAngle,
Real &  rfY1Angle 
) const

template<class Real>
Matrix3< Real >::EulerResult Wm4::Matrix3< Real >::ToEulerAnglesZXZ ( Real &  rfZ0Angle,
Real &  rfXAngle,
Real &  rfZ1Angle 
) const

template<class Real>
Matrix3< Real >::EulerResult Wm4::Matrix3< Real >::ToEulerAnglesZYZ ( Real &  rfZ0Angle,
Real &  rfYAngle,
Real &  rfZ1Angle 
) const

template<class Real>
Matrix3< Real > & Wm4::Matrix3< Real >::Slerp ( Real  fT,
const Matrix3< Real > &  rkR0,
const Matrix3< Real > &  rkR1 
)

template<class Real>
void Wm4::Matrix3< Real >::SingularValueDecomposition ( Matrix3< Real > &  rkL,
Matrix3< Real > &  rkD,
Matrix3< Real > &  rkRTranspose 
) const

template<class Real>
void Wm4::Matrix3< Real >::SingularValueComposition ( const Matrix3< Real > &  rkL,
const Matrix3< Real > &  rkD,
const Matrix3< Real > &  rkRTranspose 
)

template<class Real>
void Wm4::Matrix3< Real >::PolarDecomposition ( Matrix3< Real > &  rkQ,
Matrix3< Real > &  rkS 
)

template<class Real>
void Wm4::Matrix3< Real >::QDUDecomposition ( Matrix3< Real > &  rkQ,
Matrix3< Real > &  rkD,
Matrix3< Real > &  rkU 
) const


Member Data Documentation

template<class Real>
WM4_FOUNDATION_ITEM const Matrix3 Wm4::Matrix3< Real >::ZERO [static]

template<class Real>
WM4_FOUNDATION_ITEM const Matrix3 Wm4::Matrix3< Real >::IDENTITY [static]


The documentation for this class was generated from the following file:
Generated on Fri Feb 13 13:58:46 2009 for meshmorph by  doxygen 1.5.1