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

Public Member Functions

void deSerialize (const struct TransformData &dataIn)
 
void deSerializeDouble (const struct TransformDoubleData &dataIn)
 
void deSerializeFloat (const struct TransformFloatData &dataIn)
 
TF2SIMD_FORCE_INLINE Matrix3x3getBasis ()
 Return the basis matrix for the rotation. More...
 
TF2SIMD_FORCE_INLINE const Matrix3x3getBasis () const
 Return the basis matrix for the rotation. More...
 
void getOpenGLMatrix (tf2Scalar *m) const
 Fill an array representation. More...
 
TF2SIMD_FORCE_INLINE Vector3 & getOrigin ()
 Return the origin vector translation. More...
 
TF2SIMD_FORCE_INLINE const Vector3 & getOrigin () 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...
 
TF2SIMD_FORCE_INLINE Vector3 invXform (const Vector3 &inVec) const
 
TF2SIMD_FORCE_INLINE void mult (const Transform &t1, const Transform &t2)
 Set the current transform as the value of the product of two transforms. More...
 
TF2SIMD_FORCE_INLINE Vector3 operator() (const Vector3 &x) const
 Return the transform of the vector. More...
 
TF2SIMD_FORCE_INLINE Vector3 operator* (const Vector3 &x) const
 Return the transform of the vector. More...
 
TF2SIMD_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...
 
Transformoperator*= (const Transform &t)
 Multiply this Transform by another(this = this * another) More...
 
TF2SIMD_FORCE_INLINE Transformoperator= (const Transform &other)
 Assignment Operator. More...
 
void serialize (struct TransformData &dataOut) const
 
void serializeFloat (struct TransformFloatData &dataOut) const
 
TF2SIMD_FORCE_INLINE void setBasis (const Matrix3x3 &basis)
 Set the rotational element by Matrix3x3. More...
 
void setFromOpenGLMatrix (const tf2Scalar *m)
 Set from an array. More...
 
void setIdentity ()
 Set this transformation to the identity. More...
 
TF2SIMD_FORCE_INLINE void setOrigin (const Vector3 &origin)
 Set the translational element. More...
 
TF2SIMD_FORCE_INLINE void setRotation (const Quaternion &q)
 Set the rotational element by Quaternion. More...
 
 Transform ()
 No initialization constructor. More...
 
TF2SIMD_FORCE_INLINE Transform (const Quaternion &q, const Vector3 &c=Vector3(tf2Scalar(0), tf2Scalar(0), tf2Scalar(0)))
 Constructor from Quaternion (optional Vector3 ) More...
 
TF2SIMD_FORCE_INLINE Transform (const Matrix3x3 &b, const Vector3 &c=Vector3(tf2Scalar(0), tf2Scalar(0), tf2Scalar(0)))
 Constructor from Matrix3x3 (optional Vector3) More...
 
TF2SIMD_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 32 of file Transform.h.

Constructor & Destructor Documentation

◆ Transform() [1/4]

tf2::Transform::Transform ( )
inline

No initialization constructor.

Definition at line 42 of file Transform.h.

◆ Transform() [2/4]

TF2SIMD_FORCE_INLINE tf2::Transform::Transform ( const Quaternion q,
const Vector3 &  c = Vector3(tf2Scalar(0), tf2Scalar(0), tf2Scalar(0)) 
)
inlineexplicit

Constructor from Quaternion (optional Vector3 )

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

Definition at line 46 of file Transform.h.

◆ Transform() [3/4]

TF2SIMD_FORCE_INLINE tf2::Transform::Transform ( const Matrix3x3 b,
const Vector3 &  c = Vector3(tf2Scalar(0), tf2Scalar(0), tf2Scalar(0)) 
)
inlineexplicit

Constructor from Matrix3x3 (optional Vector3)

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

Definition at line 55 of file Transform.h.

◆ Transform() [4/4]

TF2SIMD_FORCE_INLINE tf2::Transform::Transform ( const Transform other)
inline

Copy constructor.

Definition at line 61 of file Transform.h.

Member Function Documentation

◆ deSerialize()

TF2SIMD_FORCE_INLINE void tf2::Transform::deSerialize ( const struct TransformData dataIn)

Definition at line 279 of file Transform.h.

◆ deSerializeDouble()

TF2SIMD_FORCE_INLINE void tf2::Transform::deSerializeDouble ( const struct TransformDoubleData dataIn)

Definition at line 291 of file Transform.h.

◆ deSerializeFloat()

TF2SIMD_FORCE_INLINE void tf2::Transform::deSerializeFloat ( const struct TransformFloatData dataIn)

Definition at line 285 of file Transform.h.

◆ getBasis() [1/2]

TF2SIMD_FORCE_INLINE Matrix3x3& tf2::Transform::getBasis ( )
inline

Return the basis matrix for the rotation.

Definition at line 111 of file Transform.h.

◆ getBasis() [2/2]

TF2SIMD_FORCE_INLINE const Matrix3x3& tf2::Transform::getBasis ( ) const
inline

Return the basis matrix for the rotation.

Definition at line 113 of file Transform.h.

◆ getIdentity()

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

Return an identity transform.

Definition at line 202 of file Transform.h.

◆ getOpenGLMatrix()

void tf2::Transform::getOpenGLMatrix ( tf2Scalar 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 138 of file Transform.h.

◆ getOrigin() [1/2]

TF2SIMD_FORCE_INLINE Vector3& tf2::Transform::getOrigin ( )
inline

Return the origin vector translation.

Definition at line 116 of file Transform.h.

◆ getOrigin() [2/2]

TF2SIMD_FORCE_INLINE const Vector3& tf2::Transform::getOrigin ( ) const
inline

Return the origin vector translation.

Definition at line 118 of file Transform.h.

◆ getRotation()

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

Return a quaternion representing the rotation.

Definition at line 121 of file Transform.h.

◆ inverse()

Transform tf2::Transform::inverse ( ) const
inline

Return the inverse of this transform.

Definition at line 187 of file Transform.h.

◆ inverseTimes()

TF2SIMD_FORCE_INLINE Transform tf2::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 229 of file Transform.h.

◆ invXform()

TF2SIMD_FORCE_INLINE Vector3 tf2::Transform::invXform ( const Vector3 &  inVec) const

Definition at line 222 of file Transform.h.

◆ mult()

TF2SIMD_FORCE_INLINE void tf2::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 78 of file Transform.h.

◆ operator()()

TF2SIMD_FORCE_INLINE Vector3 tf2::Transform::operator() ( const Vector3 &  x) const
inline

Return the transform of the vector.

Definition at line 91 of file Transform.h.

◆ operator*() [1/3]

TF2SIMD_FORCE_INLINE Vector3 tf2::Transform::operator* ( const Vector3 &  x) const
inline

Return the transform of the vector.

Definition at line 99 of file Transform.h.

◆ operator*() [2/3]

TF2SIMD_FORCE_INLINE Quaternion tf2::Transform::operator* ( const Quaternion q) const
inline

Return the transform of the Quaternion.

Definition at line 105 of file Transform.h.

◆ operator*() [3/3]

TF2SIMD_FORCE_INLINE Transform tf2::Transform::operator* ( const Transform t) const

Return the product of this transform and the other.

Definition at line 237 of file Transform.h.

◆ operator*=()

Transform& tf2::Transform::operator*= ( const Transform t)
inline

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

Parameters
tThe other transform

Definition at line 179 of file Transform.h.

◆ operator=()

TF2SIMD_FORCE_INLINE Transform& tf2::Transform::operator= ( const Transform other)
inline

Assignment Operator.

Definition at line 67 of file Transform.h.

◆ serialize()

TF2SIMD_FORCE_INLINE void tf2::Transform::serialize ( struct TransformData dataOut) const

Definition at line 266 of file Transform.h.

◆ serializeFloat()

TF2SIMD_FORCE_INLINE void tf2::Transform::serializeFloat ( struct TransformFloatData dataOut) const

Definition at line 272 of file Transform.h.

◆ setBasis()

TF2SIMD_FORCE_INLINE void tf2::Transform::setBasis ( const Matrix3x3 basis)
inline

Set the rotational element by Matrix3x3.

Definition at line 158 of file Transform.h.

◆ setFromOpenGLMatrix()

void tf2::Transform::setFromOpenGLMatrix ( const tf2Scalar 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 130 of file Transform.h.

◆ setIdentity()

void tf2::Transform::setIdentity ( )
inline

Set this transformation to the identity.

Definition at line 171 of file Transform.h.

◆ setOrigin()

TF2SIMD_FORCE_INLINE void tf2::Transform::setOrigin ( const Vector3 &  origin)
inline

Set the translational element.

Parameters
originThe vector to set the translation to

Definition at line 149 of file Transform.h.

◆ setRotation()

TF2SIMD_FORCE_INLINE void tf2::Transform::setRotation ( const Quaternion q)
inline

Set the rotational element by Quaternion.

Definition at line 164 of file Transform.h.

Member Data Documentation

◆ m_basis

Matrix3x3 tf2::Transform::m_basis
private

Storage for the rotation.

Definition at line 35 of file Transform.h.

◆ m_origin

Vector3 tf2::Transform::m_origin
private

Storage for the translation.

Definition at line 37 of file Transform.h.


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


tf2
Author(s): Tully Foote, Eitan Marder-Eppstein, Wim Meeussen
autogenerated on Mon Jun 27 2022 02:43:06