#include <UT_Matrix4.h>
Public Types | |
| enum | applyType { BEFORE = 1, EQUAL = 2, AFTER = 4, BEFORE_EQUAL = 4, AFTER_EQUAL = 6 } |
Public Member Functions | |
| UT_Matrix4T () | |
| Construct uninitialized matrix. | |
| UT_Matrix4T (fpreal64 val) | |
| Construct identity matrix, multipled by scalar. | |
| UT_Matrix4T (T val00, T val01, T val02, T val03, T val10, T val11, T val12, T val13, T val20, T val21, T val22, T val23, T val30, T val31, T val32, T val33) | |
| template<typename S > | |
| UT_Matrix4T (const UT_Matrix4T< S > &m) | |
| template<typename S > | |
| UT_Matrix4T< T > & | operator= (const UT_Matrix4T< S > &m) |
| template<typename S > | |
| UT_Matrix4T< T > & | operator= (const UT_SymMatrix4T< S > &m) |
| Conversion from a symmetric to a non symmetric matrix. | |
| UT_Matrix4T< T > | operator- () const |
| UT_Matrix4T< T > & | operator+= (const UT_Matrix4T< T > &m) |
| UT_Matrix4T< T > & | operator-= (const UT_Matrix4T< T > &m) |
| UT_Matrix4T< T > & | operator*= (const UT_Matrix4T< T > &m) |
| unsigned | operator== (const UT_Matrix4T< T > &m) const |
| unsigned | operator!= (const UT_Matrix4T< T > &m) const |
| UT_Matrix4T< T > & | operator= (fpreal64 v) |
| UT_Matrix4T< T > & | operator*= (T scalar) |
| UT_Matrix4T< T > & | operator/= (T scalar) |
| template<typename S > | |
| UT_Matrix4T< T > & | operator= (const UT_Vector4T< S > &vec) |
| template<typename S > | |
| UT_Matrix4T< T > & | operator+= (const UT_Vector4T< S > &vec) |
| template<typename S > | |
| UT_Matrix4T< T > & | operator-= (const UT_Vector4T< S > &vec) |
| void | leftMult (const UT_Matrix4T< T > &m) |
| void | preMultiply (const UT_Matrix4T< T > &m) |
| T | coFactor (int k, int l) const |
| T | determinant () const |
| T | determinant3 () const |
| Compute determinant of the upper-left 3x3 sub-matrix. | |
| T | trace () const |
| int | invertKramer (void) |
| int | invertKramer (UT_Matrix4T< T > &m) const |
| template<typename S > | |
| void | instanceT (const UT_Vector3T< S > &p, const UT_Vector3T< S > &v, T s, const UT_Vector3T< S > *s3, const UT_Vector3T< S > *up, const UT_QuaternionT< S > *q, const UT_Vector3T< S > *tr, const UT_QuaternionT< S > *orient) |
| void | instance (const UT_Vector3F &p, const UT_Vector3F &v, T s, const UT_Vector3F *s3, const UT_Vector3F *up, const UT_QuaternionF *q, const UT_Vector3F *tr, const UT_QuaternionF *orient) |
| void | instance (const UT_Vector3D &p, const UT_Vector3D &v, T s, const UT_Vector3D *s3, const UT_Vector3D *up, const UT_QuaternionD *q, const UT_Vector3D *tr, const UT_QuaternionD *orient) |
| void | transpose (void) |
| UT_Matrix4T< T > | transpose (void) const |
| unsigned | isEqual (const UT_Matrix4T< T > &m, T tolerance=UT_FTOLERANCE) const |
| template<typename S > | |
| void | rotate (UT_Vector3T< S > &axis, T theta, int norm=1) |
| template<typename S > | |
| UT_Matrix4T< T > | rotate (UT_Vector3T< S > &axis, T theta, int norm=1) const |
| void | rotate (UT_Axis3::axis a, T theta) |
| UT_Matrix4T< T > | rotate (UT_Axis3::axis a, T theta) const |
| template<typename S > | |
| void | prerotate (UT_Vector3T< S > &axis, T theta, int norm=1) |
| template<typename S > | |
| UT_Matrix4T< T > | prerotate (UT_Vector3T< S > &axis, T theta, int norm=1) const |
| void | prerotate (UT_Axis3::axis a, T theta) |
| UT_Matrix4T< T > | prerotate (UT_Axis3::axis a, T theta) const |
| void | rotate (T rx, T ry, T rz, const UT_XformOrder &ord) |
| UT_Matrix4T< T > | rotate (T rx, T ry, T rz, const UT_XformOrder &ord) const |
| void | prerotate (T rx, T ry, T rz, const UT_XformOrder &ord) |
| UT_Matrix4T< T > | prerotate (T rx, T ry, T rz, const UT_XformOrder &ord) const |
| void | scale (T sx, T sy, T sz, T sw=1.0f) |
| UT_Matrix4T< T > | scale (T sx, T sy, T sz, T sw=1.0f) const |
| void | prescale (T sx, T sy, T sz, T sw=1.0f) |
| UT_Matrix4T< T > | prescale (T sx, T sy, T sz, T sw=1.0f) const |
| void | shear (T s_xy, T s_xz, T s_yz) |
| void | translate (T dx, T dy, T dz=0.0f) |
| UT_Matrix4T< T > | translate (T dx, T dy, T dz=0.0f) const |
| void | pretranslate (T dx, T dy, T dz=0.0f) |
| UT_Matrix4T< T > | pretranslate (T dx, T dy, T dz=0.0f) const |
| template<typename S > | |
| void | changeSpace (UT_Vector3T< S > &iSrc, UT_Vector3T< S > &jSrc, UT_Vector3T< S > &iDest, UT_Vector3T< S > &jDest, int norm=1) |
| template<typename S > | |
| UT_Matrix4T< T > | changeSpace (UT_Vector3T< S > &iSrc, UT_Vector3T< S > &jSrc, UT_Vector3T< S > &iDest, UT_Vector3T< S > &jDest, int norm=1) const |
| void | xform (const UT_XformOrder &order, T tx=0.0f, T ty=0.0f, T tz=0.0f, T rx=0.0f, T ry=0.0f, T rz=0.0f, T sx=1.0f, T sy=1.0f, T sz=1.0f, T px=0.0f, T py=0.0f, T pz=0.0f, int reverse=0) |
| UT_Matrix4T< T > | xform (const UT_XformOrder &order, T tx=0.0f, T ty=0.0f, T tz=0.0f, T rx=0.0f, T ry=0.0f, T rz=0.0f, T sx=1.0f, T sy=1.0f, T sz=1.0f, T px=0.0f, T py=0.0f, T pz=0.0f, int reverse=0) const |
| void | xform (const UT_XformOrder &order, T tx, T ty, T tz, T rx, T ry, T rz, T sx, T sy, T sz, T s_xy, T s_xz, T s_yz, T px, T py, T pz, int reverse=0) |
| void | xform (const UT_XformOrder &order, applyType type, char limit, T tx, T ty, T tz, T rx, T ry, T rz, T sx, T sy, T sz, T px, T py, T pz) |
| void | rotate (const UT_XformOrder &order, applyType type, char limit, T rx, T ry, T rz) |
| template<typename S > | |
| void | getTranslates (UT_Vector3T< S > &translates) const |
| template<typename S > | |
| void | setTranslates (const UT_Vector3T< S > &translates) |
| template<typename S > | |
| int | explodeT (const UT_XformOrder &order, UT_Vector3T< S > &r, UT_Vector3T< S > &s, UT_Vector3T< S > &t, UT_Vector3T< S > *shears) const |
| int | explode (const UT_XformOrder &order, UT_Vector3F &r, UT_Vector3F &s, UT_Vector3F &t, UT_Vector3F *shears=0) const |
| int | explode (const UT_XformOrder &order, UT_Vector3D &r, UT_Vector3D &s, UT_Vector3D &t, UT_Vector3D *shears=0) const |
| template<typename S > | |
| int | explodeT (const UT_XformOrder &order, UT_Vector3T< S > &r, UT_Vector3T< S > &s, UT_Vector3T< S > &t, const UT_Vector3T< S > &p, UT_Vector3T< S > *shears) const |
| int | explode (const UT_XformOrder &order, UT_Vector3F &r, UT_Vector3F &s, UT_Vector3F &t, const UT_Vector3F &p, UT_Vector3F *shears=0) const |
| int | explode (const UT_XformOrder &order, UT_Vector3D &r, UT_Vector3D &s, UT_Vector3D &t, const UT_Vector3D &p, UT_Vector3D *shears=0) const |
| template<typename S > | |
| int | explode2D (const UT_XformOrder &order, T &r, UT_Vector2T< S > &s, UT_Vector2T< S > &t, T *shears=0) const |
| template<typename S > | |
| int | explode2D (const UT_XformOrder &order, T &r, UT_Vector2T< S > &s, UT_Vector2T< S > &t, const UT_Vector2T< S > &p, T *shears=0) const |
| template<typename S > | |
| void | extractRotate (UT_Matrix3T< S > &dst) const |
| template<typename S > | |
| void | stretch (UT_Vector3T< S > &v, T amount, int norm=1) |
| template<typename S > | |
| UT_Matrix4T< T > | stretch (UT_Vector3T< S > &v, T amount, int norm=1) const |
| T | dot (unsigned i, unsigned j) const |
| template<typename S > | |
| void | outerproductUpdate (T b, const UT_Vector4T< S > &v1, const UT_Vector4T< S > &v2) |
| void | identity () |
| Set the matrix to identity. | |
| void | zero () |
| Set the matrix to zero. | |
| int | isIdentity () const |
| unsigned | hash () const |
| Compute a hash. | |
| T | getEuclideanNorm () const |
| T | getEuclideanNorm2 () const |
| Euclidean norm squared. | |
| int | save (ostream &os, int binary) const |
| bool | load (UT_IStream &is) |
| void | outAsciiNoName (ostream &os) const |
| template<typename S > | |
| UT_Matrix4T (const S m[4][4]) | |
| Construct a deep copy of the input row-major data. | |
| UT_Matrix4T< T > & | operator= (const UT_Matrix3T< fpreal32 > &m) |
| UT_Matrix4T< T > & | operator= (const UT_Matrix3T< fpreal64 > &m) |
| int | invert (T tol=0.0F) |
| Invert this matrix and return 0 if OK, 1 if singular. | |
| int | invertDouble () |
| Invert this matrix and return 0 if OK, 1 if singular. | |
| int | invert (UT_Matrix4T< T > &m) const |
| int | invertDouble (UT_Matrix4T< T > &m) const |
| const T * | data (void) const |
| Return the raw matrix data. | |
| T * | data (void) |
| Return the raw matrix data. | |
| T & | operator() (unsigned row, unsigned col) |
| Return a matrix entry. No bounds checking on subscripts. | |
| T | operator() (unsigned row, unsigned col) const |
| Return a matrix entry. No bounds checking on subscripts. | |
| T * | operator() (unsigned row) |
| Return a matrix row. No bounds checking on subscript. | |
| const T * | operator() (unsigned row) const |
| Return a matrix row. No bounds checking on subscript. | |
| UT_Vector4T< T > | operator[] (unsigned row) const |
| Return a matrix row. No bounds checking on subscript. | |
| bool | save (UT_JSONWriter &w) const |
| bool | save (UT_JSONValue &v) const |
| bool | load (UT_JSONParser &p) |
Static Public Member Functions | |
| template<typename S > | |
| static UT_Matrix4T< T > | rotationMat (UT_Vector3T< S > &axis, T theta, int norm=1) |
| static UT_Matrix4T< T > | rotationMat (UT_Axis3::axis a, T theta) |
| static const UT_Matrix4T< T > & | getIdentityMatrix () |
| static int | entries () |
| Returns the vector size. | |
Public Attributes | |
| union { | |
| T matx [4][4] | |
| T myFloats [16] | |
| }; | |
Friends | |
| ostream & | operator<< (ostream &os, const UT_Matrix4T< T > &v) |
Most of Houdini operates with row vectors that are left-multiplied with matrices. e.g., z = v * M As a result, translation data is in row 3 of the matrix, rather than column 3.
This convention, combined with row-major order, is directly compatible with OpenGL matrix requirements.
Definition at line 74 of file UT_Matrix4.h.
| enum UT_Matrix4T::applyType |
Definition at line 579 of file UT_Matrix4.h.
| UT_Matrix4T< T >::UT_Matrix4T | ( | ) | [inline] |
| UT_Matrix4T< T >::UT_Matrix4T | ( | fpreal64 | val | ) | [inline, explicit] |
| UT_Matrix4T< T >::UT_Matrix4T | ( | const S | m[4][4] | ) | [inline, explicit] |
| UT_Matrix4T< T >::UT_Matrix4T | ( | T | val00, | |
| T | val01, | |||
| T | val02, | |||
| T | val03, | |||
| T | val10, | |||
| T | val11, | |||
| T | val12, | |||
| T | val13, | |||
| T | val20, | |||
| T | val21, | |||
| T | val22, | |||
| T | val23, | |||
| T | val30, | |||
| T | val31, | |||
| T | val32, | |||
| T | val33 | |||
| ) | [inline] |
This constructor is for convenience; in many situations, it's less efficient than the array-based constructors.
Definition at line 110 of file UT_Matrix4.h.
| UT_Matrix4T< T >::UT_Matrix4T | ( | const UT_Matrix4T< S > & | m | ) | [inline, explicit] |
Definition at line 128 of file UT_Matrix4.h.
| UT_Matrix4T<T> UT_Matrix4T< T >::changeSpace | ( | UT_Vector3T< S > & | iSrc, | |
| UT_Vector3T< S > & | jSrc, | |||
| UT_Vector3T< S > & | iDest, | |||
| UT_Vector3T< S > & | jDest, | |||
| int | norm = 1 | |||
| ) | const [inline] |
| void UT_Matrix4T< T >::changeSpace | ( | UT_Vector3T< S > & | iSrc, | |
| UT_Vector3T< S > & | jSrc, | |||
| UT_Vector3T< S > & | iDest, | |||
| UT_Vector3T< S > & | jDest, | |||
| int | norm = 1 | |||
| ) | [inline] |
| T UT_Matrix4T< T >::coFactor | ( | int | k, | |
| int | l | |||
| ) | const [inline] |
Definition at line 282 of file UT_Matrix4.h.
| T* UT_Matrix4T< T >::data | ( | void | ) | [inline] |
| const T* UT_Matrix4T< T >::data | ( | void | ) | const [inline] |
| T UT_Matrix4T< T >::determinant | ( | ) | const [inline] |
Definition at line 307 of file UT_Matrix4.h.
| T UT_Matrix4T< T >::determinant3 | ( | ) | const [inline] |
| T UT_Matrix4T< T >::dot | ( | unsigned | i, | |
| unsigned | j | |||
| ) | const [inline] |
Definition at line 658 of file UT_Matrix4.h.
| static int UT_Matrix4T< T >::entries | ( | void | ) | [inline, static] |
| int UT_Matrix4T< T >::explode | ( | const UT_XformOrder & | order, | |
| UT_Vector3D & | r, | |||
| UT_Vector3D & | s, | |||
| UT_Vector3D & | t, | |||
| const UT_Vector3D & | p, | |||
| UT_Vector3D * | shears = 0 | |||
| ) | const [inline] |
Definition at line 627 of file UT_Matrix4.h.
| int UT_Matrix4T< T >::explode | ( | const UT_XformOrder & | order, | |
| UT_Vector3F & | r, | |||
| UT_Vector3F & | s, | |||
| UT_Vector3F & | t, | |||
| const UT_Vector3F & | p, | |||
| UT_Vector3F * | shears = 0 | |||
| ) | const [inline] |
Definition at line 622 of file UT_Matrix4.h.
| int UT_Matrix4T< T >::explode | ( | const UT_XformOrder & | order, | |
| UT_Vector3D & | r, | |||
| UT_Vector3D & | s, | |||
| UT_Vector3D & | t, | |||
| UT_Vector3D * | shears = 0 | |||
| ) | const [inline] |
Definition at line 611 of file UT_Matrix4.h.
| int UT_Matrix4T< T >::explode | ( | const UT_XformOrder & | order, | |
| UT_Vector3F & | r, | |||
| UT_Vector3F & | s, | |||
| UT_Vector3F & | t, | |||
| UT_Vector3F * | shears = 0 | |||
| ) | const [inline] |
Definition at line 607 of file UT_Matrix4.h.
| int UT_Matrix4T< T >::explode2D | ( | const UT_XformOrder & | order, | |
| T & | r, | |||
| UT_Vector2T< S > & | s, | |||
| UT_Vector2T< S > & | t, | |||
| const UT_Vector2T< S > & | p, | |||
| T * | shears = 0 | |||
| ) | const [inline] |
| int UT_Matrix4T< T >::explode2D | ( | const UT_XformOrder & | order, | |
| T & | r, | |||
| UT_Vector2T< S > & | s, | |||
| UT_Vector2T< S > & | t, | |||
| T * | shears = 0 | |||
| ) | const [inline] |
| int UT_Matrix4T< T >::explodeT | ( | const UT_XformOrder & | order, | |
| UT_Vector3T< S > & | r, | |||
| UT_Vector3T< S > & | s, | |||
| UT_Vector3T< S > & | t, | |||
| const UT_Vector3T< S > & | p, | |||
| UT_Vector3T< S > * | shears | |||
| ) | const [inline] |
| int UT_Matrix4T< T >::explodeT | ( | const UT_XformOrder & | order, | |
| UT_Vector3T< S > & | r, | |||
| UT_Vector3T< S > & | s, | |||
| UT_Vector3T< S > & | t, | |||
| UT_Vector3T< S > * | shears | |||
| ) | const [inline] |
| void UT_Matrix4T< T >::extractRotate | ( | UT_Matrix3T< S > & | dst | ) | const [inline] |
| T UT_Matrix4T< T >::getEuclideanNorm | ( | ) | const [inline] |
Euclidean or Frobenius norm of a matrix. Does sqrt(sum(a_ij ^2))
Definition at line 732 of file UT_Matrix4.h.
| T UT_Matrix4T< T >::getEuclideanNorm2 | ( | ) | const |
Euclidean norm squared.
| static const UT_Matrix4T<T>& UT_Matrix4T< T >::getIdentityMatrix | ( | ) | [static] |
| void UT_Matrix4T< T >::getTranslates | ( | UT_Vector3T< S > & | translates | ) | const [inline] |
Definition at line 835 of file UT_Matrix4.h.
| unsigned UT_Matrix4T< T >::hash | ( | ) | const [inline] |
| void UT_Matrix4T< T >::identity | ( | ) | [inline] |
| void UT_Matrix4T< T >::instance | ( | const UT_Vector3D & | p, | |
| const UT_Vector3D & | v, | |||
| T | s, | |||
| const UT_Vector3D * | s3, | |||
| const UT_Vector3D * | up, | |||
| const UT_QuaternionD * | q, | |||
| const UT_Vector3D * | tr, | |||
| const UT_QuaternionD * | orient | |||
| ) | [inline] |
Definition at line 368 of file UT_Matrix4.h.
| void UT_Matrix4T< T >::instance | ( | const UT_Vector3F & | p, | |
| const UT_Vector3F & | v, | |||
| T | s, | |||
| const UT_Vector3F * | s3, | |||
| const UT_Vector3F * | up, | |||
| const UT_QuaternionF * | q, | |||
| const UT_Vector3F * | tr, | |||
| const UT_QuaternionF * | orient | |||
| ) | [inline] |
Definition at line 363 of file UT_Matrix4.h.
| void UT_Matrix4T< T >::instanceT | ( | const UT_Vector3T< S > & | p, | |
| const UT_Vector3T< S > & | v, | |||
| T | s, | |||
| const UT_Vector3T< S > * | s3, | |||
| const UT_Vector3T< S > * | up, | |||
| const UT_QuaternionT< S > * | q, | |||
| const UT_Vector3T< S > * | tr, | |||
| const UT_QuaternionT< S > * | orient | |||
| ) | [inline] |
| int UT_Matrix4T< T >::invert | ( | UT_Matrix4T< T > & | m | ) | const |
Invert the matrix and return 0 if OK, 1 if singular. Puts the inverted matrix in m, and leaves this matrix unchanged.
| int UT_Matrix4T< T >::invert | ( | T | tol = 0.0F |
) |
Invert this matrix and return 0 if OK, 1 if singular.
| int UT_Matrix4T< T >::invertDouble | ( | UT_Matrix4T< T > & | m | ) | const |
Invert the matrix and return 0 if OK, 1 if singular. Puts the inverted matrix in m, and leaves this matrix unchanged.
| int UT_Matrix4T< T >::invertDouble | ( | ) |
Invert this matrix and return 0 if OK, 1 if singular.
| int UT_Matrix4T< T >::invertKramer | ( | UT_Matrix4T< T > & | m | ) | const |
| int UT_Matrix4T< T >::invertKramer | ( | void | ) |
| unsigned UT_Matrix4T< T >::isEqual | ( | const UT_Matrix4T< T > & | m, | |
| T | tolerance = UT_FTOLERANCE | |||
| ) | const [inline] |
Definition at line 388 of file UT_Matrix4.h.
| int UT_Matrix4T< T >::isIdentity | ( | ) | const [inline] |
Definition at line 675 of file UT_Matrix4.h.
| void UT_Matrix4T< T >::leftMult | ( | const UT_Matrix4T< T > & | m | ) |
| bool UT_Matrix4T< T >::load | ( | UT_JSONParser & | p | ) |
Methods to serialize to a JSON stream. The matrix is stored as an array of 16 reals.
| bool UT_Matrix4T< T >::load | ( | UT_IStream & | is | ) |
| unsigned UT_Matrix4T< T >::operator!= | ( | const UT_Matrix4T< T > & | m | ) | const [inline] |
Definition at line 231 of file UT_Matrix4.h.
| const T* UT_Matrix4T< T >::operator() | ( | unsigned | row | ) | const [inline] |
| T* UT_Matrix4T< T >::operator() | ( | unsigned | row | ) | [inline] |
| T UT_Matrix4T< T >::operator() | ( | unsigned | row, | |
| unsigned | col | |||
| ) | const [inline] |
Return a matrix entry. No bounds checking on subscripts.
Definition at line 707 of file UT_Matrix4.h.
| T& UT_Matrix4T< T >::operator() | ( | unsigned | row, | |
| unsigned | col | |||
| ) | [inline] |
Return a matrix entry. No bounds checking on subscripts.
Definition at line 702 of file UT_Matrix4.h.
| UT_Matrix4T<T>& UT_Matrix4T< T >::operator*= | ( | T | scalar | ) | [inline] |
Definition at line 245 of file UT_Matrix4.h.
| UT_Matrix4T<T>& UT_Matrix4T< T >::operator*= | ( | const UT_Matrix4T< T > & | m | ) |
| UT_Matrix4T< T > & UT_Matrix4T< T >::operator+= | ( | const UT_Vector4T< S > & | vec | ) | [inline] |
Definition at line 807 of file UT_Matrix4.h.
| UT_Matrix4T<T>& UT_Matrix4T< T >::operator+= | ( | const UT_Matrix4T< T > & | m | ) | [inline] |
Definition at line 181 of file UT_Matrix4.h.
| UT_Matrix4T<T> UT_Matrix4T< T >::operator- | ( | ) | const [inline] |
Definition at line 172 of file UT_Matrix4.h.
| UT_Matrix4T< T > & UT_Matrix4T< T >::operator-= | ( | const UT_Vector4T< S > & | vec | ) | [inline] |
Definition at line 821 of file UT_Matrix4.h.
| UT_Matrix4T<T>& UT_Matrix4T< T >::operator-= | ( | const UT_Matrix4T< T > & | m | ) | [inline] |
Definition at line 196 of file UT_Matrix4.h.
| UT_Matrix4T<T>& UT_Matrix4T< T >::operator/= | ( | T | scalar | ) | [inline] |
Definition at line 260 of file UT_Matrix4.h.
| UT_Matrix4T< T > & UT_Matrix4T< T >::operator= | ( | const UT_Vector4T< S > & | vec | ) | [inline] |
Definition at line 795 of file UT_Matrix4.h.
| UT_Matrix4T<T>& UT_Matrix4T< T >::operator= | ( | fpreal64 | v | ) | [inline] |
Definition at line 237 of file UT_Matrix4.h.
| UT_Matrix4T<T>& UT_Matrix4T< T >::operator= | ( | const UT_SymMatrix4T< S > & | m | ) | [inline] |
| UT_Matrix4T<T>& UT_Matrix4T< T >::operator= | ( | const UT_Matrix4T< S > & | m | ) | [inline] |
Definition at line 146 of file UT_Matrix4.h.
| UT_Matrix4T<T>& UT_Matrix4T< T >::operator= | ( | const UT_Matrix3T< fpreal64 > & | m | ) |
Conversion operator that expands a 3x3 into a 4x4 matrix by adding a row and column of zeroes, except the diagonal element which is 1.
| UT_Matrix4T<T>& UT_Matrix4T< T >::operator= | ( | const UT_Matrix3T< fpreal32 > & | m | ) |
Conversion operator that expands a 3x3 into a 4x4 matrix by adding a row and column of zeroes, except the diagonal element which is 1.
| unsigned UT_Matrix4T< T >::operator== | ( | const UT_Matrix4T< T > & | m | ) | const [inline] |
Definition at line 215 of file UT_Matrix4.h.
| UT_Vector4T< T > UT_Matrix4T< T >::operator[] | ( | unsigned | row | ) | const [inline] |
| void UT_Matrix4T< T >::outAsciiNoName | ( | ostream & | os | ) | const |
| void UT_Matrix4T< T >::outerproductUpdate | ( | T | b, | |
| const UT_Vector4T< S > & | v1, | |||
| const UT_Vector4T< S > & | v2 | |||
| ) | [inline] |
| void UT_Matrix4T< T >::preMultiply | ( | const UT_Matrix4T< T > & | m | ) | [inline] |
Definition at line 277 of file UT_Matrix4.h.
| UT_Matrix4T<T> UT_Matrix4T< T >::prerotate | ( | T | rx, | |
| T | ry, | |||
| T | rz, | |||
| const UT_XformOrder & | ord | |||
| ) | const |
| void UT_Matrix4T< T >::prerotate | ( | T | rx, | |
| T | ry, | |||
| T | rz, | |||
| const UT_XformOrder & | ord | |||
| ) |
| UT_Matrix4T<T> UT_Matrix4T< T >::prerotate | ( | UT_Axis3::axis | a, | |
| T | theta | |||
| ) | const |
| void UT_Matrix4T< T >::prerotate | ( | UT_Axis3::axis | a, | |
| T | theta | |||
| ) |
| UT_Matrix4T<T> UT_Matrix4T< T >::prerotate | ( | UT_Vector3T< S > & | axis, | |
| T | theta, | |||
| int | norm = 1 | |||
| ) | const [inline] |
| void UT_Matrix4T< T >::prerotate | ( | UT_Vector3T< S > & | axis, | |
| T | theta, | |||
| int | norm = 1 | |||
| ) | [inline] |
| UT_Matrix4T<T> UT_Matrix4T< T >::prescale | ( | T | sx, | |
| T | sy, | |||
| T | sz, | |||
| T | sw = 1.0f | |||
| ) | const |
| void UT_Matrix4T< T >::prescale | ( | T | sx, | |
| T | sy, | |||
| T | sz, | |||
| T | sw = 1.0f | |||
| ) | [inline] |
Definition at line 466 of file UT_Matrix4.h.
| UT_Matrix4T<T> UT_Matrix4T< T >::pretranslate | ( | T | dx, | |
| T | dy, | |||
| T | dz = 0.0f | |||
| ) | const |
| void UT_Matrix4T< T >::pretranslate | ( | T | dx, | |
| T | dy, | |||
| T | dz = 0.0f | |||
| ) | [inline] |
Definition at line 514 of file UT_Matrix4.h.
| void UT_Matrix4T< T >::rotate | ( | const UT_XformOrder & | order, | |
| applyType | type, | |||
| char | limit, | |||
| T | rx, | |||
| T | ry, | |||
| T | rz | |||
| ) |
| UT_Matrix4T<T> UT_Matrix4T< T >::rotate | ( | T | rx, | |
| T | ry, | |||
| T | rz, | |||
| const UT_XformOrder & | ord | |||
| ) | const |
| void UT_Matrix4T< T >::rotate | ( | T | rx, | |
| T | ry, | |||
| T | rz, | |||
| const UT_XformOrder & | ord | |||
| ) |
| UT_Matrix4T<T> UT_Matrix4T< T >::rotate | ( | UT_Axis3::axis | a, | |
| T | theta | |||
| ) | const |
| void UT_Matrix4T< T >::rotate | ( | UT_Axis3::axis | a, | |
| T | theta | |||
| ) |
| UT_Matrix4T<T> UT_Matrix4T< T >::rotate | ( | UT_Vector3T< S > & | axis, | |
| T | theta, | |||
| int | norm = 1 | |||
| ) | const [inline] |
| void UT_Matrix4T< T >::rotate | ( | UT_Vector3T< S > & | axis, | |
| T | theta, | |||
| int | norm = 1 | |||
| ) | [inline] |
| static UT_Matrix4T<T> UT_Matrix4T< T >::rotationMat | ( | UT_Axis3::axis | a, | |
| T | theta | |||
| ) | [static] |
| static UT_Matrix4T<T> UT_Matrix4T< T >::rotationMat | ( | UT_Vector3T< S > & | axis, | |
| T | theta, | |||
| int | norm = 1 | |||
| ) | [inline, static] |
| bool UT_Matrix4T< T >::save | ( | UT_JSONValue & | v | ) | const |
Methods to serialize to a JSON stream. The matrix is stored as an array of 16 reals.
| bool UT_Matrix4T< T >::save | ( | UT_JSONWriter & | w | ) | const |
Methods to serialize to a JSON stream. The matrix is stored as an array of 16 reals.
| int UT_Matrix4T< T >::save | ( | ostream & | os, | |
| int | binary | |||
| ) | const |
| UT_Matrix4T<T> UT_Matrix4T< T >::scale | ( | T | sx, | |
| T | sy, | |||
| T | sz, | |||
| T | sw = 1.0f | |||
| ) | const |
| void UT_Matrix4T< T >::scale | ( | T | sx, | |
| T | sy, | |||
| T | sz, | |||
| T | sw = 1.0f | |||
| ) | [inline] |
Definition at line 449 of file UT_Matrix4.h.
| void UT_Matrix4T< T >::setTranslates | ( | const UT_Vector3T< S > & | translates | ) | [inline] |
Definition at line 845 of file UT_Matrix4.h.
| void UT_Matrix4T< T >::shear | ( | T | s_xy, | |
| T | s_xz, | |||
| T | s_yz | |||
| ) | [inline] |
Definition at line 483 of file UT_Matrix4.h.
| UT_Matrix4T<T> UT_Matrix4T< T >::stretch | ( | UT_Vector3T< S > & | v, | |
| T | amount, | |||
| int | norm = 1 | |||
| ) | const [inline] |
| void UT_Matrix4T< T >::stretch | ( | UT_Vector3T< S > & | v, | |
| T | amount, | |||
| int | norm = 1 | |||
| ) | [inline] |
| T UT_Matrix4T< T >::trace | ( | ) | const [inline] |
Definition at line 325 of file UT_Matrix4.h.
| UT_Matrix4T<T> UT_Matrix4T< T >::translate | ( | T | dx, | |
| T | dy, | |||
| T | dz = 0.0f | |||
| ) | const |
| void UT_Matrix4T< T >::translate | ( | T | dx, | |
| T | dy, | |||
| T | dz = 0.0f | |||
| ) | [inline] |
Definition at line 499 of file UT_Matrix4.h.
| UT_Matrix4T<T> UT_Matrix4T< T >::transpose | ( | void | ) | const |
| void UT_Matrix4T< T >::transpose | ( | void | ) | [inline] |
Definition at line 375 of file UT_Matrix4.h.
| void UT_Matrix4T< T >::xform | ( | const UT_XformOrder & | order, | |
| applyType | type, | |||
| char | limit, | |||
| T | tx, | |||
| T | ty, | |||
| T | tz, | |||
| T | rx, | |||
| T | ry, | |||
| T | rz, | |||
| T | sx, | |||
| T | sy, | |||
| T | sz, | |||
| T | px, | |||
| T | py, | |||
| T | pz | |||
| ) |
| void UT_Matrix4T< T >::xform | ( | const UT_XformOrder & | order, | |
| T | tx, | |||
| T | ty, | |||
| T | tz, | |||
| T | rx, | |||
| T | ry, | |||
| T | rz, | |||
| T | sx, | |||
| T | sy, | |||
| T | sz, | |||
| T | s_xy, | |||
| T | s_xz, | |||
| T | s_yz, | |||
| T | px, | |||
| T | py, | |||
| T | pz, | |||
| int | reverse = 0 | |||
| ) |
| UT_Matrix4T<T> UT_Matrix4T< T >::xform | ( | const UT_XformOrder & | order, | |
| T | tx = 0.0f, |
|||
| T | ty = 0.0f, |
|||
| T | tz = 0.0f, |
|||
| T | rx = 0.0f, |
|||
| T | ry = 0.0f, |
|||
| T | rz = 0.0f, |
|||
| T | sx = 1.0f, |
|||
| T | sy = 1.0f, |
|||
| T | sz = 1.0f, |
|||
| T | px = 0.0f, |
|||
| T | py = 0.0f, |
|||
| T | pz = 0.0f, |
|||
| int | reverse = 0 | |||
| ) | const |
| void UT_Matrix4T< T >::xform | ( | const UT_XformOrder & | order, | |
| T | tx = 0.0f, |
|||
| T | ty = 0.0f, |
|||
| T | tz = 0.0f, |
|||
| T | rx = 0.0f, |
|||
| T | ry = 0.0f, |
|||
| T | rz = 0.0f, |
|||
| T | sx = 1.0f, |
|||
| T | sy = 1.0f, |
|||
| T | sz = 1.0f, |
|||
| T | px = 0.0f, |
|||
| T | py = 0.0f, |
|||
| T | pz = 0.0f, |
|||
| int | reverse = 0 | |||
| ) |
| void UT_Matrix4T< T >::zero | ( | ) | [inline] |
| ostream& operator<< | ( | ostream & | os, | |
| const UT_Matrix4T< T > & | v | |||
| ) | [friend] |
Definition at line 755 of file UT_Matrix4.h.
| union { ... } |
| T UT_Matrix4T< T >::matx[4][4] |
Definition at line 768 of file UT_Matrix4.h.
| T UT_Matrix4T< T >::myFloats[16] |
Definition at line 769 of file UT_Matrix4.h.
1.5.9