OGRE
1.9.0
|
A 3x3 matrix which can represent rotations around axes. More...
#include <OgreMatrix3.h>
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 | IDENTITY |
static const Matrix3 | ZERO |
Protected Member Functions | |
bool | QLAlgorithm (Real afDiag[3], Real afSubDiag[3]) |
void | Tridiagonal (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.
Definition at line 76 of file OgreMatrix3.h.
Definition at line 80 of file OgreMatrix3.h.
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.
|
staticprotected |
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 | ||
) |
|
staticprotected |
bool Ogre::Matrix3::hasScale | ( | ) | const |
Determines if this matrix involves a scaling.
Definition at line 239 of file OgreMatrix3.h.
Tests 2 matrices for inequality.
Definition at line 148 of file OgreMatrix3.h.
References Ogre::operator==().
Matrix * vector [3x3 * 3x1 = 3x1].
Matrix3 Ogre::Matrix3::operator- | ( | ) | const |
Assignment and comparison.
Definition at line 136 of file OgreMatrix3.h.
Definition at line 120 of file OgreMatrix3.h.
Member access, allows use of construct mat[r][c].
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::SingularValueComposition | ( | const Matrix3 & | rkL, |
const Vector3 & | rkS, | ||
const Matrix3 & | rkR | ||
) |
void Ogre::Matrix3::SingularValueDecomposition | ( | Matrix3 & | rkL, |
Vector3 & | rkS, | ||
Matrix3 & | rkR | ||
) | const |
Singular value decomposition.
Real Ogre::Matrix3::SpectralNorm | ( | ) | const |
Exchange the contents of this matrix with another.
Definition at line 101 of file OgreMatrix3.h.
References m, and std::swap().
|
static |
Definition at line 203 of file OgreMatrix3.h.
Note: Matrix must be orthonormal.
bool Ogre::Matrix3::ToEulerAnglesXYZ | ( | Radian & | rfYAngle, |
Radian & | rfPAngle, | ||
Radian & | rfRAngle | ||
) | const |
The matrix must be orthonormal.
The decomposition is yaw*pitch*roll where yaw is rotation about the Up vector, pitch is rotation about the Right axis, and roll is rotation about the Direction axis.
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 |
Definition at line 289 of file OgreMatrix3.h.
Vector * matrix [1x3 * 3x3 = 1x3].
Scalar * matrix.
|
friend |
Function for writing to a stream.
Definition at line 257 of file OgreMatrix3.h.
Definition at line 266 of file OgreMatrix3.h.
Definition at line 268 of file OgreMatrix3.h.
|
protected |
Definition at line 286 of file OgreMatrix3.h.
Referenced by swap().
Definition at line 276 of file OgreMatrix3.h.
Definition at line 277 of file OgreMatrix3.h.
Definition at line 267 of file OgreMatrix3.h.