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.