All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Static Public Member Functions | Public Attributes | Private Attributes
tf::Matrix3x3 Class Reference

The Matrix3x3 class implements a 3x3 rotation matrix, to perform linear algebra in combination with Quaternion, Transform and Vector3. Make sure to only include a pure orthogonal matrix without scaling. More...

#include <Matrix3x3.h>

List of all members.

Public Member Functions

 __attribute__ ((deprecated)) void getEulerZYX(tfScalar &yaw
 Get the matrix represented as euler angles around ZYX.
Matrix3x3 absolute () const
 Return the matrix with all values non negative.
Matrix3x3 adjoint () const
 Return the adjoint of the matrix.
TFSIMD_FORCE_INLINE btMatrix3x3 as_bt (void) const __attribute__((deprecated))
 return a btMatrix3x3
TFSIMD_FORCE_INLINE btMatrix3x3 asBt (void) const
tfScalar cofac (int r1, int c1, int r2, int c2) const
 Calculate the matrix cofactor.
void deSerialize (const struct Matrix3x3Data &dataIn)
void deSerializeDouble (const struct Matrix3x3DoubleData &dataIn)
void deSerializeFloat (const struct Matrix3x3FloatData &dataIn)
tfScalar determinant () const
 Return the determinant of the matrix.
void diagonalize (Matrix3x3 &rot, tfScalar threshold, int maxSteps)
 diagonalizes this matrix by the Jacobi method.
TFSIMD_FORCE_INLINE Vector3 getColumn (int i) const
 Get a column of the matrix as a vector.
void getEulerYPR (tfScalar &yaw, tfScalar &pitch, tfScalar &roll, unsigned int solution_number=1) const
 Get the matrix represented as euler angles around YXZ, roundtrip with setEulerYPR.
void getOpenGLSubMatrix (tfScalar *m) const
 Fill the values of the matrix into a 9 element array.
void getRotation (Quaternion &q) const
 Get the matrix represented as a quaternion.
TFSIMD_FORCE_INLINE const Vector3 & getRow (int i) const
 Get a row of the matrix as a vector.
void getRPY (tfScalar &roll, tfScalar &pitch, tfScalar &yaw, unsigned int solution_number=1) const
 Get the matrix represented as roll pitch and yaw about fixed axes XYZ.
Matrix3x3 inverse () const
 Return the inverse of the matrix.
 Matrix3x3 ()
 No initializaion constructor.
 Matrix3x3 (const Quaternion &q)
 Constructor from Quaternion.
 Matrix3x3 (const tfScalar &xx, const tfScalar &xy, const tfScalar &xz, const tfScalar &yx, const tfScalar &yy, const tfScalar &yz, const tfScalar &zx, const tfScalar &zy, const tfScalar &zz)
 Constructor with row major formatting.
TFSIMD_FORCE_INLINE Matrix3x3 (const Matrix3x3 &other)
 Copy constructor.
TFSIMD_FORCE_INLINE Matrix3x3 (const btMatrix3x3 &other)
Matrix3x3operator*= (const Matrix3x3 &m)
 Multiply by the target matrix on the right.
TFSIMD_FORCE_INLINE Matrix3x3operator= (const Matrix3x3 &other)
 Assignment Operator.
TFSIMD_FORCE_INLINE Matrix3x3operator= (const btMatrix3x3 &other)
 Assign from a btMatrix3x3.
TFSIMD_FORCE_INLINE Vector3 & operator[] (int i)
 Get a mutable reference to a row of the matrix as a vector.
TFSIMD_FORCE_INLINE const Vector3 & operator[] (int i) const
 Get a const reference to a row of the matrix as a vector.
Matrix3x3 scaled (const Vector3 &s) const
 Create a scaled copy of the matrix.
void serialize (struct Matrix3x3Data &dataOut) const
void serializeFloat (struct Matrix3x3FloatData &dataOut) const
void setEulerYPR (tfScalar eulerZ, tfScalar eulerY, tfScalar eulerX)
 Set the matrix from euler angles YPR around ZYX axes.
void setEulerZYX (const tfScalar &yaw, const tfScalar &pitch, const tfScalar &roll) __attribute__((deprecated))
 Set the matrix from euler angles using YPR around ZYX respectively.
void setFromOpenGLSubMatrix (const tfScalar *m)
 Set from a carray of tfScalars.
void setIdentity ()
 Set the matrix to the identity.
void setRotation (const Quaternion &q)
 Set the matrix from a quaternion.
void setRPY (tfScalar roll, tfScalar pitch, tfScalar yaw)
 Set the matrix using RPY about XYZ fixed axes.
void setValue (const tfScalar &xx, const tfScalar &xy, const tfScalar &xz, const tfScalar &yx, const tfScalar &yy, const tfScalar &yz, const tfScalar &zx, const tfScalar &zy, const tfScalar &zz)
 Set the values of the matrix explicitly (row major)
TFSIMD_FORCE_INLINE tfScalar tdotx (const Vector3 &v) const
TFSIMD_FORCE_INLINE tfScalar tdoty (const Vector3 &v) const
TFSIMD_FORCE_INLINE tfScalar tdotz (const Vector3 &v) const
Matrix3x3 timesTranspose (const Matrix3x3 &m) const
Matrix3x3 transpose () const
 Return the transpose of the matrix.
Matrix3x3 transposeTimes (const Matrix3x3 &m) const

Static Public Member Functions

static const Matrix3x3getIdentity ()

Public Attributes

tfScalarpitch
tfScalar tfScalarroll
tfScalar tfScalar unsigned int solution_number

Private Attributes

Vector3 m_el [3]
 Data storage for the matrix, each vector is a row of the matrix.

Detailed Description

The Matrix3x3 class implements a 3x3 rotation matrix, to perform linear algebra in combination with Quaternion, Transform and Vector3. Make sure to only include a pure orthogonal matrix without scaling.

Definition at line 33 of file Matrix3x3.h.


Constructor & Destructor Documentation

No initializaion constructor.

Definition at line 40 of file Matrix3x3.h.

tf::Matrix3x3::Matrix3x3 ( const Quaternion q) [inline, explicit]

Constructor from Quaternion.

Definition at line 45 of file Matrix3x3.h.

tf::Matrix3x3::Matrix3x3 ( const tfScalar xx,
const tfScalar xy,
const tfScalar xz,
const tfScalar yx,
const tfScalar yy,
const tfScalar yz,
const tfScalar zx,
const tfScalar zy,
const tfScalar zz 
) [inline]

Constructor with row major formatting.

Definition at line 54 of file Matrix3x3.h.

Copy constructor.

Definition at line 63 of file Matrix3x3.h.

TFSIMD_FORCE_INLINE tf::Matrix3x3::Matrix3x3 ( const btMatrix3x3 &  other) [inline]

Definition at line 70 of file Matrix3x3.h.


Member Function Documentation

tf::Matrix3x3::__attribute__ ( (deprecated)  )

Get the matrix represented as euler angles around ZYX.

Parameters:
yawYaw around Z axis
pitchPitch around Y axis
rollaround X axis
solution_numberWhich solution of two possible solutions ( 1 or 2) are possible values

Return the matrix with all values non negative.

Definition at line 566 of file Matrix3x3.h.

Return the adjoint of the matrix.

Definition at line 583 of file Matrix3x3.h.

TFSIMD_FORCE_INLINE btMatrix3x3 tf::Matrix3x3::as_bt ( void  ) const [inline]

return a btMatrix3x3

Definition at line 97 of file Matrix3x3.h.

TFSIMD_FORCE_INLINE btMatrix3x3 tf::Matrix3x3::asBt ( void  ) const [inline]

Definition at line 98 of file Matrix3x3.h.

tfScalar tf::Matrix3x3::cofac ( int  r1,
int  c1,
int  r2,
int  c2 
) const [inline]

Calculate the matrix cofactor.

Parameters:
r1The first row to use for calculating the cofactor
c1The first column to use for calculating the cofactor
r1The second row to use for calculating the cofactor
c1The second column to use for calculating the cofactor See http://en.wikipedia.org/wiki/Cofactor_(linear_algebra) for more details

Definition at line 531 of file Matrix3x3.h.

Definition at line 701 of file Matrix3x3.h.

Definition at line 713 of file Matrix3x3.h.

Definition at line 707 of file Matrix3x3.h.

Return the determinant of the matrix.

Definition at line 559 of file Matrix3x3.h.

void tf::Matrix3x3::diagonalize ( Matrix3x3 rot,
tfScalar  threshold,
int  maxSteps 
) [inline]

diagonalizes this matrix by the Jacobi method.

Parameters:
rotstores 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.
thresholdSee iteration
iterationThe 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 443 of file Matrix3x3.h.

TFSIMD_FORCE_INLINE Vector3 tf::Matrix3x3::getColumn ( int  i) const [inline]

Get a column of the matrix as a vector.

Parameters:
iColumn number 0 indexed

Definition at line 108 of file Matrix3x3.h.

void tf::Matrix3x3::getEulerYPR ( tfScalar yaw,
tfScalar pitch,
tfScalar roll,
unsigned int  solution_number = 1 
) const [inline]

Get the matrix represented as euler angles around YXZ, roundtrip with setEulerYPR.

Parameters:
yawYaw around Z axis
pitchPitch around Y axis
rollaround X axis

Definition at line 319 of file Matrix3x3.h.

static const Matrix3x3& tf::Matrix3x3::getIdentity ( ) [inline, static]

Definition at line 242 of file Matrix3x3.h.

void tf::Matrix3x3::getOpenGLSubMatrix ( tfScalar m) const [inline]

Fill the values of the matrix into a 9 element array.

Parameters:
mThe array to be filled

Definition at line 252 of file Matrix3x3.h.

void tf::Matrix3x3::getRotation ( Quaternion q) const [inline]

Get the matrix represented as a quaternion.

Parameters:
qThe quaternion which will be set

Definition at line 270 of file Matrix3x3.h.

TFSIMD_FORCE_INLINE const Vector3& tf::Matrix3x3::getRow ( int  i) const [inline]

Get a row of the matrix as a vector.

Parameters:
iRow number 0 indexed

Definition at line 116 of file Matrix3x3.h.

void tf::Matrix3x3::getRPY ( tfScalar roll,
tfScalar pitch,
tfScalar yaw,
unsigned int  solution_number = 1 
) const [inline]

Get the matrix represented as roll pitch and yaw about fixed axes XYZ.

Parameters:
rollaround X axis
pitchPitch around Y axis
yawYaw around Z axis
solution_numberWhich solution of two possible solutions ( 1 or 2) are possible values

Definition at line 391 of file Matrix3x3.h.

Return the inverse of the matrix.

Definition at line 591 of file Matrix3x3.h.

TFSIMD_FORCE_INLINE Matrix3x3 & tf::Matrix3x3::operator*= ( const Matrix3x3 m)

Multiply by the target matrix on the right.

Parameters:
mRotation matrix to be applied Equivilant to this = this * m

Definition at line 550 of file Matrix3x3.h.

TFSIMD_FORCE_INLINE Matrix3x3& tf::Matrix3x3::operator= ( const Matrix3x3 other) [inline]

Assignment Operator.

Definition at line 78 of file Matrix3x3.h.

TFSIMD_FORCE_INLINE Matrix3x3& tf::Matrix3x3::operator= ( const btMatrix3x3 &  other) [inline]

Assign from a btMatrix3x3.

Definition at line 87 of file Matrix3x3.h.

TFSIMD_FORCE_INLINE Vector3& tf::Matrix3x3::operator[] ( int  i) [inline]

Get a mutable reference to a row of the matrix as a vector.

Parameters:
iRow number 0 indexed

Definition at line 124 of file Matrix3x3.h.

TFSIMD_FORCE_INLINE const Vector3& tf::Matrix3x3::operator[] ( int  i) const [inline]

Get a const reference to a row of the matrix as a vector.

Parameters:
iRow number 0 indexed

Definition at line 132 of file Matrix3x3.h.

Matrix3x3 tf::Matrix3x3::scaled ( const Vector3 &  s) const [inline]

Create a scaled copy of the matrix.

Parameters:
sScaling vector The elements of the vector will scale each column

Definition at line 399 of file Matrix3x3.h.

Definition at line 688 of file Matrix3x3.h.

Definition at line 694 of file Matrix3x3.h.

void tf::Matrix3x3::setEulerYPR ( tfScalar  eulerZ,
tfScalar  eulerY,
tfScalar  eulerX 
) [inline]

Set the matrix from euler angles YPR around ZYX axes.

Parameters:
eulerZYaw aboud Z axis
eulerYPitch around Y axis
eulerXRoll about X 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 207 of file Matrix3x3.h.

void tf::Matrix3x3::setEulerZYX ( const tfScalar yaw,
const tfScalar pitch,
const tfScalar roll 
) [inline]

Set the matrix from euler angles using YPR around ZYX respectively.

Parameters:
yawYaw about Z axis
pitchPitch about Y axis
rollRoll about X axis

Definition at line 193 of file Matrix3x3.h.

void tf::Matrix3x3::setFromOpenGLSubMatrix ( const tfScalar m) [inline]

Set from a carray of tfScalars.

Parameters:
mA pointer to the beginning of an array of 9 tfScalars

Definition at line 145 of file Matrix3x3.h.

void tf::Matrix3x3::setIdentity ( ) [inline]

Set the matrix to the identity.

Definition at line 235 of file Matrix3x3.h.

void tf::Matrix3x3::setRotation ( const Quaternion q) [inline]

Set the matrix from a quaternion.

Parameters:
qThe Quaternion to match

Definition at line 173 of file Matrix3x3.h.

void tf::Matrix3x3::setRPY ( tfScalar  roll,
tfScalar  pitch,
tfScalar  yaw 
) [inline]

Set the matrix using RPY about XYZ fixed axes.

Parameters:
rollRoll about X axis
pitchPitch around Y axis
yawYaw aboud Z axis

Definition at line 230 of file Matrix3x3.h.

void tf::Matrix3x3::setValue ( const tfScalar xx,
const tfScalar xy,
const tfScalar xz,
const tfScalar yx,
const tfScalar yy,
const tfScalar yz,
const tfScalar zx,
const tfScalar zy,
const tfScalar zz 
) [inline]

Set the values of the matrix explicitly (row major)

Parameters:
xxTop left
xyTop Middle
xzTop Right
yxMiddle Left
yyMiddle Middle
yzMiddle Right
zxBottom Left
zyBottom Middle
zzBottom Right

Definition at line 162 of file Matrix3x3.h.

TFSIMD_FORCE_INLINE tfScalar tf::Matrix3x3::tdotx ( const Vector3 &  v) const [inline]

Definition at line 420 of file Matrix3x3.h.

TFSIMD_FORCE_INLINE tfScalar tf::Matrix3x3::tdoty ( const Vector3 &  v) const [inline]

Definition at line 424 of file Matrix3x3.h.

TFSIMD_FORCE_INLINE tfScalar tf::Matrix3x3::tdotz ( const Vector3 &  v) const [inline]

Definition at line 428 of file Matrix3x3.h.

Definition at line 618 of file Matrix3x3.h.

Return the transpose of the matrix.

Definition at line 575 of file Matrix3x3.h.

Definition at line 603 of file Matrix3x3.h.


Member Data Documentation

Vector3 tf::Matrix3x3::m_el[3] [private]

Data storage for the matrix, each vector is a row of the matrix.

Definition at line 36 of file Matrix3x3.h.

Definition at line 309 of file Matrix3x3.h.

Definition at line 309 of file Matrix3x3.h.

Initial value:
 1) const
        {
                getEulerYPR(yaw, pitch, roll, solution_number);
        }

Definition at line 309 of file Matrix3x3.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


tf
Author(s): Tully Foote, Eitan Marder-Eppstein, Wim Meeussen
autogenerated on Thu Aug 22 2013 11:29:02