MIRA
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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,
HDim
MatrixType
 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

typedef T Type

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

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

typedef TRotation RotationType

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

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

Member Enumeration Documentation

anonymous enum
Enumerator
Dim 

dimension of the Eucleadian space

HDim 

size of the corresponding homogeneous space

Constructor & Destructor Documentation

EIGEN_MAKE_ALIGNED_OPERATOR_NEW RigidTransformBase ( TranslationType  translation,
RotationType  rotation 
)
inline

Member Function Documentation

TransformDerived inverse ( ) const
inline

Computes and returns the inverse transform of this.

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
TransformDerived& operator*= ( const RigidTransformBase< T, D, TRotation, TransformDerived > &  other)
inline

Concatenates this transform with an other transform.

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 > ( )
inline

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

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.

TransformDerived* This ( )
inlineprotected

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

const TransformDerived* This ( ) const
inlineprotected

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

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

Friends And Related Function Documentation

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

Concatenates the two transformations.

Member Data Documentation

Vector that describes the translational part of the transform.

The rotational part of the transform.


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