ERC CISST - cisst software

vctMatrixRotation3Base< _containerType > Class Template Reference

#include <vctMatrixRotation3Base.h>

Inheritance diagram for vctMatrixRotation3Base< _containerType >:

Inheritance graph
[legend]
Collaboration diagram for vctMatrixRotation3Base< _containerType >:

Collaboration graph
[legend]
List of all members.

Detailed Description

template<class _containerType>
class vctMatrixRotation3Base< _containerType >

Define a rotation matrix for a space of dimension 3.

This class is templated by the type of container used to store the rotation matrix. This class is an internal class, i.e. it is not intended for the end-user. The class which should be used by most is vctMatRot3 (eventually vctMatrixRotation3<_elementType>).

The main goal of this meta rotation matrix class is to ease the interface with Python. For a native Python object, a matrix rotation can be defined based on a vctDynamicMatrix which is much easier to wrap than a vctFixedSizeMatrix. For a C++ object accessed from Python, the rotation matrix will be defined using vctMatrixRotation3Base<vctDynamicMatrixRef<double> >, referring to the C++ vctMatrixRotation3Base<vctFixedSizeMatrix<double, 3, 3> >.

Parameters:
_containerType The type of the matrix.
See also:
vctFixedSizeMatrix

Definition at line 87 of file vctMatrixRotation3Base.h.

Public Types

Public Member Functions

Conversion from normalized input.
These methods will check that the input is normalized. If the input is not normalized, an exception (std::runtime_error) will be thrown using cmnThrow().

Note:
Since all exceptions are thrown using cmnThrow(), it is possible to configure these methods to use abort() if the normalization requirements are not met (see cmnThrow()).


Conversion and normalization.
These method will accept any input and attempt to either normalize the input and then convert or convert and then normalize the quaternion itself.
The order depends on the type of input.

Conversion.
These method don't check if the input is normalized nor try to normalize the results. They should be used with caution since the resulting rotation (in this case a quaternion) might not be normalized.


Member Typedef Documentation

template<class _containerType>
typedef vctMatrixRotation3Base<typename ContainerType::MatrixValueType> vctMatrixRotation3Base< _containerType >::RotationValueType

Type used to return by copy

Reimplemented from vctMatrixRotation3ConstBase< _containerType >.

Definition at line 95 of file vctMatrixRotation3Base.h.

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

Traits used for all useful types and values related to the element type.

Reimplemented from vctMatrixRotation3ConstBase< _containerType >.

Definition at line 101 of file vctMatrixRotation3Base.h.


Member Function Documentation

template<class _containerType>
ThisType& vctMatrixRotation3Base< _containerType >::From ( const value_type &  element00,
const value_type &  element01,
const value_type &  element02,
const value_type &  element10,
const value_type &  element11,
const value_type &  element12,
const value_type &  element20,
const value_type &  element21,
const value_type &  element22 
) throw (std::runtime_error) [inline]

Conversion from 9 elements.

Definition at line 119 of file vctMatrixRotation3Base.h.

template<class _containerType>
template<stride_type __stride1, class __dataPtrType1, stride_type __stride2, class __dataPtrType2, stride_type __stride3, class __dataPtrType3>
ThisType& vctMatrixRotation3Base< _containerType >::From ( const vctFixedSizeConstVectorBase< DIMENSION, __stride1, value_type, __dataPtrType1 > &  v1,
const vctFixedSizeConstVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > &  v2,
const vctFixedSizeConstVectorBase< DIMENSION, __stride3, value_type, __dataPtrType3 > &  v3,
bool  vectorsAreColumns = true 
) throw (std::runtime_error) [inline]

Conversion from 3 fixed size vectors.

By default the vectors represents the columns of the matrix. If the parameter vectorsAreColumns is set to false, the vectors provided will be used to set the matrix row by row.

Definition at line 141 of file vctMatrixRotation3Base.h.

template<class _containerType>
template<class __vectorOwnerType1, class __vectorOwnerType2, class __vectorOwnerType3>
ThisType& vctMatrixRotation3Base< _containerType >::From ( const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &  v1,
const vctDynamicConstVectorBase< __vectorOwnerType2, value_type > &  v2,
const vctDynamicConstVectorBase< __vectorOwnerType3, value_type > &  v3,
bool  vectorsAreColumns = true 
) throw (std::runtime_error) [inline]

Conversion from 3 dynamic vectors.

By default the vectors represents the columns of the matrix. If the parameter vectorsAreColumns is set to false, the vectors provided will be used to set the matrix row by row.

Definition at line 163 of file vctMatrixRotation3Base.h.

template<class _containerType>
ThisType& vctMatrixRotation3Base< _containerType >::From ( const vctAxisAngleRotation3< value_type > &  axisAngleRotation  )  throw (std::runtime_error) [inline]

Conversion from an axis/angle rotation.

Definition at line 176 of file vctMatrixRotation3Base.h.

template<class _containerType>
template<class __containerType>
ThisType& vctMatrixRotation3Base< _containerType >::From ( const vctQuaternionRotation3Base< __containerType > &  quaternionRotation  )  throw (std::runtime_error) [inline]

Conversion from a rotation quaternion.

Definition at line 186 of file vctMatrixRotation3Base.h.

template<class _containerType>
template<class __containerType>
ThisType& vctMatrixRotation3Base< _containerType >::From ( const vctRodriguezRotation3Base< __containerType > &  rodriguezRotation  )  throw (std::runtime_error) [inline]

Conversion from a Rodriguez rotation.

Definition at line 197 of file vctMatrixRotation3Base.h.

template<class _containerType>
ThisType& vctMatrixRotation3Base< _containerType >::FromNormalized ( const value_type &  element00,
const value_type &  element01,
const value_type &  element02,
const value_type &  element10,
const value_type &  element11,
const value_type &  element12,
const value_type &  element20,
const value_type &  element21,
const value_type &  element22 
) [inline]

Conversion from 9 elements.

Definition at line 223 of file vctMatrixRotation3Base.h.

template<class _containerType>
template<stride_type __stride1, class __dataPtrType1, stride_type __stride2, class __dataPtrType2, stride_type __stride3, class __dataPtrType3>
ThisType& vctMatrixRotation3Base< _containerType >::FromNormalized ( const vctFixedSizeConstVectorBase< DIMENSION, __stride1, value_type, __dataPtrType1 > &  v1,
const vctFixedSizeConstVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > &  v2,
const vctFixedSizeConstVectorBase< DIMENSION, __stride3, value_type, __dataPtrType3 > &  v3,
bool  vectorsAreColumns = true 
) throw (std::runtime_error) [inline]

Conversion from 3 fixed size vectors.

By default the vectors represents the columns of the matrix. If the parameter vectorsAreColumns is set to false, the vectors provided will be used to set the matrix row by row.

Definition at line 244 of file vctMatrixRotation3Base.h.

template<class _containerType>
template<class __vectorOwnerType1, class __vectorOwnerType2, class __vectorOwnerType3>
ThisType& vctMatrixRotation3Base< _containerType >::FromNormalized ( const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &  v1,
const vctDynamicConstVectorBase< __vectorOwnerType2, value_type > &  v2,
const vctDynamicConstVectorBase< __vectorOwnerType3, value_type > &  v3,
bool  vectorsAreColumns = true 
) [inline]

Conversion from 3 dynamic vectors.

By default the vectors represents the columns of the matrix. If the parameter vectorsAreColumns is set to false, the vectors provided will be used to set the matrix row by row.

Definition at line 266 of file vctMatrixRotation3Base.h.

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

Conversion from an axis/angle rotation.

Definition at line 278 of file vctMatrixRotation3Base.h.

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

Conversion from a rotation quaternion.

Parameters:
quaternionRotation A rotation quaternion

Definition at line 290 of file vctMatrixRotation3Base.h.

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

Conversion from a Rodriguez rotation.

Definition at line 299 of file vctMatrixRotation3Base.h.

template<class _containerType>
ThisType& vctMatrixRotation3Base< _containerType >::FromRaw ( const value_type &  element00,
const value_type &  element01,
const value_type &  element02,
const value_type &  element10,
const value_type &  element11,
const value_type &  element12,
const value_type &  element20,
const value_type &  element21,
const value_type &  element22 
) [inline]

Conversion from 9 elements.

Definition at line 323 of file vctMatrixRotation3Base.h.

template<class _containerType>
template<stride_type __stride1, class __dataPtrType1, stride_type __stride2, class __dataPtrType2, stride_type __stride3, class __dataPtrType3>
ThisType& vctMatrixRotation3Base< _containerType >::FromRaw ( const vctFixedSizeConstVectorBase< DIMENSION, __stride1, value_type, __dataPtrType1 > &  v1,
const vctFixedSizeConstVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > &  v2,
const vctFixedSizeConstVectorBase< DIMENSION, __stride3, value_type, __dataPtrType3 > &  v3,
bool  vectorsAreColumns = true 
) [inline]

Conversion from 3 fixed size vectors.

By default the vectors represents the columns of the matrix. If the parameter vectorsAreColumns is set to false, the vectors provided will be used to set the matrix row by row.

Definition at line 344 of file vctMatrixRotation3Base.h.

template<class _containerType>
template<class __vectorOwnerType1, class __vectorOwnerType2, class __vectorOwnerType3>
ThisType& vctMatrixRotation3Base< _containerType >::FromRaw ( const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &  v1,
const vctDynamicConstVectorBase< __vectorOwnerType2, value_type > &  v2,
const vctDynamicConstVectorBase< __vectorOwnerType3, value_type > &  v3,
bool  vectorsAreColumns = true 
) throw (std::runtime_error) [inline]

Conversion from 3 dynamic vectors.

By default the vectors represents the columns of the matrix. If the parameter vectorsAreColumns is set to false, the vectors provided will be used to set the matrix row by row.

Definition at line 372 of file vctMatrixRotation3Base.h.

template<class _containerType>
CISST_EXPORT ThisType& vctMatrixRotation3Base< _containerType >::FromRaw ( const vctAxisAngleRotation3< value_type > &  axisAngleRotation  ) 

Conversion from an axis/angle rotation

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

Conversion from a quaternion rotation.

Definition at line 402 of file vctMatrixRotation3Base.h.

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

Conversion from a Rodriguez rotation.

Definition at line 411 of file vctMatrixRotation3Base.h.

template<class _containerType>
ThisType& vctMatrixRotation3Base< _containerType >::FromRaw ( const ThisType otherRotation  )  [inline]

A complementary form of assigning one matrix rotation to another. The method is provided mostly for generic programming interfaces and for testing various operations on rotations

Definition at line 419 of file vctMatrixRotation3Base.h.

template<class _containerType>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType>
ThisType& vctMatrixRotation3Base< _containerType >::FromRaw ( const vctFixedSizeMatrixBase< ROWS, COLS, __rowStride, __colStride, value_type, __dataPtrType > &  matrix  )  [inline]

Assign a 3x3 matrix to this rotation matrix. This method does not substitute the Assign() method. Assign() may perform type conversion, while From() only takes a matrix of the same element type.

Note:
This method does not verify normalization. It is introduced to allow using results of matrix operations and assign them to a rotation matrix.

Definition at line 435 of file vctMatrixRotation3Base.h.

template<class _containerType>
ThisType& vctMatrixRotation3Base< _containerType >::NormalizedSelf ( void   )  [inline]

Normalizes this matrix. This method converts the matrix to a quaternion, normalizes it and convert back to a matrix.

Definition at line 444 of file vctMatrixRotation3Base.h.

Referenced by vctMatrixRotation3ConstBase< _containerType >::Normalized().

template<class _containerType>
ThisType& vctMatrixRotation3Base< _containerType >::NormalizedOf ( ThisType otherMatrix  )  [inline]

Set this rotation matrix as the normalized version of another one.

Parameters:
otherMatrix Matrix used to compute the normalized matrix.

Definition at line 455 of file vctMatrixRotation3Base.h.

template<class _containerType>
ThisType& vctMatrixRotation3Base< _containerType >::InverseSelf ( void   )  [inline]

Inverse this rotation matrix. This methods assumes that the matrix is normalized and sets this matrix as its transposed.

Definition at line 466 of file vctMatrixRotation3Base.h.

Referenced by vctMatrixRotation3ConstBase< _containerType >::Inverse().

template<class _containerType>
ThisType& vctMatrixRotation3Base< _containerType >::InverseOf ( const ThisType otherRotation  )  [inline]

Set this rotation as the inverse of another one. See also InverseSelf().

Definition at line 479 of file vctMatrixRotation3Base.h.


The documentation for this class was generated from the following file:
erc-cisst-devel<at>lists.johnshopkins.edu