MIRA
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | Friends | List of all members
RigidTransformBase< T, D, TRotation, TransformDerived > Class Template Reference

Implementation of RigidTransforms with different dimensionality D. More...

#include <transform/RigidTransform.h>

Public Types

enum  { Dim = D, HDim = D+1 }
 
typedef T Type
 The used floating point type (float, double, long double) More...
 
typedef Eigen::Matrix< T, D, 1 > TranslationType
 Vector type used to represent the translational part (dimension depends on dimensionality of transform). More...
 
typedef TRotation RotationType
 Type used to represent the rotational part (Eigen::Rotation2D for 2D transforms, Eigen::Quaternion for 3D transforms) More...
 
typedef Eigen::Matrix< T, HDim, HDimMatrixType
 Type of the matrix that can describe the full affine transform in homogeneous space. More...
 

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW RigidTransformBase (TranslationType translation, RotationType rotation)
 
TransformDerived inverse () const
 Computes and returns the inverse transform of this. More...
 
bool isApprox (const RigidTransformBase &other, T prec=std::numeric_limits< T >::epsilon()) const
 Returns true if this is approximately equal to other, within the precision determined by prec. More...
 
TransformDerived & operator*= (const RigidTransformBase &other)
 Concatenates this transform with an other transform. More...
 
template<typename OtherDerived >
ei_rigidtransform_product_impl< D, TransformDerived, OtherDerived >::TResult operator* (const Eigen::MatrixBase< OtherDerived > &other) const
 Apply the transformation to an Eigen matrix. More...
 
 operator Eigen::Transform< T, D, Eigen::Isometry > ()
 Cast operator that casts the rigid transform into a generic Eigen::Transform object. More...
 
MatrixType getMatrix () const
 Computes and returns the matrix that describes the affine transformation in homogeneous space. More...
 

Public Attributes

TranslationType t
 Vector that describes the translational part of the transform. More...
 
RotationType r
 The rotational part of the transform. More...
 

Protected Member Functions

TransformDerived * This ()
 casts this to the actual derived type (see Curiously recurring template pattern) More...
 
const TransformDerived * This () const
 casts this to the actual derived type (see Curiously recurring template pattern) More...
 

Static Protected Member Functions

static TransformDerived mul (const RigidTransformBase &a, const RigidTransformBase &b)
 

Friends

TransformDerived operator* (const RigidTransformBase &a, const RigidTransformBase &b)
 Concatenates the two transformations. More...
 

Detailed Description

template<typename T, int D, typename TRotation, typename TransformDerived>
class mira::RigidTransformBase< T, D, TRotation, TransformDerived >

Implementation of RigidTransforms with different dimensionality D.

Member Typedef Documentation

◆ Type

typedef T Type

The used floating point type (float, double, long double)

◆ TranslationType

Vector type used to represent the translational part (dimension depends on dimensionality of transform).

◆ RotationType

typedef TRotation RotationType

Type used to represent the rotational part (Eigen::Rotation2D for 2D transforms, Eigen::Quaternion for 3D transforms)

◆ MatrixType

Type of the matrix that can describe the full affine transform in homogeneous space.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
Dim 

dimension of the Eucleadian space

HDim 

size of the corresponding homogeneous space

Constructor & Destructor Documentation

◆ RigidTransformBase()

EIGEN_MAKE_ALIGNED_OPERATOR_NEW RigidTransformBase ( TranslationType  translation,
RotationType  rotation 
)
inline

Member Function Documentation

◆ inverse()

TransformDerived inverse ( void  ) const
inline

Computes and returns the inverse transform of this.

◆ isApprox()

bool isApprox ( const RigidTransformBase< T, D, TRotation, TransformDerived > &  other,
prec = std::numeric_limits<T>::epsilon() 
) const
inline

Returns true if this is approximately equal to other, within the precision determined by prec.

Returns
true if approximately equal, false otherwise

◆ operator*=()

TransformDerived& operator*= ( const RigidTransformBase< T, D, TRotation, TransformDerived > &  other)
inline

Concatenates this transform with an other transform.

◆ operator*()

ei_rigidtransform_product_impl<D, TransformDerived, OtherDerived>::TResult operator* ( const Eigen::MatrixBase< OtherDerived > &  other) const
inline

Apply the transformation to an Eigen matrix.

The matrix must be a fixed matrix of the size Dx1 or a dynamic matrix of the same size.

◆ operator Eigen::Transform< T, D, Eigen::Isometry >()

operator Eigen::Transform< T, D, Eigen::Isometry > ( )
inline

Cast operator that casts the rigid transform into a generic Eigen::Transform object.

◆ getMatrix()

MatrixType getMatrix ( ) const
inline

Computes and returns the matrix that describes the affine transformation in homogeneous space.

The dimensions of the matrix is 3x3 for 2D transformations and 4x4 for 3D transformations.

◆ This() [1/2]

TransformDerived* This ( )
inlineprotected

casts this to the actual derived type (see Curiously recurring template pattern)

◆ This() [2/2]

const TransformDerived* This ( ) const
inlineprotected

casts this to the actual derived type (see Curiously recurring template pattern)

◆ mul()

static TransformDerived mul ( const RigidTransformBase< T, D, TRotation, TransformDerived > &  a,
const RigidTransformBase< T, D, TRotation, TransformDerived > &  b 
)
inlinestaticprotected

Friends And Related Function Documentation

◆ operator*

TransformDerived operator* ( const RigidTransformBase< T, D, TRotation, TransformDerived > &  a,
const RigidTransformBase< T, D, TRotation, TransformDerived > &  b 
)
friend

Concatenates the two transformations.

Member Data Documentation

◆ t

Vector that describes the translational part of the transform.

◆ r

The rotational part of the transform.


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