Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
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]

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. More...
 
const TFSIMD_FORCE_INLINE Matrix3x3getBasis () const
 Return the basis matrix for the rotation. More...
 
void getOpenGLMatrix (tfScalar *m) const
 Fill an array representation. More...
 
TFSIMD_FORCE_INLINE Vector3getOrigin ()
 Return the origin vector translation. More...
 
const TFSIMD_FORCE_INLINE Vector3getOrigin () const
 Return the origin vector translation. More...
 
Quaternion getRotation () const
 Return a quaternion representing the rotation. More...
 
Transform inverse () const
 Return the inverse of this transform. More...
 
Transform inverseTimes (const Transform &t) const
 Return the inverse of this transform times the other transform. More...
 
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. More...
 
TFSIMD_FORCE_INLINE Vector3 operator() (const Vector3 &x) const
 Return the transform of the vector. More...
 
TFSIMD_FORCE_INLINE Quaternion operator* (const Quaternion &q) const
 Return the transform of the Quaternion. More...
 
Transform operator* (const Transform &t) const
 Return the product of this transform and the other. More...
 
TFSIMD_FORCE_INLINE Vector3 operator* (const Vector3 &x) const
 Return the transform of the vector. More...
 
Transformoperator*= (const Transform &t)
 Multiply this Transform by another(this = this * another) More...
 
TFSIMD_FORCE_INLINE Transformoperator= (const Transform &other)
 Assignment Operator. More...
 
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. More...
 
void setFromOpenGLMatrix (const tfScalar *m)
 Set from an array. More...
 
void setIdentity ()
 Set this transformation to the identity. More...
 
TFSIMD_FORCE_INLINE void setOrigin (const Vector3 &origin)
 Set the translational element. More...
 
TFSIMD_FORCE_INLINE void setRotation (const Quaternion &q)
 Set the rotational element by Quaternion. More...
 
 Transform ()
 No initialization constructor. More...
 
TFSIMD_FORCE_INLINE Transform (const Matrix3x3 &b, const Vector3 &c=Vector3(tfScalar(0), tfScalar(0), tfScalar(0)))
 Constructor from Matrix3x3 (optional Vector3) More...
 
TFSIMD_FORCE_INLINE Transform (const Quaternion &q, const Vector3 &c=Vector3(tfScalar(0), tfScalar(0), tfScalar(0)))
 Constructor from Quaternion (optional Vector3 ) More...
 
TFSIMD_FORCE_INLINE Transform (const Transform &other)
 Copy constructor. More...
 

Static Public Member Functions

static const TransformgetIdentity ()
 Return an identity transform. More...
 

Private Attributes

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

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

◆ Transform() [1/4]

tf::Transform::Transform ( )
inline

No initialization constructor.

Definition at line 41 of file Transform.h.

◆ Transform() [2/4]

TFSIMD_FORCE_INLINE tf::Transform::Transform ( const Quaternion q,
const Vector3 c = Vector3(tfScalar(0), tfScalar(0), tfScalar(0)) 
)
inlineexplicit

Constructor from Quaternion (optional Vector3 )

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

Definition at line 45 of file Transform.h.

◆ Transform() [3/4]

TFSIMD_FORCE_INLINE tf::Transform::Transform ( const Matrix3x3 b,
const Vector3 c = Vector3(tfScalar(0), tfScalar(0), tfScalar(0)) 
)
inlineexplicit

Constructor from Matrix3x3 (optional Vector3)

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

Definition at line 54 of file Transform.h.

◆ Transform() [4/4]

TFSIMD_FORCE_INLINE tf::Transform::Transform ( const Transform other)
inline

Copy constructor.

Definition at line 60 of file Transform.h.

Member Function Documentation

◆ deSerialize()

void tf::Transform::deSerialize ( const struct TransformData dataIn)

◆ deSerializeDouble()

void tf::Transform::deSerializeDouble ( const struct TransformDoubleData dataIn)

◆ deSerializeFloat()

void tf::Transform::deSerializeFloat ( const struct TransformFloatData dataIn)

◆ getBasis() [1/2]

TFSIMD_FORCE_INLINE Matrix3x3& tf::Transform::getBasis ( )
inline

Return the basis matrix for the rotation.

Definition at line 110 of file Transform.h.

◆ getBasis() [2/2]

const TFSIMD_FORCE_INLINE Matrix3x3& tf::Transform::getBasis ( ) const
inline

Return the basis matrix for the rotation.

Definition at line 112 of file Transform.h.

◆ getIdentity()

static const Transform& tf::Transform::getIdentity ( )
inlinestatic

Return an identity transform.

Definition at line 201 of file Transform.h.

◆ getOpenGLMatrix()

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.

◆ getOrigin() [1/2]

TFSIMD_FORCE_INLINE Vector3& tf::Transform::getOrigin ( )
inline

Return the origin vector translation.

Definition at line 115 of file Transform.h.

◆ getOrigin() [2/2]

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

Return the origin vector translation.

Definition at line 117 of file Transform.h.

◆ getRotation()

Quaternion tf::Transform::getRotation ( ) const
inline

Return a quaternion representing the rotation.

Definition at line 120 of file Transform.h.

◆ inverse()

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

Return the inverse of this transform.

Definition at line 186 of file Transform.h.

◆ inverseTimes()

TFSIMD_FORCE_INLINE Transform tf::Transform::inverseTimes ( const Transform t) const

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.

◆ invXform()

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

Definition at line 221 of file Transform.h.

◆ mult()

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.

◆ operator()()

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.

◆ operator*() [1/3]

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.

◆ operator*() [2/3]

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.

◆ operator*() [3/3]

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.

◆ operator*=()

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.

◆ operator=()

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

Assignment Operator.

Definition at line 66 of file Transform.h.

◆ serialize()

TFSIMD_FORCE_INLINE void tf::Transform::serialize ( struct TransformData dataOut) const

Definition at line 265 of file Transform.h.

◆ serializeFloat()

TFSIMD_FORCE_INLINE void tf::Transform::serializeFloat ( struct TransformFloatData dataOut) const

Definition at line 271 of file Transform.h.

◆ setBasis()

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.

◆ setFromOpenGLMatrix()

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.

◆ setIdentity()

void tf::Transform::setIdentity ( )
inline

Set this transformation to the identity.

Definition at line 170 of file Transform.h.

◆ setOrigin()

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.

◆ setRotation()

TFSIMD_FORCE_INLINE void tf::Transform::setRotation ( const Quaternion q)
inline

Set the rotational element by Quaternion.

Definition at line 163 of file Transform.h.

Member Data Documentation

◆ m_basis

Matrix3x3 tf::Transform::m_basis
private

Storage for the rotation.

Definition at line 34 of file Transform.h.

◆ m_origin

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 Sat Aug 19 2023 02:38:08