Public Member Functions | Static Public Member Functions | Private Attributes
tf::Transform Class Reference

The Transform class supports rigid transforms with only translation and rotation and no scaling/shear. It can be used in combination with Vector3, Quaternion and Matrix3x3 linear algebra classes. More...

#include <Transform.h>

Inheritance diagram for tf::Transform:
Inheritance graph
[legend]

List of all members.

Public Member Functions

void deSerialize (const struct TransformData &dataIn)
void deSerializeDouble (const struct TransformDoubleData &dataIn)
void deSerializeFloat (const struct TransformFloatData &dataIn)
TFSIMD_FORCE_INLINE Matrix3x3getBasis ()
 Return the basis matrix for the rotation.
TFSIMD_FORCE_INLINE const
Matrix3x3
getBasis () const
 Return the basis matrix for the rotation.
void getOpenGLMatrix (tfScalar *m) const
 Fill an array representation.
TFSIMD_FORCE_INLINE Vector3 & getOrigin ()
 Return the origin vector translation.
TFSIMD_FORCE_INLINE const Vector3 & getOrigin () const
 Return the origin vector translation.
Quaternion getRotation () const
 Return a quaternion representing the rotation.
Transform inverse () const
 Return the inverse of this transform.
Transform inverseTimes (const Transform &t) const
 Return the inverse of this transform times the other transform.
TFSIMD_FORCE_INLINE Vector3 invXform (const Vector3 &inVec) const
TFSIMD_FORCE_INLINE void mult (const Transform &t1, const Transform &t2)
 Set the current transform as the value of the product of two transforms.
TFSIMD_FORCE_INLINE Vector3 operator() (const Vector3 &x) const
 Return the transform of the vector.
TFSIMD_FORCE_INLINE Vector3 operator* (const Vector3 &x) const
 Return the transform of the vector.
TFSIMD_FORCE_INLINE Quaternion operator* (const Quaternion &q) const
 Return the transform of the Quaternion.
Transform operator* (const Transform &t) const
 Return the product of this transform and the other.
Transformoperator*= (const Transform &t)
 Multiply this Transform by another(this = this * another)
TFSIMD_FORCE_INLINE Transformoperator= (const Transform &other)
 Assignment Operator.
void serialize (struct TransformData &dataOut) const
void serializeFloat (struct TransformFloatData &dataOut) const
TFSIMD_FORCE_INLINE void setBasis (const Matrix3x3 &basis)
 Set the rotational element by Matrix3x3.
void setFromOpenGLMatrix (const tfScalar *m)
 Set from an array.
void setIdentity ()
 Set this transformation to the identity.
TFSIMD_FORCE_INLINE void setOrigin (const Vector3 &origin)
 Set the translational element.
TFSIMD_FORCE_INLINE void setRotation (const Quaternion &q)
 Set the rotational element by Quaternion.
 Transform ()
 No initialization constructor.
TFSIMD_FORCE_INLINE Transform (const Quaternion &q, const Vector3 &c=Vector3(tfScalar(0), tfScalar(0), tfScalar(0)))
 Constructor from Quaternion (optional Vector3 )
TFSIMD_FORCE_INLINE Transform (const Matrix3x3 &b, const Vector3 &c=Vector3(tfScalar(0), tfScalar(0), tfScalar(0)))
 Constructor from Matrix3x3 (optional Vector3)
TFSIMD_FORCE_INLINE Transform (const Transform &other)
 Copy constructor.

Static Public Member Functions

static const TransformgetIdentity ()
 Return an identity transform.

Private Attributes

Matrix3x3 m_basis
 Storage for the rotation.
Vector3 m_origin
 Storage for the translation.

Detailed Description

The Transform class supports rigid transforms with only translation and rotation and no scaling/shear. It can be used in combination with Vector3, Quaternion and Matrix3x3 linear algebra classes.

Definition at line 31 of file Transform.h.


Constructor & Destructor Documentation

No initialization constructor.

Definition at line 41 of file Transform.h.

TFSIMD_FORCE_INLINE tf::Transform::Transform ( const Quaternion q,
const Vector3 &  c = Vector3(tfScalar(0), tfScalar(0), tfScalar(0)) 
) [inline, explicit]

Constructor from Quaternion (optional Vector3 )

Parameters:
qRotation from quaternion
cTranslation from Vector (default 0,0,0)

Definition at line 45 of file Transform.h.

TFSIMD_FORCE_INLINE tf::Transform::Transform ( const Matrix3x3 b,
const Vector3 &  c = Vector3(tfScalar(0), tfScalar(0), tfScalar(0)) 
) [inline, explicit]

Constructor from Matrix3x3 (optional Vector3)

Parameters:
bRotation from Matrix
cTranslation from Vector default (0,0,0)

Definition at line 54 of file Transform.h.

Copy constructor.

Definition at line 60 of file Transform.h.


Member Function Documentation

void tf::Transform::deSerialize ( const struct TransformData dataIn)
void tf::Transform::deSerializeDouble ( const struct TransformDoubleData dataIn)
void tf::Transform::deSerializeFloat ( const struct TransformFloatData dataIn)

Return the basis matrix for the rotation.

Definition at line 110 of file Transform.h.

Return the basis matrix for the rotation.

Definition at line 112 of file Transform.h.

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

Return an identity transform.

Definition at line 201 of file Transform.h.

void tf::Transform::getOpenGLMatrix ( tfScalar m) const [inline]

Fill an array representation.

Parameters:
mA pointer to a 15 element array (12 rotation(row major padded on the right by 1), and 3 translation

Definition at line 137 of file Transform.h.

Return the origin vector translation.

Definition at line 115 of file Transform.h.

TFSIMD_FORCE_INLINE const Vector3& tf::Transform::getOrigin ( ) const [inline]

Return the origin vector translation.

Definition at line 117 of file Transform.h.

Return a quaternion representing the rotation.

Definition at line 120 of file Transform.h.

Transform tf::Transform::inverse ( ) const [inline]

Return the inverse of this transform.

Definition at line 186 of file Transform.h.

Return the inverse of this transform times the other transform.

Parameters:
tThe other transform return this.inverse() * the other

Definition at line 228 of file Transform.h.

TFSIMD_FORCE_INLINE Vector3 tf::Transform::invXform ( const Vector3 &  inVec) const

Definition at line 221 of file Transform.h.

TFSIMD_FORCE_INLINE void tf::Transform::mult ( const Transform t1,
const Transform t2 
) [inline]

Set the current transform as the value of the product of two transforms.

Parameters:
t1Transform 1
t2Transform 2 This = Transform1 * Transform2

Definition at line 77 of file Transform.h.

TFSIMD_FORCE_INLINE Vector3 tf::Transform::operator() ( const Vector3 &  x) const [inline]

Return the transform of the vector.

Definition at line 90 of file Transform.h.

TFSIMD_FORCE_INLINE Vector3 tf::Transform::operator* ( const Vector3 &  x) const [inline]

Return the transform of the vector.

Definition at line 98 of file Transform.h.

TFSIMD_FORCE_INLINE Quaternion tf::Transform::operator* ( const Quaternion q) const [inline]

Return the transform of the Quaternion.

Definition at line 104 of file Transform.h.

TFSIMD_FORCE_INLINE Transform tf::Transform::operator* ( const Transform t) const

Return the product of this transform and the other.

Definition at line 236 of file Transform.h.

Transform& tf::Transform::operator*= ( const Transform t) [inline]

Multiply this Transform by another(this = this * another)

Parameters:
tThe other transform

Definition at line 178 of file Transform.h.

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

Assignment Operator.

Definition at line 66 of file Transform.h.

Definition at line 265 of file Transform.h.

Definition at line 271 of file Transform.h.

TFSIMD_FORCE_INLINE void tf::Transform::setBasis ( const Matrix3x3 basis) [inline]

Set the rotational element by Matrix3x3.

Definition at line 157 of file Transform.h.

void tf::Transform::setFromOpenGLMatrix ( const tfScalar m) [inline]

Set from an array.

Parameters:
mA pointer to a 15 element array (12 rotation(row major padded on the right by 1), and 3 translation

Definition at line 129 of file Transform.h.

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

Set this transformation to the identity.

Definition at line 170 of file Transform.h.

TFSIMD_FORCE_INLINE void tf::Transform::setOrigin ( const Vector3 &  origin) [inline]

Set the translational element.

Parameters:
originThe vector to set the translation to

Definition at line 148 of file Transform.h.

Set the rotational element by Quaternion.

Definition at line 163 of file Transform.h.


Member Data Documentation

Storage for the rotation.

Definition at line 34 of file Transform.h.

Vector3 tf::Transform::m_origin [private]

Storage for the translation.

Definition at line 36 of file Transform.h.


The documentation for this class was generated from the following file:


tf
Author(s): Tully Foote, Eitan Marder-Eppstein, Wim Meeussen
autogenerated on Thu Aug 27 2015 13:02:09