|
| SbMatrixd () |
| Default constructor, initialized to identity.
|
|
| SbMatrixd (double a11, double a12, double a13, double a14, double a21, double a22, double a23, double a24, double a31, double a32, double a33, double a34, double a41, double a42, double a43, double a44) |
| Constructor given all 16 elements in row-major order.
|
|
| SbMatrixd (const SbMatd &m) |
| Constructors.
|
|
void | setValue (const SbMatd &m) |
| Sets value from 4x4 array of elements.
|
|
void | setValue (const double *data) |
| Sets value from a double array of 16 elements.
|
|
void | makeIdentity () |
| Sets matrix to be identity.
|
|
void | setRotate (const SbRotationd &q) |
| Sets matrix to rotate by given rotation.
|
|
void | setScale (double s) |
| Sets matrix to scale by given uniform factor.
|
|
void | setScale (const SbVec3d &s) |
| Sets matrix to scale by given vector.
|
|
void | setTranslate (const SbVec3d &t) |
| Sets matrix to translate by given vector.
|
|
void | setTransform (const SbVec3d &translation, const SbRotationd &rotation, const SbVec3d &scaleFactor, const SbRotationd &scaleOrientation, const SbVec3d ¢er) |
| Composes the matrix based on a translation, rotation, scale, orientation for scale, and center.
|
|
void | setTransform (const SbVec3d &t, const SbRotationd &r, const SbVec3d &s) |
| Overloaded methods as a kludge because the compiler won't let us have SbVec3d(0,0,0) as a default value:
|
|
void | setTransform (const SbVec3d &t, const SbRotationd &r, const SbVec3d &s, const SbRotationd &so) |
|
void | getTransform (SbVec3d &translation, SbRotationd &rotation, SbVec3d &scaleFactor, SbRotationd &scaleOrientation, const SbVec3d ¢er) const |
| Decomposes the matrix into a translation, rotation, scale, and scale orientation.
|
|
void | getTransform (SbVec3d &t, SbRotationd &r, SbVec3d &s, SbRotationd &so) const |
|
void | getValue (SbMatd &m) const |
| The following methods return matrix values and other info:
|
|
const SbMatd & | getValue () const |
|
double | det3 (int r1, int r2, int r3, int c1, int c2, int c3) const |
| Returns determinant of 3x3 submatrix composed of given row and column indices (0-3 for each).
|
|
double | det3 () const |
| Returns determinant of upper-left 3x3 submatrix.
|
|
double | det4 () const |
| Returns determinant of entire matrix.
|
|
bool | factor (SbMatrixd &r, SbVec3d &s, SbMatrixd &u, SbVec3d &t, SbMatrixd &proj) const |
| Factors a matrix m into 5 pieces: m = r s r^ u t, where r^ means transpose of r, and r and u are rotations, s is a scale, and t is a translation.
|
|
SbMatrixd | inverse () const |
| Returns inverse of matrix.
|
|
bool | LUDecomposition (int index[4], double &d) |
| Perform in-place LU decomposition of matrix.
|
|
void | LUBackSubstitution (int index[4], double b[4]) const |
| Perform back-substitution on LU-decomposed matrix.
|
|
SbMatrixd | transpose () const |
| Returns transpose of matrix.
|
|
SbMatrixd & | multRight (const SbMatrixd &m) |
| Multiplies matrix by given matrix on right or left.
|
|
SbMatrixd & | multLeft (const SbMatrixd &m) |
| Multiplies matrix by given matrix on right or left.
|
|
SbVec3d | transformPoint (const SbVec3d &src) const |
| Multiplies given row vector by matrix, giving vector result. Use this method to transform points from object coordinates to world coordinates. (MEVIS)
|
|
SbVec4d | transformPoint (const SbVec4d &src) const |
| Multiplies given row vector by matrix, giving vector result. Takes homogenous coordinate and returns homogenous coordinate. (MEVIS)
|
|
SbVec3d | transformDirection (const SbVec3d &src) const |
| Multiplies given row vector by matrix, giving vector result.
|
|
SbLined | transformLine (const SbLined &src) const |
| Multiplies the given line's origin by the matrix, and the line's direction by the rotation portion of the matrix.
|
|
void | multMatrixVec (const SbVec3d &src, SbVec3d &dst) const |
| Multiplies matrix by given column vector, giving vector result.
|
|
void | multVecMatrix (const SbVec3d &src, SbVec3d &dst) const |
| Multiplies given row vector by matrix, giving vector result. Use this method to transform points from object coordinates to world coordinates.
|
|
void | multVecMatrix (const SbVec4d &src, SbVec4d &dst) const |
| Multiplies given row vector by matrix, giving vector result. Takes homogenous coordinate and returns homogenous coordinate.
|
|
void | multVecMatrix (const SbVec3d &src, SbVec4d &dst) const |
| Multiplies given row vector by matrix, giving vector result. Takes SbVec4(src,1.) coordinate and returns homogenous coordinate.
|
|
void | multDirMatrix (const SbVec3d &src, SbVec3d &dst) const |
| Multiplies given row vector by matrix, giving vector result.
|
|
void | multLineMatrix (const SbLined &src, SbLined &dst) const |
| Multiplies the given line's origin by the matrix, and the line's direction by the rotation portion of the matrix.
|
|
void | print (FILE *fp) const |
| Prints a formatted version of the matrix to the given file pointer.
|
|
| operator double * () |
| Binary multiplication of matrices.
|
|
| operator SbMatd & () |
| Cast: returns reference to 4x4 array.
|
|
double * | operator[] (int i) |
| Make it look like a usual matrix (so you can do m[3][2])
|
|
const double * | operator[] (int i) const |
|
SbMatrixd & | operator= (const SbMatd &m) |
| Sets value from 4x4 array of elements.
|
|
SbMatrixd & | operator= (const SbMatrixd &m) |
| Set the matrix from another SbMatrixd.
|
|
SbMatrixd & | operator= (const SbRotationd &q) |
| Set the matrix from an SbRotationd.
|
|
SbMatrixd & | operator*= (const SbMatrixd &m) |
| Performs right multiplication with another matrix.
|
|
bool | equals (const SbMatrixd &m, double tolerance) const |
| Equality comparison within given tolerance, for each component.
|
|
4x4 matrix class/datatype used by many Inventor node and action classes. The matrices are stored in row-major order. {}
- See Also
- SbVec3f, SbRotation, SbMatrix, SbVec3d, SbRotationd
Definition at line 616 of file SbLineard.h.