|
Bullet Collision Detection & Physics Library
|
The btMatrix3x3 class implements a 3x3 rotation matrix, to perform linear algebra in combination with btQuaternion, btTransform and btVector3. More...
#include <btMatrix3x3.h>

Public Member Functions | |
| btMatrix3x3 () | |
| No initializaion constructor. More... | |
| btMatrix3x3 (const btQuaternion &q) | |
| Constructor from Quaternion. More... | |
| btMatrix3x3 (const btScalar &xx, const btScalar &xy, const btScalar &xz, const btScalar &yx, const btScalar &yy, const btScalar &yz, const btScalar &zx, const btScalar &zy, const btScalar &zz) | |
| Constructor with row major formatting. More... | |
| btMatrix3x3 (const btMatrix3x3 &other) | |
| Copy constructor. More... | |
| btMatrix3x3 & | operator= (const btMatrix3x3 &other) |
| Assignment Operator. More... | |
| btVector3 | getColumn (int i) const |
| Get a column of the matrix as a vector. More... | |
| const btVector3 & | getRow (int i) const |
| Get a row of the matrix as a vector. More... | |
| btVector3 & | operator[] (int i) |
| Get a mutable reference to a row of the matrix as a vector. More... | |
| const btVector3 & | operator[] (int i) const |
| Get a const reference to a row of the matrix as a vector. More... | |
| btMatrix3x3 & | operator*= (const btMatrix3x3 &m) |
| Multiply by the target matrix on the right. More... | |
| btMatrix3x3 & | operator+= (const btMatrix3x3 &m) |
| Adds by the target matrix on the right. More... | |
| btMatrix3x3 & | operator-= (const btMatrix3x3 &m) |
| Substractss by the target matrix on the right. More... | |
| void | setFromOpenGLSubMatrix (const btScalar *m) |
| Set from the rotational part of a 4x4 OpenGL matrix. More... | |
| void | setValue (const btScalar &xx, const btScalar &xy, const btScalar &xz, const btScalar &yx, const btScalar &yy, const btScalar &yz, const btScalar &zx, const btScalar &zy, const btScalar &zz) |
| Set the values of the matrix explicitly (row major) More... | |
| void | setRotation (const btQuaternion &q) |
| Set the matrix from a quaternion. More... | |
| void | setEulerYPR (const btScalar &yaw, const btScalar &pitch, const btScalar &roll) |
| Set the matrix from euler angles using YPR around YXZ respectively. More... | |
| void | setEulerZYX (btScalar eulerX, btScalar eulerY, btScalar eulerZ) |
| Set the matrix from euler angles YPR around ZYX axes. More... | |
| void | setIdentity () |
| Set the matrix to the identity. More... | |
| void | getOpenGLSubMatrix (btScalar *m) const |
| Fill the rotational part of an OpenGL matrix and clear the shear/perspective. More... | |
| void | getRotation (btQuaternion &q) const |
| Get the matrix represented as a quaternion. More... | |
| void | getEulerYPR (btScalar &yaw, btScalar &pitch, btScalar &roll) const |
| Get the matrix represented as euler angles around YXZ, roundtrip with setEulerYPR. More... | |
| void | getEulerZYX (btScalar &yaw, btScalar &pitch, btScalar &roll, unsigned int solution_number=1) const |
| Get the matrix represented as euler angles around ZYX. More... | |
| btMatrix3x3 | scaled (const btVector3 &s) const |
| Create a scaled copy of the matrix. More... | |
| btScalar | determinant () const |
| Return the determinant of the matrix. More... | |
| btMatrix3x3 | adjoint () const |
| Return the adjoint of the matrix. More... | |
| btMatrix3x3 | absolute () const |
| Return the matrix with all values non negative. More... | |
| btMatrix3x3 | transpose () const |
| Return the transpose of the matrix. More... | |
| btMatrix3x3 | inverse () const |
| Return the inverse of the matrix. More... | |
| btMatrix3x3 | transposeTimes (const btMatrix3x3 &m) const |
| btMatrix3x3 | timesTranspose (const btMatrix3x3 &m) const |
| btScalar | tdotx (const btVector3 &v) const |
| btScalar | tdoty (const btVector3 &v) const |
| btScalar | tdotz (const btVector3 &v) const |
| void | diagonalize (btMatrix3x3 &rot, btScalar threshold, int maxSteps) |
| diagonalizes this matrix by the Jacobi method. More... | |
| btScalar | cofac (int r1, int c1, int r2, int c2) const |
| Calculate the matrix cofactor. More... | |
| void | serialize (struct btMatrix3x3Data &dataOut) const |
| void | serializeFloat (struct btMatrix3x3FloatData &dataOut) const |
| void | deSerialize (const struct btMatrix3x3Data &dataIn) |
| void | deSerializeFloat (const struct btMatrix3x3FloatData &dataIn) |
| void | deSerializeDouble (const struct btMatrix3x3DoubleData &dataIn) |
Static Public Member Functions | |
| static const btMatrix3x3 & | getIdentity () |
Private Attributes | |
| btVector3 | m_el [3] |
| Data storage for the matrix, each vector is a row of the matrix. More... | |
The btMatrix3x3 class implements a 3x3 rotation matrix, to perform linear algebra in combination with btQuaternion, btTransform and btVector3.
Make sure to only include a pure orthogonal matrix without scaling.
Definition at line 48 of file btMatrix3x3.h.
|
inline |
No initializaion constructor.
Definition at line 55 of file btMatrix3x3.h.
|
inlineexplicit |
Constructor from Quaternion.
Definition at line 60 of file btMatrix3x3.h.
|
inline |
Constructor with row major formatting.
Definition at line 69 of file btMatrix3x3.h.
|
inline |
Copy constructor.
Definition at line 114 of file btMatrix3x3.h.
|
inline |
Return the matrix with all values non negative.
Definition at line 959 of file btMatrix3x3.h.
|
inline |
Return the adjoint of the matrix.
Definition at line 1017 of file btMatrix3x3.h.
|
inline |
Calculate the matrix cofactor.
| r1 | The first row to use for calculating the cofactor |
| c1 | The first column to use for calculating the cofactor |
| r1 | The second row to use for calculating the cofactor |
| c1 | The second column to use for calculating the cofactor See http://en.wikipedia.org/wiki/Cofactor_(linear_algebra) for more details |
Definition at line 727 of file btMatrix3x3.h.
|
inline |
Definition at line 1348 of file btMatrix3x3.h.
|
inline |
Definition at line 1360 of file btMatrix3x3.h.
|
inline |
Definition at line 1354 of file btMatrix3x3.h.
|
inline |
Return the determinant of the matrix.
Definition at line 952 of file btMatrix3x3.h.
|
inline |
diagonalizes this matrix by the Jacobi method.
| rot | stores the rotation from the coordinate system in which the matrix is diagonal to the original coordinate system, i.e., old_this = rot * new_this * rot^T. |
| threshold | See iteration |
| iteration | The iteration stops when all off-diagonal elements are less than the threshold multiplied by the sum of the absolute values of the diagonal, or when maxSteps have been executed. |
Note that this matrix is assumed to be symmetric.
Definition at line 639 of file btMatrix3x3.h.
|
inline |
Get a column of the matrix as a vector.
| i | Column number 0 indexed |
Definition at line 134 of file btMatrix3x3.h.
Get the matrix represented as euler angles around YXZ, roundtrip with setEulerYPR.
| yaw | Yaw around Y axis |
| pitch | Pitch around X axis |
| roll | around Z axis |
Definition at line 492 of file btMatrix3x3.h.
|
inline |
Get the matrix represented as euler angles around ZYX.
| yaw | Yaw around X axis |
| pitch | Pitch around Y axis |
| roll | around X axis |
| solution_number | Which solution of two possible solutions ( 1 or 2) are possible values |
Definition at line 521 of file btMatrix3x3.h.
|
inlinestatic |
Definition at line 330 of file btMatrix3x3.h.
|
inline |
Fill the rotational part of an OpenGL matrix and clear the shear/perspective.
| m | The array to be filled |
Definition at line 347 of file btMatrix3x3.h.
|
inline |
Get the matrix represented as a quaternion.
| q | The quaternion which will be set |
Definition at line 400 of file btMatrix3x3.h.
|
inline |
Get a row of the matrix as a vector.
| i | Row number 0 indexed |
Definition at line 142 of file btMatrix3x3.h.
|
inline |
Return the inverse of the matrix.
Definition at line 1025 of file btMatrix3x3.h.
|
inline |
Multiply by the target matrix on the right.
| m | Rotation matrix to be applied Equivilant to this = this * m |
Definition at line 746 of file btMatrix3x3.h.
|
inline |
Adds by the target matrix on the right.
| m | matrix to be applied Equivilant to this = this + m |
Definition at line 836 of file btMatrix3x3.h.
|
inline |
Substractss by the target matrix on the right.
| m | matrix to be applied Equivilant to this = this - m |
Definition at line 929 of file btMatrix3x3.h.
|
inline |
Assignment Operator.
Definition at line 122 of file btMatrix3x3.h.
|
inline |
Get a mutable reference to a row of the matrix as a vector.
| i | Row number 0 indexed |
Definition at line 150 of file btMatrix3x3.h.
|
inline |
Get a const reference to a row of the matrix as a vector.
| i | Row number 0 indexed |
Definition at line 158 of file btMatrix3x3.h.
|
inline |
Create a scaled copy of the matrix.
| s | Scaling vector The elements of the vector will scale each column |
Definition at line 590 of file btMatrix3x3.h.
|
inline |
Definition at line 1335 of file btMatrix3x3.h.
|
inline |
Definition at line 1341 of file btMatrix3x3.h.
|
inline |
Set the matrix from euler angles using YPR around YXZ respectively.
| yaw | Yaw about Y axis |
| pitch | Pitch about X axis |
| roll | Roll about Z axis |
Definition at line 284 of file btMatrix3x3.h.
Set the matrix from euler angles YPR around ZYX axes.
| eulerX | Roll about X axis |
| eulerY | Pitch around Y axis |
| eulerZ | Yaw aboud Z axis |
These angles are used to produce a rotation matrix. The euler angles are applied in ZYX order. I.e a vector is first rotated about X then Y and then Z
Definition at line 298 of file btMatrix3x3.h.
|
inline |
Set from the rotational part of a 4x4 OpenGL matrix.
| m | A pointer to the beginning of the array of scalars |
Definition at line 181 of file btMatrix3x3.h.
|
inline |
Set the matrix to the identity.
Definition at line 317 of file btMatrix3x3.h.
|
inline |
Set the matrix from a quaternion.
| q | The Quaternion to match |
Definition at line 209 of file btMatrix3x3.h.
|
inline |
Set the values of the matrix explicitly (row major)
| xx | Top left |
| xy | Top Middle |
| xz | Top Right |
| yx | Middle Left |
| yy | Middle Middle |
| yz | Middle Right |
| zx | Bottom Left |
| zy | Bottom Middle |
| zz | Bottom Right |
Definition at line 198 of file btMatrix3x3.h.
Definition at line 616 of file btMatrix3x3.h.
Definition at line 620 of file btMatrix3x3.h.
Definition at line 624 of file btMatrix3x3.h.
|
inline |
Definition at line 1093 of file btMatrix3x3.h.
|
inline |
Return the transpose of the matrix.
Definition at line 980 of file btMatrix3x3.h.
|
inline |
Definition at line 1037 of file btMatrix3x3.h.
|
private |
Data storage for the matrix, each vector is a row of the matrix.
Definition at line 51 of file btMatrix3x3.h.
1.8.6