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.
Ogre::Matrix3::Matrix3 | ( | ) |
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 |
Eigensolver, matrix must be symmetric.
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::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).
Orthogonal Q, diagonal D, upper triangular U stored as (u01,u02,u12).
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] |
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 |
friend class Matrix4 [friend] |
Definition at line 281 of file OgreMatrix3.h.
Scalar * matrix.
_OgreExport friend Vector3 operator* | ( | const Vector3 & | rkVector, | |
const Matrix3 & | rkMatrix | |||
) | [friend] |
Vector * matrix [1x3 * 3x3 = 1x3].
_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(), Ogre::Matrix4::operator=(), 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 Fri May 25 23:38:11 2012