#include <vhdMatrix3.h>
Public Member Functions | |
vhdMatrix3 () | |
vhdMatrix3 (const vhtReal arr[3][3]) | |
vhdMatrix3 (const vhtReal *pm) | |
vhdMatrix3 (const vhdMatrix3 &rkMatrix) | |
vhdMatrix3 (vhtReal fEntry00, vhtReal fEntry01, vhtReal fEntry02, vhtReal fEntry10, vhtReal fEntry11, vhtReal fEntry12, vhtReal fEntry20, vhtReal fEntry21, vhtReal fEntry22) | |
vhtReal | get (unsigned int row, unsigned int column) const |
void | set (unsigned int row, unsigned int column, vhtReal value) |
vhtReal * | operator[] (int iRow) const |
operator vhtReal * () | |
vhdVector3 | getColumn (int iCol) const |
void | setColumn (int iCol, const vhdVector3 &vec) |
void | fromAxes (const vhdVector3 &xAxis, const vhdVector3 &yAxis, const vhdVector3 &zAxis) |
vhdMatrix3 & | operator= (const vhdMatrix3 &rkMatrix) |
bool | operator== (const vhdMatrix3 &rkMatrix) const |
bool | operator!= (const vhdMatrix3 &rkMatrix) const |
vhdMatrix3 | operator+ (const vhdMatrix3 &rkMatrix) const |
vhdMatrix3 | operator- (const vhdMatrix3 &rkMatrix) const |
vhdMatrix3 | operator * (const vhdMatrix3 &rkMatrix) const |
vhdMatrix3 | operator- () const |
vhdVector3 | operator * (const vhdVector3 &rkvhdVector) const |
vhdMatrix3 | operator * (vhtReal fScalar) const |
vhdMatrix3 | transpose () const |
bool | inverse (vhdMatrix3 &rkInverse, vhtReal fTolerance=1e-06) const |
vhdMatrix3 | inverse (vhtReal fTolerance=1e-06) const |
vhtReal | determinant () const |
void | singularValueDecomposition (vhdMatrix3 &rkL, vhdVector3 &rkS, vhdMatrix3 &rkR) const |
void | singularValueComposition (const vhdMatrix3 &rkL, const vhdVector3 &rkS, const vhdMatrix3 &rkR) |
void | orthonormalize () |
void | qduDecomposition (vhdMatrix3 &rkQ, vhdVector3 &rkD, vhdVector3 &rkU) const |
vhtReal | spectralNorm () const |
void | toAxisAngle (vhdVector3 &rkAxis, vhtReal &rfRadians) const |
void | fromAxisAngle (const vhdVector3 &rkAxis, vhtReal 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 (vhtReal afEigenvalue[3], vhdVector3 akEigenvhdVector[3]) const |
void | tridiagonal (vhtReal afDiag[3], vhtReal afSubDiag[3]) |
bool | qLAlgorithm (vhtReal afDiag[3], vhtReal afSubDiag[3]) |
Static Public Member Functions | |
static void | tensorProduct (const vhdVector3 &rkU, const vhdVector3 &rkV, vhdMatrix3 &rkProduct) |
static void | bidiagonalize (vhdMatrix3 &kA, vhdMatrix3 &kL, vhdMatrix3 &kR) |
static void | golubKahanStep (vhdMatrix3 &kA, vhdMatrix3 &kL, vhdMatrix3 &kR) |
static vhtReal | maxCubicRoot (vhtReal afCoeff[3]) |
Public Attributes | |
vhtReal | m [3][3] |
Static Public Attributes | |
static const vhdMatrix3 | ZERO |
static const vhdMatrix3 | IDENTITY |
static const vhtReal | ms_fSvdEpsilon |
static const int | ms_iSvdMaxIterations |
Friends | |
class | vhdMatrix4 |
vhdVector3 | operator * (const vhdVector3 &rkvhdVector, const vhdMatrix3 &rkMatrix) |
vhdMatrix3 | operator * (vhtReal fScalar, const vhdMatrix3 &rkMatrix) |
vhdMatrix3::vhdMatrix3 | ( | ) |
vhdMatrix3::vhdMatrix3 | ( | const vhtReal | arr[3][3] | ) |
vhdMatrix3::vhdMatrix3 | ( | const vhtReal * | pm | ) | [inline] |
Constructor for a 9-element array of vhtReals.
vhdMatrix3::vhdMatrix3 | ( | const vhdMatrix3 & | rkMatrix | ) |
vhdMatrix3::vhdMatrix3 | ( | vhtReal | fEntry00, | |
vhtReal | fEntry01, | |||
vhtReal | fEntry02, | |||
vhtReal | fEntry10, | |||
vhtReal | fEntry11, | |||
vhtReal | fEntry12, | |||
vhtReal | fEntry20, | |||
vhtReal | fEntry21, | |||
vhtReal | fEntry22 | |||
) |
vhtReal vhdMatrix3::get | ( | unsigned int | row, | |
unsigned int | column | |||
) | const [inline] |
Returns a value of this matrix specified by the given row and column index.
void vhdMatrix3::set | ( | unsigned int | row, | |
unsigned int | column, | |||
vhtReal | value | |||
) | [inline] |
Sets a value of this matrix specified by the given row and column index.
vhtReal * vhdMatrix3::operator[] | ( | int | iRow | ) | const |
vhdMatrix3::operator vhtReal * | ( | ) |
vhdVector3 vhdMatrix3::getColumn | ( | int | iCol | ) | const |
void vhdMatrix3::setColumn | ( | int | iCol, | |
const vhdVector3 & | vec | |||
) |
void vhdMatrix3::fromAxes | ( | const vhdVector3 & | xAxis, | |
const vhdVector3 & | yAxis, | |||
const vhdVector3 & | zAxis | |||
) |
vhdMatrix3 & vhdMatrix3::operator= | ( | const vhdMatrix3 & | rkMatrix | ) |
bool vhdMatrix3::operator== | ( | const vhdMatrix3 & | rkMatrix | ) | const |
bool vhdMatrix3::operator!= | ( | const vhdMatrix3 & | rkMatrix | ) | const |
vhdMatrix3 vhdMatrix3::operator+ | ( | const vhdMatrix3 & | rkMatrix | ) | const |
vhdMatrix3 vhdMatrix3::operator- | ( | const vhdMatrix3 & | rkMatrix | ) | const |
vhdMatrix3 vhdMatrix3::operator * | ( | const vhdMatrix3 & | rkMatrix | ) | const |
vhdMatrix3 vhdMatrix3::operator- | ( | ) | const |
vhdVector3 vhdMatrix3::operator * | ( | const vhdVector3 & | rkvhdVector | ) | const |
vhdMatrix3 vhdMatrix3::operator * | ( | vhtReal | fScalar | ) | const |
vhdMatrix3 vhdMatrix3::transpose | ( | ) | const |
bool vhdMatrix3::inverse | ( | vhdMatrix3 & | rkInverse, | |
vhtReal | fTolerance = 1e-06 | |||
) | const |
vhdMatrix3 vhdMatrix3::inverse | ( | vhtReal | fTolerance = 1e-06 |
) | const |
vhtReal vhdMatrix3::determinant | ( | ) | const |
void vhdMatrix3::singularValueDecomposition | ( | vhdMatrix3 & | rkL, | |
vhdVector3 & | rkS, | |||
vhdMatrix3 & | rkR | |||
) | const |
void vhdMatrix3::singularValueComposition | ( | const vhdMatrix3 & | rkL, | |
const vhdVector3 & | rkS, | |||
const vhdMatrix3 & | rkR | |||
) |
void vhdMatrix3::orthonormalize | ( | ) |
void vhdMatrix3::qduDecomposition | ( | vhdMatrix3 & | rkQ, | |
vhdVector3 & | rkD, | |||
vhdVector3 & | rkU | |||
) | const |
vhtReal vhdMatrix3::spectralNorm | ( | ) | const |
void vhdMatrix3::toAxisAngle | ( | vhdVector3 & | rkAxis, | |
vhtReal & | rfRadians | |||
) | const |
void vhdMatrix3::fromAxisAngle | ( | const vhdVector3 & | rkAxis, | |
vhtReal | fRadians | |||
) |
bool vhdMatrix3::toEulerAnglesXYZ | ( | float & | rfYAngle, | |
float & | rfPAngle, | |||
float & | rfRAngle | |||
) | const |
bool vhdMatrix3::toEulerAnglesXZY | ( | float & | rfYAngle, | |
float & | rfPAngle, | |||
float & | rfRAngle | |||
) | const |
bool vhdMatrix3::toEulerAnglesYXZ | ( | float & | rfYAngle, | |
float & | rfPAngle, | |||
float & | rfRAngle | |||
) | const |
bool vhdMatrix3::toEulerAnglesYZX | ( | float & | rfYAngle, | |
float & | rfPAngle, | |||
float & | rfRAngle | |||
) | const |
bool vhdMatrix3::toEulerAnglesZXY | ( | float & | rfYAngle, | |
float & | rfPAngle, | |||
float & | rfRAngle | |||
) | const |
bool vhdMatrix3::toEulerAnglesZYX | ( | float & | rfYAngle, | |
float & | rfPAngle, | |||
float & | rfRAngle | |||
) | const |
void vhdMatrix3::fromEulerAnglesXYZ | ( | float | fYAngle, | |
float | fPAngle, | |||
float | fRAngle | |||
) |
void vhdMatrix3::fromEulerAnglesXZY | ( | float | fYAngle, | |
float | fPAngle, | |||
float | fRAngle | |||
) |
void vhdMatrix3::fromEulerAnglesYXZ | ( | float | fYAngle, | |
float | fPAngle, | |||
float | fRAngle | |||
) |
void vhdMatrix3::fromEulerAnglesYZX | ( | float | fYAngle, | |
float | fPAngle, | |||
float | fRAngle | |||
) |
void vhdMatrix3::fromEulerAnglesZXY | ( | float | fYAngle, | |
float | fPAngle, | |||
float | fRAngle | |||
) |
void vhdMatrix3::fromEulerAnglesZYX | ( | float | fYAngle, | |
float | fPAngle, | |||
float | fRAngle | |||
) |
void vhdMatrix3::eigenSolveSymmetric | ( | vhtReal | afEigenvalue[3], | |
vhdVector3 | akEigenvhdVector[3] | |||
) | const |
void vhdMatrix3::tensorProduct | ( | const vhdVector3 & | rkU, | |
const vhdVector3 & | rkV, | |||
vhdMatrix3 & | rkProduct | |||
) | [static] |
void vhdMatrix3::bidiagonalize | ( | vhdMatrix3 & | kA, | |
vhdMatrix3 & | kL, | |||
vhdMatrix3 & | kR | |||
) | [static] |
void vhdMatrix3::golubKahanStep | ( | vhdMatrix3 & | kA, | |
vhdMatrix3 & | kL, | |||
vhdMatrix3 & | kR | |||
) | [static] |
friend class vhdMatrix4 [friend] |
vhdVector3 operator * | ( | const vhdVector3 & | rkvhdVector, | |
const vhdMatrix3 & | rkMatrix | |||
) | [friend] |
vhdMatrix3 operator * | ( | vhtReal | fScalar, | |
const vhdMatrix3 & | rkMatrix | |||
) | [friend] |
const vhdMatrix3 vhdMatrix3::ZERO [static] |
const vhdMatrix3 vhdMatrix3::IDENTITY [static] |
const vhtReal vhdMatrix3::ms_fSvdEpsilon [static] |
const int vhdMatrix3::ms_iSvdMaxIterations [static] |
vhtReal vhdMatrix3::m[3][3] |