|
| SbMatrix () |
| Default constructor, initialized to identity.
|
|
| SbMatrix (float a11, float a12, float a13, float a14, float a21, float a22, float a23, float a24, float a31, float a32, float a33, float a34, float a41, float a42, float a43, float a44) |
| Constructor given all 16 elements in row-major order.
|
|
| SbMatrix (const SbMat &m) |
| Constructors.
|
|
void | setValue (const SbMat &m) |
| Sets value from 4x4 array of elements.
|
|
void | setValue (const float *data) |
| Sets value from a float array of 16 elements.
|
|
void | makeIdentity () |
| Sets matrix to be identity.
|
|
void | setRotate (const SbRotation &q) |
| Sets matrix to rotate by given rotation.
|
|
void | setScale (float s) |
| Sets matrix to scale by given uniform factor.
|
|
void | setScale (const SbVec3f &s) |
| Sets matrix to scale by given vector.
|
|
void | setTranslate (const SbVec3f &t) |
| Sets matrix to translate by given vector.
|
|
void | setTransform (const SbVec3f &translation, const SbRotation &rotation, const SbVec3f &scaleFactor, const SbRotation &scaleOrientation, const SbVec3f ¢er) |
| Composes the matrix based on a translation, rotation, scale, orientation for scale, and center.
|
|
void | setTransform (const SbVec3f &t, const SbRotation &r, const SbVec3f &s) |
| Overloaded methods as a kludge because the compiler won't let us have SbVec3f(0,0,0) as a default value:
|
|
void | setTransform (const SbVec3f &t, const SbRotation &r, const SbVec3f &s, const SbRotation &so) |
|
void | getTransform (SbVec3f &translation, SbRotation &rotation, SbVec3f &scaleFactor, SbRotation &scaleOrientation, const SbVec3f ¢er) const |
| Decomposes the matrix into a translation, rotation, scale, and scale orientation.
|
|
void | getTransform (SbVec3f &t, SbRotation &r, SbVec3f &s, SbRotation &so) const |
|
void | getValue (SbMat &m) const |
| The following methods return matrix values and other info:
|
|
const SbMat & | getValue () const |
|
float | 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).
|
|
float | det3 () const |
| Returns determinant of upper-left 3x3 submatrix.
|
|
float | det4 () const |
| Returns determinant of entire matrix.
|
|
bool | factor (SbMatrix &r, SbVec3f &s, SbMatrix &u, SbVec3f &t, SbMatrix &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.
|
|
SbMatrix | inverse () const |
| Returns inverse of matrix.
|
|
bool | LUDecomposition (int index[4], float &d) |
| Perform in-place LU decomposition of matrix.
|
|
void | LUBackSubstitution (int index[4], float b[4]) const |
| Perform back-substitution on LU-decomposed matrix.
|
|
SbMatrix | transpose () const |
| Returns transpose of matrix.
|
|
SbMatrix & | multRight (const SbMatrix &m) |
| Multiplies matrix by given matrix on right or left.
|
|
SbMatrix & | multLeft (const SbMatrix &m) |
| Multiplies matrix by given matrix on right or left.
|
|
SbVec3f | transformPoint (const SbVec3f &src) const |
| Multiplies given row vector by matrix, giving vector result. Use this method to transform points from object coordinates to world coordinates. (MEVIS)
|
|
SbVec4f | transformPoint (const SbVec4f &src) const |
| Multiplies given row vector by matrix, giving vector result. Takes homogenous coordinate and returns homogenous coordinate. (MEVIS)
|
|
SbVec3f | transformDirection (const SbVec3f &src) const |
| Multiplies given row vector by matrix, giving vector result.
|
|
SbLine | transformLine (const SbLine &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 SbVec3f &src, SbVec3f &dst) const |
| Multiplies matrix by given column vector, giving vector result.
|
|
void | multVecMatrix (const SbVec3f &src, SbVec3f &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 SbVec4f &src, SbVec4f &dst) const |
| Multiplies given row vector by matrix, giving vector result. Takes homogenous coordinate and returns homogenous coordinate.
|
|
void | multVecMatrix (const SbVec3f &src, SbVec4f &dst) const |
| Multiplies given row vector by matrix, giving vector result. Takes SbVec4(src,1.f) coordinate and returns homogenous coordinate.
|
|
void | multDirMatrix (const SbVec3f &src, SbVec3f &dst) const |
| Multiplies given row vector by matrix, giving vector result.
|
|
void | multLineMatrix (const SbLine &src, SbLine &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 float * () |
| Binary multiplication of matrices.
|
|
| operator SbMat & () |
| Cast: returns reference to 4x4 array.
|
|
float * | operator[] (int i) |
| Make it look like a usual matrix (so you can do m[3][2])
|
|
const float * | operator[] (int i) const |
|
SbMatrix & | operator= (const SbMat &m) |
| Sets value from 4x4 array of elements.
|
|
SbMatrix & | operator= (const SbMatrix &m) |
| Set the matrix from another SbMatrix.
|
|
SbMatrix & | operator= (const SbRotation &q) |
| Set the matrix from an SbRotation.
|
|
SbMatrix & | operator*= (const SbMatrix &m) |
| Performs right multiplication with another matrix.
|
|
bool | equals (const SbMatrix &m, float 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
Definition at line 823 of file SbLinear.h.