cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
vctRodriguezRotation3Base< _containerType > Class Template Reference

Define a rotation based on the rodriguez representation for a space of dimension 3. More...

#include <vctForwardDeclarations.h>

Inheritance diagram for vctRodriguezRotation3Base< _containerType >:

Public Types

enum  { DIMENSION = 3 }
 
typedef _containerType BaseType
 
typedef _containerType ContainerType
 
typedef
vctRodriguezRotation3Base
< ContainerType
ThisType
 
typedef cmnTypeTraits< value_type > TypeTraits
 

Public Member Functions

 VCT_CONTAINER_TRAITS_TYPEDEFS (typename ContainerType::value_type)
 
 vctRodriguezRotation3Base ()
 
template<stride_type __stride, class __dataPtrType >
 vctRodriguezRotation3Base (const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &axis)
 
 vctRodriguezRotation3Base (value_type x, value_type y, value_type z)
 
template<stride_type __stride, class __dataPtrType >
ThisTypeFrom (const vctFixedSizeConstVectorBase< 3, __stride, value_type, __dataPtrType > &vector) throw (std::runtime_error)
 
ThisTypeFrom (value_type x, value_type y, value_type z) throw (std::runtime_error)
 
template<class __vectorOwnerType >
ThisTypeFrom (const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &vector) throw (std::runtime_error)
 
template<class __containerType >
ThisTypeFrom (const vctQuaternionRotation3Base< __containerType > &quaternionRotation) throw (std::runtime_error)
 
template<class __containerType >
ThisTypeFrom (const vctMatrixRotation3Base< __containerType > &matrixRotation)
 
ThisTypeFrom (const vctAxisAngleRotation3< value_type > &axisAngleRotation)
 
template<stride_type __stride, class __dataPtrType >
ThisTypeFromNormalized (const vctFixedSizeConstVectorBase< 3, __stride, value_type, __dataPtrType > &vector)
 
ThisTypeFromNormalized (value_type x, value_type y, value_type z)
 
template<class __vectorOwnerType >
ThisTypeFromNormalized (const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &vector) throw (std::runtime_error)
 
template<class __containerType >
ThisTypeFromNormalized (const vctQuaternionRotation3Base< __containerType > &quaternionRotation)
 
template<class __containerType >
ThisTypeFromNormalized (const vctMatrixRotation3Base< __containerType > &matrixRotation)
 
ThisTypeFromNormalized (const vctAxisAngleRotation3< value_type > &axisAngleRotation)
 
template<stride_type __stride, class __dataPtrType >
ThisTypeFromRaw (const vctFixedSizeConstVectorBase< 3, __stride, value_type, __dataPtrType > &vector)
 
ThisTypeFromRaw (value_type x, value_type y, value_type z)
 
template<class __vectorOwnerType >
ThisTypeFromRaw (const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &vector)
 
template<class __containerType >
ThisTypeFromRaw (const vctQuaternionRotation3Base< __containerType > &quaternionRotation)
 
template<class __containerType >
ThisTypeFromRaw (const vctMatrixRotation3Base< __containerType > &matrixRotation)
 
ThisTypeFromRaw (const vctAxisAngleRotation3< value_type > &axisAngleRotation)
 
ThisTypeInverseSelf (void)
 
ThisTypeInverseOf (const ThisType &otherRotation)
 
ThisType Inverse (void) const
 
ThisTypeNormalizedSelf (void)
 
ThisTypeNormalizedOf (const ThisType &otherRotation)
 
ThisType Normalized (void) const
 
bool IsNormalized (value_type CMN_UNUSED(tolerance)=TypeTraits::Tolerance()) const
 
bool AlmostEquivalent (const ThisType &other, value_type tolerance=TypeTraits::Tolerance()) const
 

Static Public Member Functions

static CISST_EXPORT const
ThisType
Identity ()
 

Protected Member Functions

void ThrowUnlessIsNormalized (void) const throw (std::runtime_error)
 
template<class _inputType >
void ThrowUnlessIsNormalized (const _inputType &input) const throw (std::runtime_error)
 

Detailed Description

template<class _containerType>
class vctRodriguezRotation3Base< _containerType >

Define a rotation based on the rodriguez representation for a space of dimension 3.

This representation is based on a vector. The direction of the vector determines the axis of rotation and its norm defines the amplitude of the rotation.

This class is templated by the element type.

Parameters
_elementTypeThe type of elements.
See Also
vctQuaternion

Member Typedef Documentation

template<class _containerType>
typedef _containerType vctRodriguezRotation3Base< _containerType >::BaseType
template<class _containerType>
typedef _containerType vctRodriguezRotation3Base< _containerType >::ContainerType
template<class _containerType>
typedef vctRodriguezRotation3Base<ContainerType> vctRodriguezRotation3Base< _containerType >::ThisType
template<class _containerType>
typedef cmnTypeTraits<value_type> vctRodriguezRotation3Base< _containerType >::TypeTraits

Member Enumeration Documentation

template<class _containerType>
anonymous enum
Enumerator
DIMENSION 

Constructor & Destructor Documentation

template<class _containerType>
vctRodriguezRotation3Base< _containerType >::vctRodriguezRotation3Base ( )
inline

Default constructor. Sets the rotation to (0, 0, 0).

template<class _containerType>
template<stride_type __stride, class __dataPtrType >
vctRodriguezRotation3Base< _containerType >::vctRodriguezRotation3Base ( const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &  axis)
inline

Constructor from a 3D vector.

Parameters
axisA vector of size 3.
template<class _containerType>
vctRodriguezRotation3Base< _containerType >::vctRodriguezRotation3Base ( value_type  x,
value_type  y,
value_type  z 
)
inline

Constructor from three elements: x, y, and z

Member Function Documentation

template<class _containerType>
bool vctRodriguezRotation3Base< _containerType >::AlmostEquivalent ( const ThisType other,
value_type  tolerance = TypeTraits::Tolerance() 
) const
inline

Return true if this rotation is equivalent to the other rotation, up to the given tolerance. Rotations may be effectively equivalent if their unit axis are almost equal and the angles are equal modulo 2 PI.

The tolerance factor is used to compare each of the elements of the difference vector.

template<class _containerType>
template<stride_type __stride, class __dataPtrType >
ThisType& vctRodriguezRotation3Base< _containerType >::From ( const vctFixedSizeConstVectorBase< 3, __stride, value_type, __dataPtrType > &  vector)
throw (std::runtime_error
)
inline
template<class _containerType>
ThisType& vctRodriguezRotation3Base< _containerType >::From ( value_type  x,
value_type  y,
value_type  z 
)
throw (std::runtime_error
)
inline
template<class _containerType>
template<class __vectorOwnerType >
ThisType& vctRodriguezRotation3Base< _containerType >::From ( const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &  vector)
throw (std::runtime_error
)
inline
template<class _containerType>
template<class __containerType >
ThisType& vctRodriguezRotation3Base< _containerType >::From ( const vctQuaternionRotation3Base< __containerType > &  quaternionRotation)
throw (std::runtime_error
)
inline
template<class _containerType>
template<class __containerType >
ThisType& vctRodriguezRotation3Base< _containerType >::From ( const vctMatrixRotation3Base< __containerType > &  matrixRotation)
inline
template<class _containerType>
ThisType& vctRodriguezRotation3Base< _containerType >::From ( const vctAxisAngleRotation3< value_type > &  axisAngleRotation)
inline
template<class _containerType>
template<stride_type __stride, class __dataPtrType >
ThisType& vctRodriguezRotation3Base< _containerType >::FromNormalized ( const vctFixedSizeConstVectorBase< 3, __stride, value_type, __dataPtrType > &  vector)
inline
template<class _containerType>
ThisType& vctRodriguezRotation3Base< _containerType >::FromNormalized ( value_type  x,
value_type  y,
value_type  z 
)
inline
template<class _containerType>
template<class __vectorOwnerType >
ThisType& vctRodriguezRotation3Base< _containerType >::FromNormalized ( const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &  vector)
throw (std::runtime_error
)
inline
template<class _containerType>
template<class __containerType >
ThisType& vctRodriguezRotation3Base< _containerType >::FromNormalized ( const vctQuaternionRotation3Base< __containerType > &  quaternionRotation)
inline
template<class _containerType>
template<class __containerType >
ThisType& vctRodriguezRotation3Base< _containerType >::FromNormalized ( const vctMatrixRotation3Base< __containerType > &  matrixRotation)
inline
template<class _containerType>
ThisType& vctRodriguezRotation3Base< _containerType >::FromNormalized ( const vctAxisAngleRotation3< value_type > &  axisAngleRotation)
inline
template<class _containerType>
template<stride_type __stride, class __dataPtrType >
ThisType& vctRodriguezRotation3Base< _containerType >::FromRaw ( const vctFixedSizeConstVectorBase< 3, __stride, value_type, __dataPtrType > &  vector)
inline
template<class _containerType>
ThisType& vctRodriguezRotation3Base< _containerType >::FromRaw ( value_type  x,
value_type  y,
value_type  z 
)
inline
template<class _containerType>
template<class __vectorOwnerType >
ThisType& vctRodriguezRotation3Base< _containerType >::FromRaw ( const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &  vector)
inline
template<class _containerType>
template<class __containerType >
ThisType& vctRodriguezRotation3Base< _containerType >::FromRaw ( const vctQuaternionRotation3Base< __containerType > &  quaternionRotation)
inline
template<class _containerType>
template<class __containerType >
ThisType& vctRodriguezRotation3Base< _containerType >::FromRaw ( const vctMatrixRotation3Base< __containerType > &  matrixRotation)
inline
template<class _containerType>
ThisType& vctRodriguezRotation3Base< _containerType >::FromRaw ( const vctAxisAngleRotation3< value_type > &  axisAngleRotation)
inline
template<class _containerType>
static CISST_EXPORT const ThisType& vctRodriguezRotation3Base< _containerType >::Identity ( )
static

Const reference to the identity. In this case, a null vector.

template<class _containerType>
ThisType vctRodriguezRotation3Base< _containerType >::Inverse ( void  ) const
inline
template<class _containerType>
ThisType& vctRodriguezRotation3Base< _containerType >::InverseOf ( const ThisType otherRotation)
inline
template<class _containerType>
ThisType& vctRodriguezRotation3Base< _containerType >::InverseSelf ( void  )
inline
template<class _containerType>
bool vctRodriguezRotation3Base< _containerType >::IsNormalized ( value_type   CMN_UNUSEDtolerance = TypeTraits::Tolerance()) const
inline

Test if this rotation is normalized. This methods always return "true" since any angle is considered valid. This method is provided mostly for API completion.

Parameters
toleranceTolerance. This variable is not used as this rotation is always normalized. The tolerance parameter is provided just to have the same signature as for other transformations.
template<class _containerType>
ThisType vctRodriguezRotation3Base< _containerType >::Normalized ( void  ) const
inline

See NormalizedSelf

template<class _containerType>
ThisType& vctRodriguezRotation3Base< _containerType >::NormalizedOf ( const ThisType otherRotation)
inline

See NormalizedSelf

template<class _containerType>
ThisType& vctRodriguezRotation3Base< _containerType >::NormalizedSelf ( void  )
inline

Norm lesser than 2 * PI.

template<class _containerType>
void vctRodriguezRotation3Base< _containerType >::ThrowUnlessIsNormalized ( void  ) const
throw (std::runtime_error
)
inlineprotected

Throw an exception unless this rotation is normalized.

template<class _containerType>
template<class _inputType >
void vctRodriguezRotation3Base< _containerType >::ThrowUnlessIsNormalized ( const _inputType &  input) const
throw (std::runtime_error
)
inlineprotected

Throw an exception unless the input is normalized.

Parameters
inputAn object with IsNormalized method.
template<class _containerType>
vctRodriguezRotation3Base< _containerType >::VCT_CONTAINER_TRAITS_TYPEDEFS ( typename ContainerType::value_type  )

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