|
AGX Dynamics 2.41.2.0
|
Matrix class for rigid transformations (translation, rotation). More...
#include <AffineMatrix4x4.h>
Inheritance diagram for agx::AffineMatrix4x4T< T >:Public Member Functions | |
| AffineMatrix4x4T ()=default | |
| Creates a new matrix, initialized to be an identity matrix. | |
| AffineMatrix4x4T (const AffineMatrix4x4T &mat)=default | |
| template<typename T2 , std::enable_if_t< std::is_same< T, T2 >::value==0, bool > = false> | |
| AffineMatrix4x4T (const AffineMatrix4x4T< T2 > &mat) | |
| Copy constructor. | |
| AffineMatrix4x4T (const EulerAngles &rotation, const Vec3T< T > &translation=Vec3T< T >()) | |
| Create a matrix from Euler angles. | |
| AffineMatrix4x4T (const OrthoMatrix3x3 &rotation, const Vec3T< T > &translation=Vec3T< T >()) | |
| Create a matrix from a 3x3 rotation matrix. | |
| AffineMatrix4x4T (const QuatT< T > &rotation, const Vec3T< T > &translation=Vec3T< T >()) | |
| Create a matrix from a quaternion. | |
| AffineMatrix4x4T (T a00, T a01, T a02, T a03, T a10, T a11, T a12, T a13, T a20, T a21, T a22, T a23, T a30, T a31, T a32, T a33) | |
| Create a matrix from 16 T scalars. | |
| AffineMatrix4x4T (T const *const ptr) | |
| Create a matrix from a vector of 16 reals. | |
| ~AffineMatrix4x4T ()=default | |
| Destructor. | |
| Real | at (size_t i, size_t j) const |
| Vec3T< T > | getInvTranslate () const |
| AffineMatrix4x4T< T > | inverse () const |
| Quick inverse, transpose rotation part, and change sign of translation part. | |
| void | mult (const AffineMatrix4x4T< T > &, const AffineMatrix4x4T< T > &) |
| void | multSSE (const AffineMatrix4x4T< Real32 > &lhs, const AffineMatrix4x4T< Real32 > &rhs) |
| void | multSSE (const AffineMatrix4x4T< Real64 > &lhs, const AffineMatrix4x4T< Real64 > &rhs) |
| void | multSSE (const AffineMatrix4x4T< T > &lhs, const AffineMatrix4x4T< T > &rhs) |
| bool | operator!= (const AffineMatrix4x4T< T > &m) const |
| AffineMatrix4x4T< T > | operator* (const AffineMatrix4x4T< T > &m) const |
| Matrix4x4T< T > | operator* (const Matrix4x4T< T > &m) const |
| Vec3T< T > | operator* (const Vec3T< T > &v) const |
| Vec4T< T > | operator* (const Vec4T< T > &v) const |
| void | operator*= (const AffineMatrix4x4T< T > &other) |
| AffineMatrix4x4T< T > & | operator= (const AffineMatrix4x4T< T > &rhs)=default |
| bool | operator== (const AffineMatrix4x4T< T > &m) const |
| void | postMult (const AffineMatrix4x4T< T > &) |
| AffineMatrix4x4T< T > & | postMultTranslate (const Vec3T< T > &v) |
| void | preMult (const AffineMatrix4x4T< T > &) |
| AffineMatrix4x4T< T > & | preMultTranslate (const Vec3T< T > &v) |
| AffineMatrix4x4T< T > & | set (const EulerAngles &euler) |
| Set the rotational part of the matrix using the specified euler angles and the translational part to 0,0,0. | |
| AffineMatrix4x4T< T > & | set (const OrthoMatrix3x3 &m3) |
| Set the rotational part of the matrix using the specified rotation matrix and the translational part to 0,0,0. | |
| AffineMatrix4x4T< T > & | set (const QuatT< T > &q) |
| Set the rotational part of the matrix using the specified quaternion and the translational part to 0,0,0. | |
| void | set (Real val, size_t i, size_t j) |
| Set the value of element i,j. | |
| AffineMatrix4x4T< T > & | set (T a00, T a01, T a02, T a03, T a10, T a11, T a12, T a13, T a20, T a21, T a22, T a23, T a30, T a31, T a32, T a33) |
| Set the entire matrix using values from the 16 elements using the following order: | |
| AffineMatrix4x4T< T > & | set (T const *const ptr) |
| Set the entire matrix using values from the array with 16 elements using the following order: | |
| AffineMatrix4x4T< T > & | setIdentity () |
| Set the value of the matrix to the identity matrix. | |
| AffineMatrix4x4T< T > & | setRotate (const EulerAngles &euler) |
| Set the rotational part of the matrix using the specified euler angles leaving the translational part untouched. | |
| AffineMatrix4x4T< T > & | setRotate (const OrthoMatrix3x3 &m3) |
| Set the rotational part of the matrix using the specified rotation matrix leaving the translational part untouched. | |
| AffineMatrix4x4T< T > & | setRotate (const QuatT< T > &q) |
| Set the rotational part of the matrix using the specified quaternion leaving the translational part untouched. | |
| AffineMatrix4x4T< T > & | setRotate (const Vec3T< T > &from, const Vec3T< T > &to) |
| Set the rotational part of the matrix using the specified two vectors. | |
| AffineMatrix4x4T< T > & | setRotate (T angle, const Vec3T< T > &axis) |
Set the rotational part of a matrix which rotate angle radians around vector axis. | |
| AffineMatrix4x4T< T > & | setRotate (T angle, T x, T y, T z) |
Set the rotational part of a matrix which rotate angle radians around vector x y z. | |
| AffineMatrix4x4T< T > & | setRotate (T angle1, const Vec3T< T > &axis1, T angle2, const Vec3T< T > &axis2, T angle3, const Vec3T< T > &axis3) |
Set the rotational part of a matrix which rotate angle1 radians around vector axis1 and angle2 radians around vector axis2 angle3 radians around vector axis3. | |
| AffineMatrix4x4T< T > & | setTranslate (const Vec3T< T > &t) |
Set the translational part of the matrix using the vector t. | |
| AffineMatrix4x4T< T > & | setTranslate (T tx, T ty, T tz) |
Set the translational part of the matrix using the vector x, y, z. | |
| agx::Vec3T< T > | transformPoint (const agx::Vec3T< T > &point) const |
| Transforms a (mathematical) point, using both rotation and translation. | |
| agx::Vec3T< T > | transformVector (const agx::Vec3T< T > &vector) const |
| Transforms a (mathematical) vector, using only rotation. | |
Public Member Functions inherited from agx::Matrix4x4T< T > | |
| Matrix4x4T ()=default | |
| Creates a new matrix, initialized to be an identity matrix. | |
| Matrix4x4T (const EulerAngles &rotation, const Vec3T< T > &translation=Vec3T< T >()) | |
| Create a matrix from Euler angles. | |
| Matrix4x4T (const Matrix4x4T< T > &)=default | |
| template<typename T2 , std::enable_if_t< std::is_same< T, T2 >::value==0, bool > = false> | |
| Matrix4x4T (const Matrix4x4T< T2 > &mat) | |
| Copy constructor. | |
| Matrix4x4T (const OrthoMatrix3x3 &rotation, const Vec3T< T > &translation=Vec3T< T >()) | |
| Create a matrix from a 3x3 rotation matrix. | |
| Matrix4x4T (const QuatT< T > &rotation, const Vec3T< T > &translation=Vec3T< T >()) | |
| Create a matrix from a quaternion. | |
| Matrix4x4T (T a00, T a01, T a02, T a03, T a10, T a11, T a12, T a13, T a20, T a21, T a22, T a23, T a30, T a31, T a32, T a33) | |
| Create a matrix from 16 T scalars. | |
| Matrix4x4T (T const *const ptr) | |
| Create a matrix from a vector of 16 reals. | |
| ~Matrix4x4T ()=default | |
| Destructor. | |
| Matrix4x4T< T > & | addTranslate (const Vec3T< T > &t) |
| Matrix4x4T< T > & | addTranslate (T tx, T ty, T tz) |
| void | get (EulerAngles &e) const |
| void | get (OrthoMatrix3x3 &m3) const |
| void | get (QuatT< T > &q) const |
| agx::Vec4T< T > | getCol (size_t col) const |
| QuatT< T > | getRotate () const |
| agx::Vec4T< T > | getRow (size_t row) const |
| Vec3T< T > | getTranslate () const |
| Matrix4x4T< T > | inverse () const |
| Matrix inverse. | |
| bool | isFinite () const |
| bool | isIdentity () const |
| bool | isNaN () const |
| bool | isRigidTransformation () const |
| void | mult (const Matrix4x4T< T > &, const Matrix4x4T< T > &) |
| void | multSSE (const Matrix4x4T< Real32 > &lhs, const Matrix4x4T< Real32 > &rhs) |
| void | multSSE (const Matrix4x4T< Real64 > &lhs, const Matrix4x4T< Real64 > &rhs) |
| void | multSSE (const Matrix4x4T< T > &lhs, const Matrix4x4T< T > &rhs) |
| bool | operator!= (const Matrix4x4T< T > &m) const |
| T & | operator() (size_t row, size_t col) |
| T | operator() (size_t row, size_t col) const |
| Matrix4x4T< T > | operator* (const Matrix4x4T< T > &m) const |
| Vec3T< T > | operator* (const Vec3T< T > &v) const |
| Vec4T< T > | operator* (const Vec4T< T > &v) const |
| void | operator*= (const Matrix4x4T< T > &other) |
| Matrix4x4T< T > & | operator= (const Matrix4x4T< T > &rhs)=default |
| bool | operator== (const Matrix4x4T< T > &m) const |
| void | postMult (const Matrix4x4T< T > &) |
| Vec3T< T > | postMult (const Vec3T< T > &v) const |
| Vec4T< T > | postMult (const Vec4T< T > &v) const |
| Matrix4x4T< T > & | postMultTranslate (const Vec3T< T > &v) |
| void | preMult (const Matrix4x4T< T > &) |
| Vec3T< T > | preMult (const Vec3T< T > &v) const |
| Vec4T< T > | preMult (const Vec4T< T > &v) const |
| Matrix4x4T< T > & | preMultTranslate (const Vec3T< T > &v) |
| T * | ptr () |
| const T * | ptr () const |
| Matrix4x4T< T > & | set (const EulerAngles &e) |
| Matrix4x4T< T > & | set (const OrthoMatrix3x3 &m3) |
| Matrix4x4T< T > & | set (const QuatT< T > &q) |
| Matrix4x4T< T > & | set (T a00, T a01, T a02, T a03, T a10, T a11, T a12, T a13, T a20, T a21, T a22, T a23, T a30, T a31, T a32, T a33) |
| Matrix4x4T< T > & | set (T const *const ptr) |
| void | setCol (size_t col, const agx::Vec4T< T > &vec) |
| Matrix4x4T< T > & | setIdentity () |
| Matrix4x4T< T > & | setRotate (const EulerAngles &euler) |
| Matrix4x4T< T > & | setRotate (const OrthoMatrix3x3 &m3) |
| Matrix4x4T< T > & | setRotate (const QuatT< T > &q) |
| Matrix4x4T< T > & | setRotate (const Vec3T< T > &from, const Vec3T< T > &to) |
| Matrix4x4T< T > & | setRotate (T angle, const Vec3T< T > &axis) |
| Matrix4x4T< T > & | setRotate (T angle, T x, T y, T z) |
| Matrix4x4T< T > & | setRotate (T angle1, const Vec3T< T > &axis1, T angle2, const Vec3T< T > &axis2, T angle3, const Vec3T< T > &axis3) |
| void | setRow (size_t row, const agx::Vec4T< T > &vec) |
| Set the row of the matrix,. | |
| Matrix4x4T< T > & | setTranslate (const Vec3T< T > &t) |
| Matrix4x4T< T > & | setTranslate (T tx, T ty, T tz) |
| Vec3T< T > | transform3x3 (const Vec3T< T > &vIn) const |
| Vec3T< T > & | transform3x3 (const Vec3T< T > &vIn, Vec3T< T > &vOut) const |
| Vec3T< T > | transform3x3Inv (const Vec3T< T > &vIn) const |
| Vec3T< T > & | transform3x3Inv (const Vec3T< T > &vIn, Vec3T< T > &vOut) const |
| Matrix4x4T< T > | transpose () const |
| bool | valid () const |
Static Public Member Functions | |
| static AffineMatrix4x4T< T > | crossMatrix (const Vec3T< T > &vec) |
| Generates a new matrix of a specific type. | |
| static AffineMatrix4x4T< T > | rotate (const EulerAngles &euler) |
| static AffineMatrix4x4T< T > | rotate (const Vec3T< T > &from, const Vec3T< T > &to) |
Return a matrix which rotate a vector from from to to. | |
| static AffineMatrix4x4T< T > | rotate (T angle, const Vec3T< T > &axis) |
Return a matrix which rotate angle radians around vector axis. | |
| static AffineMatrix4x4T< T > | rotate (T angle, T x, T y, T z) |
Return a matrix which rotate angle radians around vector [x,y,z]. | |
| static AffineMatrix4x4T< T > | rotate (T angle1, const Vec3T< T > &axis1, T angle2, const Vec3T< T > &axis2, T angle3, const Vec3T< T > &axis3) |
Return a matrix which rotate angle1 radians around vector axis1 and angle2 radians around vector axis2 angle3 radians around vector axis3. | |
| static AffineMatrix4x4T< T > | translate (const Vec3T< T > &dv) |
Return a matrix which translates according to dv. | |
| static AffineMatrix4x4T< T > | translate (T x, T y, T z) |
| Return a matrix which translates according to vector [x,y,z]. | |
Static Public Member Functions inherited from agx::Matrix4x4T< T > | |
| static Matrix4x4T< T > | crossMatrix (const Vec3T< T > &vec) |
| Generates a new matrix of a specific type. | |
| static Matrix4x4T< T > | rotate (const Vec3T< T > &from, const Vec3T< T > &to) |
| static Matrix4x4T< T > | rotate (T angle, const Vec3T< T > &axis) |
| static Matrix4x4T< T > | rotate (T angle, T x, T y, T z) |
| static Matrix4x4T< T > | rotate (T angle1, const Vec3T< T > &axis1, T angle2, const Vec3T< T > &axis2, T angle3, const Vec3T< T > &axis3) |
| static Matrix4x4T< T > | translate (const Vec3T< T > &dv) |
| static Matrix4x4T< T > | translate (T x, T y, T z) |
Protected Member Functions | |
| bool | invert (const AffineMatrix4x4T< T > &rhs) |
Protected Member Functions inherited from agx::Matrix4x4T< T > | |
| bool | invert (const Matrix4x4T< T > &mat) |
Additional Inherited Members | |
Public Types inherited from agx::Matrix4x4T< T > | |
| typedef T | Type |
Static Protected Member Functions inherited from agx::Matrix4x4T< T > | |
| static void | multSSE32Implementation (Real32 *out, const Real32 *lhs, const Real32 *rhs) |
| static void | multSSE64Implementation (Real64 *out, const Real64 *lhs, const Real64 *rhs) |
Protected Attributes inherited from agx::Matrix4x4T< T > | |
| T | m_data [4][4] = {{1,0,0,0}, {0,1,0,0}, {0,0,1,0}, {0,0,0,1}} |
Matrix class for rigid transformations (translation, rotation).
Translations are stored in the last row. The last column will be assumed to be [0 0 0 1]' in all operations, even if it is set to something else. The submatrix containing the first three rows and columns contains the rotational part and is assumed to be orthonormal.
Definition at line 51 of file AffineMatrix4x4.h.
|
default |
Creates a new matrix, initialized to be an identity matrix.
|
default |
|
explicit |
Copy constructor.
Definition at line 415 of file AffineMatrix4x4.h.
|
explicit |
Create a matrix from a vector of 16 reals.
Definition at line 430 of file AffineMatrix4x4.h.
|
explicit |
Create a matrix from a quaternion.
Definition at line 437 of file AffineMatrix4x4.h.
|
explicit |
Create a matrix from Euler angles.
Definition at line 447 of file AffineMatrix4x4.h.
|
explicit |
Create a matrix from a 3x3 rotation matrix.
Definition at line 442 of file AffineMatrix4x4.h.
| agx::AffineMatrix4x4T< T >::AffineMatrix4x4T | ( | T | a00, |
| T | a01, | ||
| T | a02, | ||
| T | a03, | ||
| T | a10, | ||
| T | a11, | ||
| T | a12, | ||
| T | a13, | ||
| T | a20, | ||
| T | a21, | ||
| T | a22, | ||
| T | a23, | ||
| T | a30, | ||
| T | a31, | ||
| T | a32, | ||
| T | a33 | ||
| ) |
Create a matrix from 16 T scalars.
Definition at line 421 of file AffineMatrix4x4.h.
References agxAssert, and agx::Matrix4x4T< T >::isRigidTransformation().
|
default |
Destructor.
| Real agx::AffineMatrix4x4T< T >::at | ( | size_t | i, |
| size_t | j | ||
| ) | const |
Definition at line 958 of file AffineMatrix4x4.h.
|
inlinestatic |
Generates a new matrix of a specific type.
Definition at line 650 of file AffineMatrix4x4.h.
References agx::Vec3T< T >::x(), agx::Vec3T< T >::y(), and agx::Vec3T< T >::z().
| Vec3T< T > agx::AffineMatrix4x4T< T >::getInvTranslate |
Definition at line 467 of file AffineMatrix4x4.h.
|
inline |
Quick inverse, transpose rotation part, and change sign of translation part.
Definition at line 459 of file AffineMatrix4x4.h.
References agx::AffineMatrix4x4T< T >::invert().
Referenced by agxVehicle::Wheel::attachConstraint(), agxModel::NodeAttachment::createFromWorld(), agxCable::SegmentAttachment::createFromWorld(), agx::inverse< AffineMatrix4x4d >(), agx::inverse< AffineMatrix4x4f >(), agx::Frame::setMatrix(), agx::Frame::setTranslate(), and agx::Frame::transformPointToLocal().
|
protected |
Definition at line 870 of file AffineMatrix4x4.h.
References agx::Matrix4x4T< T >::m_data.
Referenced by agx::AffineMatrix4x4T< T >::inverse().
| void agx::AffineMatrix4x4T< T >::mult | ( | const AffineMatrix4x4T< T > & | lhs, |
| const AffineMatrix4x4T< T > & | rhs | ||
| ) |
Definition at line 715 of file AffineMatrix4x4.h.
References AGX_AFFINEMATRIX4X4_INNER_PRODUCT_3, and agx::Matrix4x4T< T >::m_data.
Referenced by agx::AffineMatrix4x4T< T >::operator*().
| void agx::AffineMatrix4x4T< Real32 >::multSSE | ( | const AffineMatrix4x4T< Real32 > & | lhs, |
| const AffineMatrix4x4T< Real32 > & | rhs | ||
| ) |
Definition at line 923 of file AffineMatrix4x4.h.
References agx::mult(), and agx::Matrix4x4T< T >::ptr().
| void agx::AffineMatrix4x4T< Real64 >::multSSE | ( | const AffineMatrix4x4T< Real64 > & | lhs, |
| const AffineMatrix4x4T< Real64 > & | rhs | ||
| ) |
Definition at line 933 of file AffineMatrix4x4.h.
References agx::mult(), and agx::Matrix4x4T< T >::ptr().
| void agx::AffineMatrix4x4T< T >::multSSE | ( | const AffineMatrix4x4T< T > & | lhs, |
| const AffineMatrix4x4T< T > & | rhs | ||
| ) |
| bool agx::AffineMatrix4x4T< T >::operator!= | ( | const AffineMatrix4x4T< T > & | m | ) | const |
Definition at line 490 of file AffineMatrix4x4.h.
References agx::Matrix4x4T< T >::m_data.
|
inline |
Definition at line 815 of file AffineMatrix4x4.h.
References agx::AffineMatrix4x4T< T >::mult().
|
inline |
Definition at line 823 of file AffineMatrix4x4.h.
References agx::Matrix4x4T< T >::mult().
| Vec3T< T > agx::AffineMatrix4x4T< T >::operator* | ( | const Vec3T< T > & | v | ) | const |
Definition at line 844 of file AffineMatrix4x4.h.
| Vec4T< T > agx::AffineMatrix4x4T< T >::operator* | ( | const Vec4T< T > & | v | ) | const |
Definition at line 850 of file AffineMatrix4x4.h.
| void agx::AffineMatrix4x4T< T >::operator*= | ( | const AffineMatrix4x4T< T > & | other | ) |
Definition at line 832 of file AffineMatrix4x4.h.
|
default |
| bool agx::AffineMatrix4x4T< T >::operator== | ( | const AffineMatrix4x4T< T > & | m | ) | const |
Definition at line 483 of file AffineMatrix4x4.h.
References agx::Matrix4x4T< T >::m_data.
| void agx::AffineMatrix4x4T< T >::postMult | ( | const AffineMatrix4x4T< T > & | other | ) |
Definition at line 768 of file AffineMatrix4x4.h.
References AGX_AFFINEMATRIX4X4_INNER_PRODUCT_3, AGX_AFFINEMATRIX4X4_SET_ROW, and agx::Matrix4x4T< T >::m_data.
Referenced by agx::Frame::transformVectorToLocal().
| AffineMatrix4x4T< T > & agx::AffineMatrix4x4T< T >::postMultTranslate | ( | const Vec3T< T > & | v | ) |
Definition at line 802 of file AffineMatrix4x4.h.
| void agx::AffineMatrix4x4T< T >::preMult | ( | const AffineMatrix4x4T< T > & | other | ) |
Definition at line 750 of file AffineMatrix4x4.h.
References AGX_AFFINEMATRIX4X4_INNER_PRODUCT_3.
Referenced by agx::operator*(), agx::Frame::transformPointToLocal(), and agx::Frame::transformPointToWorld().
| AffineMatrix4x4T< T > & agx::AffineMatrix4x4T< T >::preMultTranslate | ( | const Vec3T< T > & | v | ) |
Definition at line 789 of file AffineMatrix4x4.h.
|
static |
|
inlinestatic |
Return a matrix which rotate a vector from from to to.
| from | - start of rotation |
| to | - end of rotation |
Definition at line 677 of file AffineMatrix4x4.h.
References agx::AffineMatrix4x4T< T >::setRotate().
|
inlinestatic |
Return a matrix which rotate angle radians around vector axis.
| angle | - angle in radians |
| axis | - vector |
Definition at line 693 of file AffineMatrix4x4.h.
References agx::AffineMatrix4x4T< T >::setRotate().
|
inlinestatic |
Return a matrix which rotate angle radians around vector [x,y,z].
| angle | - angle in radians |
| x | - x element of vector |
| y | - y element of vector |
| z | - z element of vector |
Definition at line 685 of file AffineMatrix4x4.h.
References agx::AffineMatrix4x4T< T >::setRotate().
|
inlinestatic |
Return a matrix which rotate angle1 radians around vector axis1 and angle2 radians around vector axis2 angle3 radians around vector axis3.
| angle1 | - angle in radians |
| axis1 | - vector |
| angle2 | - angle in radians |
| axis2 | - vector |
| angle3 | - angle in radians |
| axis3 | - vector |
Definition at line 701 of file AffineMatrix4x4.h.
References agx::AffineMatrix4x4T< T >::setRotate().
| AffineMatrix4x4T< T > & agx::AffineMatrix4x4T< T >::set | ( | const EulerAngles & | euler | ) |
Set the rotational part of the matrix using the specified euler angles and the translational part to 0,0,0.
| euler | - Specified euler angles rotation |
| AffineMatrix4x4T< T > & agx::AffineMatrix4x4T< T >::set | ( | const OrthoMatrix3x3 & | m3 | ) |
Set the rotational part of the matrix using the specified rotation matrix and the translational part to 0,0,0.
| m3 | - Specified rotation matrix |
Definition at line 542 of file AffineMatrix4x4.h.
| AffineMatrix4x4T< T > & agx::AffineMatrix4x4T< T >::set | ( | const QuatT< T > & | q | ) |
Set the rotational part of the matrix using the specified quaternion and the translational part to 0,0,0.
| q | - Specified quaternion |
Definition at line 532 of file AffineMatrix4x4.h.
| void agx::AffineMatrix4x4T< T >::set | ( | Real | val, |
| size_t | i, | ||
| size_t | j | ||
| ) |
Set the value of element i,j.
Definition at line 964 of file AffineMatrix4x4.h.
| AffineMatrix4x4T< T > & agx::AffineMatrix4x4T< T >::set | ( | T | a00, |
| T | a01, | ||
| T | a02, | ||
| T | a03, | ||
| T | a10, | ||
| T | a11, | ||
| T | a12, | ||
| T | a13, | ||
| T | a20, | ||
| T | a21, | ||
| T | a22, | ||
| T | a23, | ||
| T | a30, | ||
| T | a31, | ||
| T | a32, | ||
| T | a33 | ||
| ) |
Set the entire matrix using values from the 16 elements using the following order:
m_data[0][0] = a00; m_data[0][1] = a01; m_data[0][2] = a02; m_data[0][3] = a03;
m_data[1][0] = a04;
etc.
| a00,a01,a02,a03,a10,a11,a12,a13,a20,a21,a22,a23,a30,a31,a32,a33 | - Matrix elements |
Definition at line 521 of file AffineMatrix4x4.h.
References agx::Matrix4x4T< T >::set().
| AffineMatrix4x4T< T > & agx::AffineMatrix4x4T< T >::set | ( | T const *const | ptr | ) |
Set the entire matrix using values from the array with 16 elements using the following order:
m_data[0][0] = ptr[0]; m_data[0][1] = ptr[1]; m_data[0][2] = ptr[2]; m_data[0][3] = ptr[3];
m_data[1][0] = ptr[4];
etc.
| ptr | - pointer to a vector with 16 elements |
Definition at line 501 of file AffineMatrix4x4.h.
References agxAssert.
| AffineMatrix4x4T< T > & agx::AffineMatrix4x4T< T >::setIdentity |
Set the value of the matrix to the identity matrix.
Definition at line 638 of file AffineMatrix4x4.h.
| AffineMatrix4x4T< T > & agx::AffineMatrix4x4T< T >::setRotate | ( | const EulerAngles & | euler | ) |
Set the rotational part of the matrix using the specified euler angles leaving the translational part untouched.
| euler | - Specified euler angles rotation |
| AffineMatrix4x4T< T > & agx::AffineMatrix4x4T< T >::setRotate | ( | const OrthoMatrix3x3 & | m3 | ) |
Set the rotational part of the matrix using the specified rotation matrix leaving the translational part untouched.
| m3 | - Specified rotation matrix |
Definition at line 559 of file AffineMatrix4x4.h.
| AffineMatrix4x4T< T > & agx::AffineMatrix4x4T< T >::setRotate | ( | const QuatT< T > & | q | ) |
Set the rotational part of the matrix using the specified quaternion leaving the translational part untouched.
| q | - Specified quaternion |
Definition at line 551 of file AffineMatrix4x4.h.
References agx::Matrix4x4T< T >::setRotate().
Referenced by agxSDK::getFuturePosition(), and agx::AffineMatrix4x4T< T >::rotate().
| AffineMatrix4x4T< T > & agx::AffineMatrix4x4T< T >::setRotate | ( | const Vec3T< T > & | from, |
| const Vec3T< T > & | to | ||
| ) |
Set the rotational part of the matrix using the specified two vectors.
The resulting rotation will be a rotation matrix which rotates a vector from from to to leaving the translational part untouched.
| from | - start of rotation |
| to | - end of rotation |
Definition at line 577 of file AffineMatrix4x4.h.
References agx::QuatT< T >::setRotate().
| AffineMatrix4x4T< T > & agx::AffineMatrix4x4T< T >::setRotate | ( | T | angle, |
| const Vec3T< T > & | axis | ||
| ) |
Set the rotational part of a matrix which rotate angle radians around vector axis.
| angle | - angle in radians |
| axis | - vector |
Definition at line 586 of file AffineMatrix4x4.h.
References agx::QuatT< T >::setRotate().
| AffineMatrix4x4T< T > & agx::AffineMatrix4x4T< T >::setRotate | ( | T | angle, |
| T | x, | ||
| T | y, | ||
| T | z | ||
| ) |
Set the rotational part of a matrix which rotate angle radians around vector x y z.
| angle | - angle in radians |
| x,y,z | - vector |
Definition at line 595 of file AffineMatrix4x4.h.
References agx::QuatT< T >::setRotate().
| AffineMatrix4x4T< T > & agx::AffineMatrix4x4T< T >::setRotate | ( | T | angle1, |
| const Vec3T< T > & | axis1, | ||
| T | angle2, | ||
| const Vec3T< T > & | axis2, | ||
| T | angle3, | ||
| const Vec3T< T > & | axis3 | ||
| ) |
Set the rotational part of a matrix which rotate angle1 radians around vector axis1 and angle2 radians around vector axis2 angle3 radians around vector axis3.
| angle1 | - angle in radians |
| axis1 | - vector |
| angle2 | - angle in radians |
| axis2 | - vector |
| angle3 | - angle in radians |
| axis3 | - vector |
Definition at line 604 of file AffineMatrix4x4.h.
References agx::QuatT< T >::setRotate().
| AffineMatrix4x4T< T > & agx::AffineMatrix4x4T< T >::setTranslate | ( | const Vec3T< T > & | t | ) |
Set the translational part of the matrix using the vector t.
| t | - translation vector |
Definition at line 617 of file AffineMatrix4x4.h.
Referenced by agxSDK::getFuturePosition(), agx::Frame::transformVectorToLocal(), and agx::AffineMatrix4x4T< T >::translate().
| AffineMatrix4x4T< T > & agx::AffineMatrix4x4T< T >::setTranslate | ( | T | tx, |
| T | ty, | ||
| T | tz | ||
| ) |
Set the translational part of the matrix using the vector x, y, z.
| tx,ty,tz | - translation vector |
Definition at line 627 of file AffineMatrix4x4.h.
| agx::Vec3T< T > agx::AffineMatrix4x4T< T >::transformPoint | ( | const agx::Vec3T< T > & | point | ) | const |
Transforms a (mathematical) point, using both rotation and translation.
Definition at line 971 of file AffineMatrix4x4.h.
| agx::Vec3T< T > agx::AffineMatrix4x4T< T >::transformVector | ( | const agx::Vec3T< T > & | vector | ) | const |
Transforms a (mathematical) vector, using only rotation.
Definition at line 977 of file AffineMatrix4x4.h.
|
inlinestatic |
Return a matrix which translates according to dv.
| dv | - translation vector |
Definition at line 661 of file AffineMatrix4x4.h.
References agx::AffineMatrix4x4T< T >::setTranslate().
|
inlinestatic |
Return a matrix which translates according to vector [x,y,z].
| x | - x element of vector |
| y | - y element of vector |
| z | - z element of vector |
Definition at line 669 of file AffineMatrix4x4.h.
References agx::AffineMatrix4x4T< T >::setTranslate().