Public Methods |
| Matrix3 () |
| Matrix3 (const Real arr[3][3]) |
| Matrix3 (const Matrix3 &rkMatrix) |
| Matrix3 (Real fEntry00, Real fEntry01, Real fEntry02, Real fEntry10, Real fEntry11, Real fEntry12, Real fEntry20, Real fEntry21, Real fEntry22) |
Real * | operator[] (int iRow) const |
| operator Real * () |
Vector3 | GetColumn (int iCol) const |
void | SetColumn (int iCol, const Vector3 &vec) |
void | FromAxes (const Vector3 &xAxis, const Vector3 &yAxis, const Vector3 &zAxis) |
Matrix3 & | operator= (const Matrix3 &rkMatrix) |
bool | operator== (const Matrix3 &rkMatrix) const |
bool | operator!= (const Matrix3 &rkMatrix) const |
Matrix3 | operator+ (const Matrix3 &rkMatrix) const |
Matrix3 | operator- (const Matrix3 &rkMatrix) const |
Matrix3 | operator * (const Matrix3 &rkMatrix) const |
Matrix3 | operator- () const |
Vector3 | operator * (const Vector3 &rkVector) const |
Matrix3 | operator * (Real fScalar) const |
Matrix3 | Transpose () const |
bool | Inverse (Matrix3 &rkInverse, Real fTolerance=1e-06) const |
Matrix3 | Inverse (Real fTolerance=1e-06) const |
Real | Determinant () const |
void | SingularValueDecomposition (Matrix3 &rkL, Vector3 &rkS, Matrix3 &rkR) const |
void | SingularValueComposition (const Matrix3 &rkL, const Vector3 &rkS, const Matrix3 &rkR) |
void | Orthonormalize () |
void | QDUDecomposition (Matrix3 &rkQ, Vector3 &rkD, Vector3 &rkU) const |
Real | SpectralNorm () const |
void | ToAxisAngle (Vector3 &rkAxis, Real &rfRadians) const |
void | FromAxisAngle (const Vector3 &rkAxis, Real fRadians) |
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 Methods |
void | TensorProduct (const Vector3 &rkU, const Vector3 &rkV, Matrix3 &rkProduct) |
Static Public Attributes |
const Real | EPSILON = 1e-06 |
const Matrix3 | ZERO |
const Matrix3 | IDENTITY |
Protected Methods |
void | Tridiagonal (Real afDiag[3], Real afSubDiag[3]) |
bool | QLAlgorithm (Real afDiag[3], Real afSubDiag[3]) |
Static Protected Methods |
void | Bidiagonalize (Matrix3 &kA, Matrix3 &kL, Matrix3 &kR) |
void | GolubKahanStep (Matrix3 &kA, Matrix3 &kL, Matrix3 &kR) |
Real | MaxCubicRoot (Real afCoeff[3]) |
Protected Attributes |
Real | m [3][3] |
Static Protected Attributes |
const Real | ms_fSvdEpsilon = 1e-04 |
const int | ms_iSvdMaxIterations = 32 |
Friends |
class | Matrix4 |
Vector3 | operator * (const Vector3 &rkVector, const Matrix3 &rkMatrix) |
Matrix3 | operator * (Real fScalar, const Matrix3 &rkMatrix) |