|
| Matrix3 () |
| Default constructor.
|
|
| Matrix3 (const Matrix3 &rkMatrix) |
|
| Matrix3 (const Real arr[3][3]) |
|
| Matrix3 (Real fEntry00, Real fEntry01, Real fEntry02, Real fEntry10, Real fEntry11, Real fEntry12, Real fEntry20, Real fEntry21, Real fEntry22) |
|
Real | Determinant () const |
|
void | EigenSolveSymmetric (Real afEigenvalue[3], Vector3 akEigenvector[3]) const |
| Eigensolver, matrix must be symmetric.
|
|
void | FromAngleAxis (const Vector3 &rkAxis, const Radian &fRadians) |
|
void | FromAxes (const Vector3 &xAxis, const Vector3 &yAxis, const Vector3 &zAxis) |
|
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) |
|
Vector3 | GetColumn (size_t iCol) const |
|
bool | hasScale () const |
| Determines if this matrix involves a scaling.
|
|
bool | Inverse (Matrix3 &rkInverse, Real fTolerance=1e-06) const |
|
Matrix3 | Inverse (Real fTolerance=1e-06) const |
|
bool | operator!= (const Matrix3 &rkMatrix) const |
| Tests 2 matrices for inequality.
|
|
Matrix3 | operator* (const Matrix3 &rkMatrix) const |
| Matrix concatenation using '*'.
|
|
Vector3 | operator* (const Vector3 &rkVector) const |
| Matrix * vector [3x3 * 3x1 = 3x1].
|
|
Matrix3 | operator* (Real fScalar) const |
| Matrix * scalar.
|
|
Matrix3 | operator+ (const Matrix3 &rkMatrix) const |
| Matrix addition.
|
|
Matrix3 | operator- () const |
|
Matrix3 | operator- (const Matrix3 &rkMatrix) const |
| Matrix subtraction.
|
|
Matrix3 & | operator= (const Matrix3 &rkMatrix) |
| Assignment and comparison.
|
|
bool | operator== (const Matrix3 &rkMatrix) const |
| Tests 2 matrices for equality.
|
|
Real * | operator[] (size_t iRow) |
|
const Real * | operator[] (size_t iRow) const |
| Member access, allows use of construct mat[r][c].
|
|
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)
|
|
void | SetColumn (size_t iCol, const Vector3 &vec) |
|
void | SingularValueComposition (const Matrix3 &rkL, const Vector3 &rkS, const Matrix3 &rkR) |
|
void | SingularValueDecomposition (Matrix3 &rkL, Vector3 &rkS, Matrix3 &rkR) const |
| Singular value decomposition.
|
|
Real | SpectralNorm () const |
|
void | swap (Matrix3 &other) |
| Exchange the contents of this matrix with another.
|
|
void | ToAngleAxis (Vector3 &rkAxis, Degree &rfAngle) const |
|
void | ToAngleAxis (Vector3 &rkAxis, Radian &rfAngle) const |
| Note: Matrix must be orthonormal.
|
|
bool | ToEulerAnglesXYZ (Radian &rfYAngle, Radian &rfPAngle, Radian &rfRAngle) const |
| The matrix must be orthonormal.
|
|
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 |
|
Matrix3 | Transpose () const |
|
A 3x3 matrix which can represent rotations around axes.
- Note
- All the code is adapted from the Wild Magic 0.2 Matrix library (http://www.geometrictools.com/).
- The coordinate system is assumed to be right-handed.