A 3x3 matrix which can represent rotations around axes. More...
#include <OgreMatrix3.h>
Public Member Functions | |
| Matrix3 () | |
| Default constructor. | |
| 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) | |
| void | swap (Matrix3 &other) |
| Exchange the contents of this matrix with another. | |
| Real * | operator[] (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) |
| Matrix3 & | operator= (const Matrix3 &rkMatrix) |
| bool | operator== (const Matrix3 &rkMatrix) const |
| Tests 2 matrices for equality. | |
| bool | operator!= (const Matrix3 &rkMatrix) const |
| Tests 2 matrices for inequality. | |
| Matrix3 | operator+ (const Matrix3 &rkMatrix) const |
| Matrix addition. | |
| Matrix3 | operator- (const Matrix3 &rkMatrix) const |
| Matrix subtraction. | |
| Matrix3 | operator* (const Matrix3 &rkMatrix) const |
| Matrix concatenation using '*'. | |
| Matrix3 | operator- () const |
| Vector3 | operator* (const Vector3 &rkVector) const |
| Matrix * vector [3x3 * 3x1 = 3x1]. | |
| Matrix3 | operator* (Real fScalar) const |
| Matrix * scalar. | |
| 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 () |
| Gram-Schmidt orthonormalization (applied to columns of rotation matrix) | |
| void | QDUDecomposition (Matrix3 &rkQ, Vector3 &rkD, Vector3 &rkU) const |
| Orthogonal Q, diagonal D, upper triangular U stored as (u01,u02,u12) | |
| Real | SpectralNorm () const |
| void | ToAngleAxis (Vector3 &rkAxis, Radian &rfAngle) const |
| void | ToAngleAxis (Vector3 &rkAxis, Degree &rfAngle) const |
| void | FromAngleAxis (const Vector3 &rkAxis, const Radian &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) |
| void | EigenSolveSymmetric (Real afEigenvalue[3], Vector3 akEigenvector[3]) const |
| Eigensolver, matrix must be symmetric. | |
| bool | hasScale () const |
| Determines if this matrix involves a scaling. | |
Static Public Member Functions | |
| static void | TensorProduct (const Vector3 &rkU, const Vector3 &rkV, Matrix3 &rkProduct) |
Static Public Attributes | |
| static const Real | EPSILON |
| static const Matrix3 | ZERO |
| static const Matrix3 | 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 (Matrix3 &kA, Matrix3 &kL, Matrix3 &kR) |
| static void | GolubKahanStep (Matrix3 &kA, Matrix3 &kL, Matrix3 &kR) |
| static Real | MaxCubicRoot (Real afCoeff[3]) |
Protected Attributes | |
| Real | m [3][3] |
Static Protected Attributes | |
| static const Real | msSvdEpsilon |
| static const unsigned int | msSvdMaxIterations |
Friends | |
| class | Matrix4 |
| _OgreExport friend Vector3 | operator* (const Vector3 &rkVector, const Matrix3 &rkMatrix) |
| Vector * matrix [1x3 * 3x3 = 1x3]. | |
| _OgreExport friend Matrix3 | operator* (Real fScalar, const Matrix3 &rkMatrix) |
| Scalar * matrix. | |
| _OgreExport friend std::ostream & | operator<< (std::ostream &o, const Matrix3 &mat) |
| Function for writing to a stream. | |
A 3x3 matrix which can represent rotations around axes.
Definition at line 68 of file OgreMatrix3.h.
Default constructor.
Definition at line 75 of file OgreMatrix3.h.
| Ogre::Matrix3::Matrix3 | ( | const Real | arr[3][3] | ) | [explicit] |
Definition at line 76 of file OgreMatrix3.h.
| Ogre::Matrix3::Matrix3 | ( | const Matrix3 & | rkMatrix | ) |
Definition at line 80 of file OgreMatrix3.h.
References m.
| Ogre::Matrix3::Matrix3 | ( | Real | fEntry00, |
| Real | fEntry01, | ||
| Real | fEntry02, | ||
| Real | fEntry10, | ||
| Real | fEntry11, | ||
| Real | fEntry12, | ||
| Real | fEntry20, | ||
| Real | fEntry21, | ||
| Real | fEntry22 | ||
| ) |
Definition at line 84 of file OgreMatrix3.h.
| static void Ogre::Matrix3::Bidiagonalize | ( | Matrix3 & | kA, |
| Matrix3 & | kL, | ||
| Matrix3 & | kR | ||
| ) | [static, protected] |
| Real Ogre::Matrix3::Determinant | ( | ) | const |
| void Ogre::Matrix3::EigenSolveSymmetric | ( | Real | afEigenvalue[3], |
| Vector3 | akEigenvector[3] | ||
| ) | const |
Eigensolver, matrix must be symmetric.
| void Ogre::Matrix3::FromAngleAxis | ( | const Vector3 & | rkAxis, |
| const Radian & | fRadians | ||
| ) |
| void Ogre::Matrix3::FromAxes | ( | const Vector3 & | xAxis, |
| const Vector3 & | yAxis, | ||
| const Vector3 & | zAxis | ||
| ) |
| void Ogre::Matrix3::FromEulerAnglesXYZ | ( | const Radian & | fYAngle, |
| const Radian & | fPAngle, | ||
| const Radian & | fRAngle | ||
| ) |
| void Ogre::Matrix3::FromEulerAnglesXZY | ( | const Radian & | fYAngle, |
| const Radian & | fPAngle, | ||
| const Radian & | fRAngle | ||
| ) |
| void Ogre::Matrix3::FromEulerAnglesYXZ | ( | const Radian & | fYAngle, |
| const Radian & | fPAngle, | ||
| const Radian & | fRAngle | ||
| ) |
| void Ogre::Matrix3::FromEulerAnglesYZX | ( | const Radian & | fYAngle, |
| const Radian & | fPAngle, | ||
| const Radian & | fRAngle | ||
| ) |
| void Ogre::Matrix3::FromEulerAnglesZXY | ( | const Radian & | fYAngle, |
| const Radian & | fPAngle, | ||
| const Radian & | fRAngle | ||
| ) |
| void Ogre::Matrix3::FromEulerAnglesZYX | ( | const Radian & | fYAngle, |
| const Radian & | fPAngle, | ||
| const Radian & | fRAngle | ||
| ) |
| Vector3 Ogre::Matrix3::GetColumn | ( | size_t | iCol | ) | const |
| static void Ogre::Matrix3::GolubKahanStep | ( | Matrix3 & | kA, |
| Matrix3 & | kL, | ||
| Matrix3 & | kR | ||
| ) | [static, protected] |
| bool Ogre::Matrix3::hasScale | ( | ) | const |
Determines if this matrix involves a scaling.
Definition at line 231 of file OgreMatrix3.h.
References Ogre::Math::RealEqual().
| bool Ogre::Matrix3::Inverse | ( | Matrix3 & | rkInverse, |
| Real | fTolerance = 1e-06 |
||
| ) | const |
| Matrix3 Ogre::Matrix3::Inverse | ( | Real | fTolerance = 1e-06 | ) | const |
| static Real Ogre::Matrix3::MaxCubicRoot | ( | Real | afCoeff[3] | ) | [static, protected] |
| bool Ogre::Matrix3::operator!= | ( | const Matrix3 & | rkMatrix | ) | const |
Tests 2 matrices for inequality.
Definition at line 140 of file OgreMatrix3.h.
References Ogre::operator==().
Matrix * vector [3x3 * 3x1 = 3x1].
| Matrix3 Ogre::Matrix3::operator- | ( | ) | const |
Definition at line 128 of file OgreMatrix3.h.
References m.
| bool Ogre::Matrix3::operator== | ( | const Matrix3 & | rkMatrix | ) | const |
Tests 2 matrices for equality.
| Real* Ogre::Matrix3::operator[] | ( | size_t | iRow | ) | const |
Definition at line 115 of file OgreMatrix3.h.
| void Ogre::Matrix3::Orthonormalize | ( | ) |
Gram-Schmidt orthonormalization (applied to columns of rotation matrix)
| void Ogre::Matrix3::QDUDecomposition | ( | Matrix3 & | rkQ, |
| Vector3 & | rkD, | ||
| Vector3 & | rkU | ||
| ) | const |
Orthogonal Q, diagonal D, upper triangular U stored as (u01,u02,u12)
| bool Ogre::Matrix3::QLAlgorithm | ( | Real | afDiag[3], |
| Real | afSubDiag[3] | ||
| ) | [protected] |
| void Ogre::Matrix3::SetColumn | ( | size_t | iCol, |
| const Vector3 & | vec | ||
| ) |
| void Ogre::Matrix3::SingularValueComposition | ( | const Matrix3 & | rkL, |
| const Vector3 & | rkS, | ||
| const Matrix3 & | rkR | ||
| ) |
| void Ogre::Matrix3::SingularValueDecomposition | ( | Matrix3 & | rkL, |
| Vector3 & | rkS, | ||
| Matrix3 & | rkR | ||
| ) | const |
| Real Ogre::Matrix3::SpectralNorm | ( | ) | const |
| void Ogre::Matrix3::swap | ( | Matrix3 & | other | ) |
Exchange the contents of this matrix with another.
Definition at line 101 of file OgreMatrix3.h.
References m, and std::swap().
| static void Ogre::Matrix3::TensorProduct | ( | const Vector3 & | rkU, |
| const Vector3 & | rkV, | ||
| Matrix3 & | rkProduct | ||
| ) | [static] |
| void Ogre::Matrix3::ToAngleAxis | ( | Vector3 & | rkAxis, |
| Radian & | rfAngle | ||
| ) | const |
| void Ogre::Matrix3::ToAngleAxis | ( | Vector3 & | rkAxis, |
| Degree & | rfAngle | ||
| ) | const |
Definition at line 195 of file OgreMatrix3.h.
| bool Ogre::Matrix3::ToEulerAnglesXYZ | ( | Radian & | rfYAngle, |
| Radian & | rfPAngle, | ||
| Radian & | rfRAngle | ||
| ) | const |
| bool Ogre::Matrix3::ToEulerAnglesXZY | ( | Radian & | rfYAngle, |
| Radian & | rfPAngle, | ||
| Radian & | rfRAngle | ||
| ) | const |
| bool Ogre::Matrix3::ToEulerAnglesYXZ | ( | Radian & | rfYAngle, |
| Radian & | rfPAngle, | ||
| Radian & | rfRAngle | ||
| ) | const |
| bool Ogre::Matrix3::ToEulerAnglesYZX | ( | Radian & | rfYAngle, |
| Radian & | rfPAngle, | ||
| Radian & | rfRAngle | ||
| ) | const |
| bool Ogre::Matrix3::ToEulerAnglesZXY | ( | Radian & | rfYAngle, |
| Radian & | rfPAngle, | ||
| Radian & | rfRAngle | ||
| ) | const |
| bool Ogre::Matrix3::ToEulerAnglesZYX | ( | Radian & | rfYAngle, |
| Radian & | rfPAngle, | ||
| Radian & | rfRAngle | ||
| ) | const |
| Matrix3 Ogre::Matrix3::Transpose | ( | ) | const |
| void Ogre::Matrix3::Tridiagonal | ( | Real | afDiag[3], |
| Real | afSubDiag[3] | ||
| ) | [protected] |
friend class Matrix4 [friend] |
Definition at line 281 of file OgreMatrix3.h.
| _OgreExport friend Vector3 operator* | ( | const Vector3 & | rkVector, |
| const Matrix3 & | rkMatrix | ||
| ) | [friend] |
Vector * matrix [1x3 * 3x3 = 1x3].
| _OgreExport friend Matrix3 operator* | ( | Real | fScalar, |
| const Matrix3 & | rkMatrix | ||
| ) | [friend] |
Scalar * matrix.
| _OgreExport friend std::ostream& operator<< | ( | std::ostream & | o, |
| const Matrix3 & | mat | ||
| ) | [friend] |
Function for writing to a stream.
Definition at line 250 of file OgreMatrix3.h.
const Real Ogre::Matrix3::EPSILON [static] |
Definition at line 258 of file OgreMatrix3.h.
const Matrix3 Ogre::Matrix3::IDENTITY [static] |
Definition at line 260 of file OgreMatrix3.h.
Real Ogre::Matrix3::m[3][3] [protected] |
Definition at line 278 of file OgreMatrix3.h.
Referenced by Ogre::Matrix4::extract3x3Matrix(), Matrix3(), operator=(), Ogre::Matrix4::operator=(), and swap().
const Real Ogre::Matrix3::msSvdEpsilon [static, protected] |
Definition at line 268 of file OgreMatrix3.h.
const unsigned int Ogre::Matrix3::msSvdMaxIterations [static, protected] |
Definition at line 269 of file OgreMatrix3.h.
const Matrix3 Ogre::Matrix3::ZERO [static] |
Definition at line 259 of file OgreMatrix3.h.
Copyright © 2012 Torus Knot Software Ltd

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Sun Sep 2 2012 07:27:31