ERC CISST - cisst software

vctMatrixRotation3< _elementType, _rowMajor > Class Template Reference
[Vectors]

#include <vctMatrixRotation3.h>

Inheritance diagram for vctMatrixRotation3< _elementType, _rowMajor >:

Inheritance graph
[legend]
Collaboration diagram for vctMatrixRotation3< _elementType, _rowMajor >:

Collaboration graph
[legend]
List of all members.

Detailed Description

template<class _elementType, bool _rowMajor>
class vctMatrixRotation3< _elementType, _rowMajor >

Define a rotation matrix for a space of dimension 3.

This class is templated by the element type. It is derived from vctMatrixRotation3Base and uses a vctFixedSizeMatrix as underlying container. It provides a more humain interface for programmers only interested in templating by _elementType.

Parameters:
_elementType The type of elements of the matrix.
See also:
vctMatrixRotation3Base vctFixedSizeMatrix

Definition at line 52 of file vctMatrixRotation3.h.

Public Types

Public Member Functions

Public Attributes


Member Typedef Documentation

template<class _elementType, bool _rowMajor>
typedef vctMatrixRotation3Base<ContainerType> vctMatrixRotation3< _elementType, _rowMajor >::BaseType

Type of the base class

Reimplemented from vctMatrixRotation3Base< vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > >.

Definition at line 60 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
typedef vctMatrixRotation3<value_type, _rowMajor> vctMatrixRotation3< _elementType, _rowMajor >::ThisType

Type of the matrix itself.

Reimplemented from vctMatrixRotation3Base< vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > >.

Definition at line 61 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
typedef cmnTypeTraits<value_type> vctMatrixRotation3< _elementType, _rowMajor >::TypeTraits

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

Reimplemented from vctMatrixRotation3Base< vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > >.

Definition at line 63 of file vctMatrixRotation3.h.


Constructor & Destructor Documentation

template<class _elementType, bool _rowMajor>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( void   )  [inline]

Default constructor. Sets the rotation matrix to identity.

Definition at line 66 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( 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]

Constructor from 9 elements.

The parameters are given row first so that the code remains human readable:

      vctMatrixRotation3<double> matrix( 0.0, 1.0, 0.0,
                                        -1.0, 0.0, 0.0,
                                         0.0, 0.0, 1.0);

Definition at line 129 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
template<stride_type __stride1, class __dataPtrType1, stride_type __stride2, class __dataPtrType2, stride_type __stride3, class __dataPtrType3>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( 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]

Constructor 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 148 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
template<class __vectorOwnerType1, class __vectorOwnerType2, class __vectorOwnerType3>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( 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]

Constructor 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 166 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctAxisAngleRotation3< value_type > &  axisAngleRotation  )  throw (std::runtime_error) [inline]

Construction from a vctAxisAngleRotation3.

Definition at line 176 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
template<class __containerType>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctQuaternionRotation3Base< __containerType > &  quaternionRotation  )  throw (std::runtime_error) [inline]

Constructor from a rotation quaternion. It is important to note that this constructor doesn't normalize the rotation quaternion but asserts that it is normalized (in debug mode only). See also the method From(quaternion).

Parameters:
quaternionRotation A unit quaternion

Definition at line 190 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
template<class __containerType>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctRodriguezRotation3Base< __containerType > &  rodriguezRotation  )  throw (std::runtime_error) [inline]

Constructor from a vctRodriguezRotation3.

Definition at line 198 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( 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,
bool  normalizeInput 
) [inline]

Constructor from 9 elements.

The parameters are given row first so that the code remains human readable:

      vctMatrixRotation3<double> matrix( 0.0, 1.0, 0.0,
                                        -1.0, 0.0, 0.0,
                                         0.0, 0.0, 1.0);

Definition at line 238 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
template<stride_type __stride1, class __dataPtrType1, stride_type __stride2, class __dataPtrType2, stride_type __stride3, class __dataPtrType3>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( 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,
bool  normalizeInput 
) [inline]

Constructor 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 263 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
template<class __vectorOwnerType1, class __vectorOwnerType2, class __vectorOwnerType3>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &  v1,
const vctDynamicConstVectorBase< __vectorOwnerType2, value_type > &  v2,
const vctDynamicConstVectorBase< __vectorOwnerType3, value_type > &  v3,
bool  vectorsAreColumns,
bool  normalizeInput 
) [inline]

Constructor 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 284 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctAxisAngleRotation3< value_type > &  axisAngleRotation,
bool  normalizeInput 
) [inline]

Construction from a vctAxisAngleRotation3.

Definition at line 297 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
template<class __containerType>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctQuaternionRotation3Base< __containerType > &  quaternionRotation,
bool  normalizeInput 
) [inline]

Constructor from a rotation quaternion. It is important to note that this constructor doesn't normalize the rotation quaternion but asserts that it is normalized (in debug mode only). See also the method From(quaternion).

Parameters:
quaternionRotation A unit quaternion
normalizeInput Normalize the input or convert as is (VCT_NORMALIZE or VCT_DO_NOT_NORMALIZE)

Definition at line 316 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
template<class __containerType>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctRodriguezRotation3Base< __containerType > &  rodriguezRotation,
bool  normalizeInput 
) [inline]

Constructor from a vctRodriguezRotation3.

Definition at line 328 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctFixedSizeMatrixBase< ROWS, COLS, __rowStride, __colStride, value_type, __dataPtrType > &  matrix  )  [inline, explicit]

Initialize this rotation matrix with a 3x3 matrix. This constructor only takes a matrix of the same element type.

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

The constructor is declared explicit, to force the user to be aware of the conversion being made.

Definition at line 351 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( 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]

Constructor from 9 elements.

The parameters are given row first so that the code remains human readable:

      vctMatrixRotation3<double> matrix( 0.0, 1.0, 0.0,
                                        -1.0, 0.0, 0.0,
                                         0.0, 0.0, 1.0);

Definition at line 129 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
template<stride_type __stride1, class __dataPtrType1, stride_type __stride2, class __dataPtrType2, stride_type __stride3, class __dataPtrType3>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( 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]

Constructor 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 148 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
template<class __vectorOwnerType1, class __vectorOwnerType2, class __vectorOwnerType3>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( 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]

Constructor 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 166 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctAxisAngleRotation3< value_type > &  axisAngleRotation  )  throw (std::runtime_error) [inline]

Construction from a vctAxisAngleRotation3.

Definition at line 176 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
template<class __containerType>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctQuaternionRotation3Base< __containerType > &  quaternionRotation  )  throw (std::runtime_error) [inline]

Constructor from a rotation quaternion. It is important to note that this constructor doesn't normalize the rotation quaternion but asserts that it is normalized (in debug mode only). See also the method From(quaternion).

Parameters:
quaternionRotation A unit quaternion

Definition at line 190 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
template<class __containerType>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctRodriguezRotation3Base< __containerType > &  rodriguezRotation  )  throw (std::runtime_error) [inline]

Constructor from a vctRodriguezRotation3.

Definition at line 198 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( 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,
bool  normalizeInput 
) [inline]

Constructor from 9 elements.

The parameters are given row first so that the code remains human readable:

      vctMatrixRotation3<double> matrix( 0.0, 1.0, 0.0,
                                        -1.0, 0.0, 0.0,
                                         0.0, 0.0, 1.0);

Definition at line 238 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
template<stride_type __stride1, class __dataPtrType1, stride_type __stride2, class __dataPtrType2, stride_type __stride3, class __dataPtrType3>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( 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,
bool  normalizeInput 
) [inline]

Constructor 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 263 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
template<class __vectorOwnerType1, class __vectorOwnerType2, class __vectorOwnerType3>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &  v1,
const vctDynamicConstVectorBase< __vectorOwnerType2, value_type > &  v2,
const vctDynamicConstVectorBase< __vectorOwnerType3, value_type > &  v3,
bool  vectorsAreColumns,
bool  normalizeInput 
) [inline]

Constructor 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 284 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctAxisAngleRotation3< value_type > &  axisAngleRotation,
bool  normalizeInput 
) [inline]

Construction from a vctAxisAngleRotation3.

Definition at line 297 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
template<class __containerType>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctQuaternionRotation3Base< __containerType > &  quaternionRotation,
bool  normalizeInput 
) [inline]

Constructor from a rotation quaternion. It is important to note that this constructor doesn't normalize the rotation quaternion but asserts that it is normalized (in debug mode only). See also the method From(quaternion).

Parameters:
quaternionRotation A unit quaternion
normalizeInput Normalize the input or convert as is (VCT_NORMALIZE or VCT_DO_NOT_NORMALIZE)

Definition at line 316 of file vctMatrixRotation3.h.

template<class _elementType, bool _rowMajor>
template<class __containerType>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctRodriguezRotation3Base< __containerType > &  rodriguezRotation,
bool  normalizeInput 
) [inline]

Constructor from a vctRodriguezRotation3.

Definition at line 328 of file vctMatrixRotation3.h.


Member Function Documentation

template<class _elementType, bool _rowMajor>
ThisType& vctMatrixRotation3< _elementType, _rowMajor >::operator= ( const ContainerType other  )  [inline]

The assignment from BaseType (i.e. a 3 by 3 fixed size matrix) has to be redefined for this class (C++ restriction). This operator uses the Assign() method inherited from the BaseType. This operator (as well as the Assign method) allows to set a rotation matrix to whatever value without any further validity checking. It is recommended to use it with caution.

Definition at line 90 of file vctMatrixRotation3.h.


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