cisst-saw
Loading...
Searching...
No Matches
vctRodriguezRotation3Base< _containerType > Class Template Reference

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

#include <vctRodriguezRotation3Base.h>

Inheritance diagram for vctRodriguezRotation3Base< _containerType >:
vctRodriguezRotation3< value_type > vctRodriguezRotation3< double > vctRodriguezRotation3< float >

Public Types

enum  { DIMENSION = 3 }
typedef _containerType BaseType
typedef _containerType ContainerType
typedef vctRodriguezRotation3Base< ContainerTypeThisType
typedef cmnTypeTraits< value_typeTypeTraits

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) CISST_THROW(std
ThisTypeFrom (value_type x, value_type y, value_type z) CISST_THROW(std
template<class __vectorOwnerType>
ThisTypeFrom (const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &vector) CISST_THROW(std
template<class __containerType>
ThisTypeFrom (const vctQuaternionRotation3Base< __containerType > &quaternionRotation) CISST_THROW(std
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) CISST_THROW(std
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 ThisTypeIdentity ()

Protected Member Functions

void ThrowUnlessIsNormalized (void) const CISST_THROW(std
template<class _inputType>
void ThrowUnlessIsNormalized (const _inputType &input) const CISST_THROW(std

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

◆ BaseType

template<class _containerType>
typedef _containerType vctRodriguezRotation3Base< _containerType >::BaseType

◆ ContainerType

template<class _containerType>
typedef _containerType vctRodriguezRotation3Base< _containerType >::ContainerType

◆ ThisType

template<class _containerType>
typedef vctRodriguezRotation3Base<ContainerType> vctRodriguezRotation3Base< _containerType >::ThisType

◆ TypeTraits

template<class _containerType>
typedef cmnTypeTraits<value_type> vctRodriguezRotation3Base< _containerType >::TypeTraits

Member Enumeration Documentation

◆ anonymous enum

template<class _containerType>
anonymous enum
Enumerator
DIMENSION 

Constructor & Destructor Documentation

◆ vctRodriguezRotation3Base() [1/3]

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

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

◆ vctRodriguezRotation3Base() [2/3]

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.

◆ vctRodriguezRotation3Base() [3/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

◆ AlmostEquivalent()

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.

◆ From() [1/6]

template<class _containerType>
ThisType & vctRodriguezRotation3Base< _containerType >::From ( const vctAxisAngleRotation3< value_type > & axisAngleRotation)
inline

◆ From() [2/6]

template<class _containerType>
template<class __vectorOwnerType>
ThisType & vctRodriguezRotation3Base< _containerType >::From ( const vctDynamicConstVectorBase< __vectorOwnerType, value_type > & vector)
inline

◆ From() [3/6]

template<class _containerType>
template<stride_type __stride, class __dataPtrType>
ThisType & vctRodriguezRotation3Base< _containerType >::From ( const vctFixedSizeConstVectorBase< 3, __stride, value_type, __dataPtrType > & vector)
inline

◆ From() [4/6]

template<class _containerType>
template<class __containerType>
ThisType & vctRodriguezRotation3Base< _containerType >::From ( const vctMatrixRotation3Base< __containerType > & matrixRotation)
inline

◆ From() [5/6]

template<class _containerType>
template<class __containerType>
ThisType & vctRodriguezRotation3Base< _containerType >::From ( const vctQuaternionRotation3Base< __containerType > & quaternionRotation)
inline

◆ From() [6/6]

template<class _containerType>
ThisType & vctRodriguezRotation3Base< _containerType >::From ( value_type x,
value_type y,
value_type z )
inline

◆ FromNormalized() [1/6]

template<class _containerType>
ThisType & vctRodriguezRotation3Base< _containerType >::FromNormalized ( const vctAxisAngleRotation3< value_type > & axisAngleRotation)
inline

◆ FromNormalized() [2/6]

template<class _containerType>
template<class __vectorOwnerType>
ThisType & vctRodriguezRotation3Base< _containerType >::FromNormalized ( const vctDynamicConstVectorBase< __vectorOwnerType, value_type > & vector)
inline

◆ FromNormalized() [3/6]

template<class _containerType>
template<stride_type __stride, class __dataPtrType>
ThisType & vctRodriguezRotation3Base< _containerType >::FromNormalized ( const vctFixedSizeConstVectorBase< 3, __stride, value_type, __dataPtrType > & vector)
inline

◆ FromNormalized() [4/6]

template<class _containerType>
template<class __containerType>
ThisType & vctRodriguezRotation3Base< _containerType >::FromNormalized ( const vctMatrixRotation3Base< __containerType > & matrixRotation)
inline

◆ FromNormalized() [5/6]

template<class _containerType>
template<class __containerType>
ThisType & vctRodriguezRotation3Base< _containerType >::FromNormalized ( const vctQuaternionRotation3Base< __containerType > & quaternionRotation)
inline

◆ FromNormalized() [6/6]

template<class _containerType>
ThisType & vctRodriguezRotation3Base< _containerType >::FromNormalized ( value_type x,
value_type y,
value_type z )
inline

◆ FromRaw() [1/6]

template<class _containerType>
ThisType & vctRodriguezRotation3Base< _containerType >::FromRaw ( const vctAxisAngleRotation3< value_type > & axisAngleRotation)
inline

◆ FromRaw() [2/6]

template<class _containerType>
template<class __vectorOwnerType>
ThisType & vctRodriguezRotation3Base< _containerType >::FromRaw ( const vctDynamicConstVectorBase< __vectorOwnerType, value_type > & vector)
inline

◆ FromRaw() [3/6]

template<class _containerType>
template<stride_type __stride, class __dataPtrType>
ThisType & vctRodriguezRotation3Base< _containerType >::FromRaw ( const vctFixedSizeConstVectorBase< 3, __stride, value_type, __dataPtrType > & vector)
inline

◆ FromRaw() [4/6]

template<class _containerType>
template<class __containerType>
ThisType & vctRodriguezRotation3Base< _containerType >::FromRaw ( const vctMatrixRotation3Base< __containerType > & matrixRotation)
inline

◆ FromRaw() [5/6]

template<class _containerType>
template<class __containerType>
ThisType & vctRodriguezRotation3Base< _containerType >::FromRaw ( const vctQuaternionRotation3Base< __containerType > & quaternionRotation)
inline

◆ FromRaw() [6/6]

template<class _containerType>
ThisType & vctRodriguezRotation3Base< _containerType >::FromRaw ( value_type x,
value_type y,
value_type z )
inline

◆ Identity()

template<class _containerType>
CISST_EXPORT const ThisType & vctRodriguezRotation3Base< _containerType >::Identity ( )
static

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

◆ Inverse()

template<class _containerType>
ThisType vctRodriguezRotation3Base< _containerType >::Inverse ( void ) const
inline

◆ InverseOf()

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

◆ InverseSelf()

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

◆ IsNormalized()

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.

◆ Normalized()

template<class _containerType>
ThisType vctRodriguezRotation3Base< _containerType >::Normalized ( void ) const
inline

See NormalizedSelf

◆ NormalizedOf()

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

See NormalizedSelf

◆ NormalizedSelf()

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

Norm lesser than 2 * PI.

◆ ThrowUnlessIsNormalized() [1/2]

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

Throw an exception unless the input is normalized.

Parameters
inputAn object with IsNormalized method.

◆ ThrowUnlessIsNormalized() [2/2]

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

Throw an exception unless this rotation is normalized.

◆ VCT_CONTAINER_TRAITS_TYPEDEFS()

template<class _containerType>
vctRodriguezRotation3Base< _containerType >::VCT_CONTAINER_TRAITS_TYPEDEFS ( typename ContainerType::value_type )

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