Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

peon::Matrix33 Class Reference

A 3x3 matrix which can represent rotations around axes. More...

#include <Matrix33.h>

List of all members.

Public Member Functions

 Matrix33 ()
 Default constructor.
 Matrix33 (const Real arr[3][3])
 Matrix33 (const Matrix33 &rkMatrix)
 Matrix33 (Real fEntry00, Real fEntry01, Real fEntry02, Real fEntry10, Real fEntry11, Real fEntry12, Real fEntry20, Real fEntry21, Real fEntry22)
Realoperator[] (size_t iRow) const
Vector3 GetColumn (size_t iCol) const
void SetColumn (size_t iCol, const Vector3 &vec)
void FromAxes (const Vector3 &xAxis, const Vector3 &yAxis, const Vector3 &zAxis)
Matrix33operator= (const Matrix33 &rkMatrix)
bool operator== (const Matrix33 &rkMatrix) const
bool operator!= (const Matrix33 &rkMatrix) const
Matrix33 operator+ (const Matrix33 &rkMatrix) const
Matrix33 operator- (const Matrix33 &rkMatrix) const
Matrix33 operator * (const Matrix33 &rkMatrix) const
Matrix33 operator- () const
Vector3 operator * (const Vector3 &rkVector) const
Matrix33 operator * (Real fScalar) const
Matrix33 Transpose () const
bool Inverse (Matrix33 &rkInverse, Real fTolerance=1e-06) const
Matrix33 Inverse (Real fTolerance=1e-06) const
Real Determinant () const
void SingularValueDecomposition (Matrix33 &rkL, Vector3 &rkS, Matrix33 &rkR) const
void SingularValueComposition (const Matrix33 &rkL, const Vector3 &rkS, const Matrix33 &rkR)
void Orthonormalize ()
void QDUDecomposition (Matrix33 &rkQ, Vector3 &rkD, Vector3 &rkU) const
Real SpectralNorm () const
void ToAxisAngle (Vector3 &rkAxis, Radian &rfAngle) const
void ToAxisAngle (Vector3 &rkAxis, Degree &rfAngle) const
void FromAxisAngle (const Vector3 &rkAxis, const Radian &fRadians)
void ToAxisAngle (Vector3 &rkAxis, Real &rfRadians) const
void FromAxisAngle (const Vector3 &rkAxis, Real fRadians)
bool ToEulerAnglesXYZ (Radian &rfYAngle, Radian &rfPAngle, Radian &rfRAngle) const
bool ToEulerAnglesXZY (Radian &rfYAngle, Radian &rfPAngle, Radian &rfRAngle) const
bool ToEulerAnglesYXZ (Radian &rfYAngle, Radian &rfPAngle, Radian &rfRAngle) const
bool ToEulerAnglesYZX (Radian &rfYAngle, Radian &rfPAngle, Radian &rfRAngle) const
bool ToEulerAnglesZXY (Radian &rfYAngle, Radian &rfPAngle, Radian &rfRAngle) const
bool ToEulerAnglesZYX (Radian &rfYAngle, Radian &rfPAngle, Radian &rfRAngle) const
void FromEulerAnglesXYZ (const Radian &fYAngle, const Radian &fPAngle, const Radian &fRAngle)
void FromEulerAnglesXZY (const Radian &fYAngle, const Radian &fPAngle, const Radian &fRAngle)
void FromEulerAnglesYXZ (const Radian &fYAngle, const Radian &fPAngle, const Radian &fRAngle)
void FromEulerAnglesYZX (const Radian &fYAngle, const Radian &fPAngle, const Radian &fRAngle)
void FromEulerAnglesZXY (const Radian &fYAngle, const Radian &fPAngle, const Radian &fRAngle)
void FromEulerAnglesZYX (const Radian &fYAngle, const Radian &fPAngle, const Radian &fRAngle)
bool ToEulerAnglesXYZ (float &rfYAngle, float &rfPAngle, float &rfRAngle) const
bool ToEulerAnglesXZY (float &rfYAngle, float &rfPAngle, float &rfRAngle) const
bool ToEulerAnglesYXZ (float &rfYAngle, float &rfPAngle, float &rfRAngle) const
bool ToEulerAnglesYZX (float &rfYAngle, float &rfPAngle, float &rfRAngle) const
bool ToEulerAnglesZXY (float &rfYAngle, float &rfPAngle, float &rfRAngle) const
bool ToEulerAnglesZYX (float &rfYAngle, float &rfPAngle, float &rfRAngle) const
void FromEulerAnglesXYZ (float fYAngle, float fPAngle, float fRAngle)
void FromEulerAnglesXZY (float fYAngle, float fPAngle, float fRAngle)
void FromEulerAnglesYXZ (float fYAngle, float fPAngle, float fRAngle)
void FromEulerAnglesYZX (float fYAngle, float fPAngle, float fRAngle)
void FromEulerAnglesZXY (float fYAngle, float fPAngle, float fRAngle)
void FromEulerAnglesZYX (float fYAngle, float fPAngle, float fRAngle)
void EigenSolveSymmetric (Real afEigenvalue[3], Vector3 akEigenvector[3]) const

Static Public Member Functions

static void TensorProduct (const Vector3 &rkU, const Vector3 &rkV, Matrix33 &rkProduct)

Static Public Attributes

static const Real EPSILON
static const Matrix33 ZERO
static const Matrix33 IDENTITY

Protected Member Functions

void Tridiagonal (Real afDiag[3], Real afSubDiag[3])
bool QLAlgorithm (Real afDiag[3], Real afSubDiag[3])

Static Protected Member Functions

static void Bidiagonalize (Matrix33 &kA, Matrix33 &kL, Matrix33 &kR)
static void GolubKahanStep (Matrix33 &kA, Matrix33 &kL, Matrix33 &kR)
static Real MaxCubicRoot (Real afCoeff[3])

Protected Attributes

Real m [3][3]

Static Protected Attributes

static const Real ms_fSvdEpsilon
static const unsigned int ms_iSvdMaxIterations

Friends

class Matrix44
_PeonExport friend Vector3 operator * (const Vector3 &rkVector, const Matrix33 &rkMatrix)
_PeonExport friend Matrix33 operator * (Real fScalar, const Matrix33 &rkMatrix)


Detailed Description

A 3x3 matrix which can represent rotations around axes.

Note:
All the code is adapted from the Wild Magic 0.2 Matrix library (http://www.magic-software.com).
The coordinate system is assumed to be right-handed.


Constructor & Destructor Documentation

peon::Matrix33::Matrix33  )  [inline]
 

Default constructor.

Note:
It does NOT initialize the matrix for efficiency.


The documentation for this class was generated from the following file:
Generated on Wed Nov 9 09:37:08 2005 for Peon by  doxygen 1.4.3