cisst-saw
Loading...
Searching...
No Matches
vctMatrixRotation3< _elementType, _rowMajor > Class Template Reference

Define a rotation matrix for a space of dimension 3. More...

#include <vctMatrixRotation3.h>

Inheritance diagram for vctMatrixRotation3< _elementType, _rowMajor >:
vctMatrixRotation3Base< vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > > vctMatrixRotation3ConstBase< vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > > vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > vctFixedSizeMatrixBase< _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows, _elementType, vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows >::array > vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows >::array >

Public Types

enum  { ROWS = 3 , COLS = 3 }
enum  { DIMENSION = 3 }
typedef vctFixedSizeMatrix< value_type, ROWS, COLS, _rowMajor > ContainerType
typedef vctMatrixRotation3Base< ContainerTypeBaseType
typedef vctMatrixRotation3ConstBase< ContainerTypeConstBaseType
typedef vctMatrixRotation3< value_type, _rowMajor > ThisType
typedef cmnTypeTraits< value_typeTypeTraits
Public Types inherited from vctMatrixRotation3Base< vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > >
enum  
enum  
typedef vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > ContainerType
typedef vctMatrixRotation3ConstBase< ContainerTypeBaseType
typedef vctMatrixRotation3Base< ContainerTypeThisType
typedef vctMatrixRotation3Base< typename ContainerType::MatrixValueTypeRotationValueType
typedef cmnTypeTraits< value_typeTypeTraits
Public Types inherited from vctMatrixRotation3ConstBase< vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > >
enum  
enum  
typedef vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > BaseType
typedef vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > ContainerType
typedef vctMatrixRotation3ConstBase< ContainerTypeThisType
typedef vctMatrixRotation3< value_typeRotationValueType
typedef cmnTypeTraits< value_typeTypeTraits
Public Types inherited from vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor >
typedef vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows > MatrixTraits
typedef vctFixedSizeMatrixBase< _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows, _elementType, typename vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows >::array > BaseType
typedef vctFixedSizeMatrix< _elementType, _rows, _cols, _rowMajor > ThisType
typedef MatrixTraits::iterator iterator
typedef MatrixTraits::const_iterator const_iterator
typedef MatrixTraits::reverse_iterator reverse_iterator
typedef MatrixTraits::const_reverse_iterator const_reverse_iterator
typedef class cmnTypeTraits< value_typeTypeTraits
typedef TypeTraits::VaArgPromotion ElementVaArgPromotion
Public Types inherited from vctFixedSizeMatrixBase< _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows, _elementType, vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows >::array >
enum  
enum  
typedef vctFixedSizeMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows >::array > ThisType
typedef vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows >::array > BaseType
typedef vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowStride, _colStride > MatrixTraits
typedef MatrixTraits::iterator iterator
typedef MatrixTraits::const_iterator const_iterator
typedef MatrixTraits::reverse_iterator reverse_iterator
typedef MatrixTraits::const_reverse_iterator const_reverse_iterator
typedef BaseType::RowRefType RowRefType
typedef BaseType::ColumnRefType ColumnRefType
typedef BaseType::ConstRowRefType ConstRowRefType
typedef BaseType::ConstColumnRefType ConstColumnRefType
typedef BaseType::DiagonalRefType DiagonalRefType
typedef BaseType::ConstDiagonalRefType ConstDiagonalRefType
typedef BaseType::RefTransposeType RefTransposeType
typedef BaseType::ConstRefTransposeType ConstRefTransposeType
typedef BaseType::RowValueType RowValueType
typedef BaseType::ColumnValueType ColumnValueType
Public Types inherited from vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows >::array >
enum  
enum  
enum  
enum  
typedef vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows >::array > ThisType
typedef vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowStride, _colStride > MatrixTraits
typedef MatrixTraits::iterator iterator
typedef MatrixTraits::const_iterator const_iterator
typedef MatrixTraits::reverse_iterator reverse_iterator
typedef MatrixTraits::const_reverse_iterator const_reverse_iterator
typedef vctFixedSizeConstVectorRef< _elementType, COLS, COLSTRIDEConstRowRefType
typedef vctFixedSizeVectorRef< _elementType, COLS, COLSTRIDERowRefType
typedef vctFixedSizeConstVectorRef< _elementType, ROWS, ROWSTRIDEConstColumnRefType
typedef vctFixedSizeVectorRef< _elementType, ROWS, ROWSTRIDEColumnRefType
typedef vctFixedSizeConstVectorRef< _elementType, DIAGONAL_LENGTH, DIAGONAL_STRIDEConstDiagonalRefType
typedef vctFixedSizeVectorRef< _elementType, DIAGONAL_LENGTH, DIAGONAL_STRIDEDiagonalRefType
typedef vctFixedSizeVector< _elementType, COLSRowValueType
typedef vctFixedSizeVector< _elementType, ROWSColumnValueType
typedef vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride > ConstRefType
typedef vctFixedSizeMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride > RefType
typedef vctFixedSizeConstMatrixRef< _elementType, _cols, _rows, _colStride, _rowStride > ConstRefTransposeType
typedef vctFixedSizeMatrixRef< _elementType, _cols, _rows, _colStride, _rowStride > RefTransposeType
typedef vctFixedSizeMatrix< _elementType, COLS, ROWS, COLSTRIDE<=ROWSTRIDETransposeValueType
typedef vctFixedSizeMatrix< _elementType, ROWS, COLS, COLSTRIDE<=ROWSTRIDEMatrixValueType
typedef vctFixedSizeMatrix< bool, ROWS, COLS, COLSTRIDE<=ROWSTRIDEBoolMatrixValueType
typedef vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows >::array DataType

Public Member Functions

 VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType)
 vctMatrixRotation3 (void)
 vctMatrixRotation3 (const ThisType &other)
 vctMatrixRotation3 (const BaseType &other)
 vctMatrixRotation3 (const ConstBaseType &other)
 vctMatrixRotation3 (const vctDynamicMatrixRef< value_type > &other)
ThisTypeoperator= (const ContainerType &other)
ThisTypeoperator= (const ThisType &other)
ThisTypeoperator= (const BaseType &other)
Constructors with normalization test.

These constructors will check that the input is valid, i.e. normalized. If the input is not normalized, an exception (of type std::runtime_error) will be thrown. Each constructor uses the corresponding From() method based on the input type.

Note
See the cmnThrow() function if an abort is better than an exception for your application.
 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) CISST_THROW(std
template<stride_type __stride1, class __dataPtrType1, stride_type __stride2, class __dataPtrType2, stride_type __stride3, class __dataPtrType3>
 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) CISST_THROW(std
template<class __vectorOwnerType1, class __vectorOwnerType2, class __vectorOwnerType3>
 vctMatrixRotation3 (const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &v1, const vctDynamicConstVectorBase< __vectorOwnerType2, value_type > &v2, const vctDynamicConstVectorBase< __vectorOwnerType3, value_type > &v3, bool vectorsAreColumns=true) CISST_THROW(std
 vctMatrixRotation3 (const vctAxisAngleRotation3< value_type > &axisAngleRotation) CISST_THROW(std
template<class __containerType>
 vctMatrixRotation3 (const vctQuaternionRotation3Base< __containerType > &quaternionRotation) CISST_THROW(std
template<class __containerType>
 vctMatrixRotation3 (const vctRodriguezRotation3Base< __containerType > &rodriguezRotation) CISST_THROW(std
template<vctEulerRotation3Order::OrderType __order>
 vctMatrixRotation3 (const vctEulerRotation3< __order > &eulerRotation) CISST_THROW(std
Constructors without normalization test

These constructors will either assume that the input is normalized or normalize the input (a copy of it, if required) based on the last parameter provided.

  • If the normalization flag is set to VCT_DO_NOT_NORMALIZE, the input is considered already normalized and the constructor will not perform any sanity check. This can lead to numerical instabilities which have to be handled by the caller.

  • If the normalization flag is set to VCT_NORMALIZE, the input will be normalized. This option should be used whenever it is important to obtain a result as "normalized" as possible.

 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)
template<stride_type __stride1, class __dataPtrType1, stride_type __stride2, class __dataPtrType2, stride_type __stride3, class __dataPtrType3>
 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)
template<class __vectorOwnerType1, class __vectorOwnerType2, class __vectorOwnerType3>
 vctMatrixRotation3 (const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &v1, const vctDynamicConstVectorBase< __vectorOwnerType2, value_type > &v2, const vctDynamicConstVectorBase< __vectorOwnerType3, value_type > &v3, bool vectorsAreColumns, bool normalizeInput)
 vctMatrixRotation3 (const vctAxisAngleRotation3< value_type > &axisAngleRotation, bool normalizeInput)
template<class __containerType>
 vctMatrixRotation3 (const vctQuaternionRotation3Base< __containerType > &quaternionRotation, bool normalizeInput)
template<class __containerType>
 vctMatrixRotation3 (const vctRodriguezRotation3Base< __containerType > &rodriguezRotation, bool normalizeInput)
template<vctEulerRotation3Order::OrderType __order>
 vctMatrixRotation3 (const vctEulerRotation3< __order > &eulerRotation, bool normalizeInput)
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType>
 vctMatrixRotation3 (const vctFixedSizeMatrixBase< ROWS, COLS, __rowStride, __colStride, value_type, __dataPtrType > &matrix)
Public Member Functions inherited from vctMatrixRotation3Base< vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > >
vctMatrixRotation3Base< vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > > & FromRaw (const vctAxisAngleRotation3< typename vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor >::value_type > &axisAngleRotation)
 VCT_CONTAINER_TRAITS_TYPEDEFS (typename ContainerType::value_type)
 vctMatrixRotation3Base ()
ThisTypeFrom (const vctMatrixRotation3Base< __containerType > &other) CISST_THROW(std
ThisTypeFromNormalized (const vctMatrixRotation3Base< __containerType > &other) CISST_THROW(std
ThisTypeNormalizedSelf (void)
ThisTypeNormalizedOf (ThisType &otherMatrix)
ThisTypeInverseSelf (void)
ThisTypeInverseOf (const ThisType &otherRotation)
Public Member Functions inherited from vctMatrixRotation3ConstBase< vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > >
 VCT_CONTAINER_TRAITS_TYPEDEFS (typename ContainerType::value_type)
RotationValueType Normalized (void) const
bool IsNormalized (value_type tolerance=TypeTraits::Tolerance()) const
RotationValueType Inverse (void) const
void ApplyTo (const vctFixedSizeConstVectorBase< DIMENSION, __stride1, value_type, __dataPtrType1 > &input, vctFixedSizeVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > &output) const
void ApplyInverseTo (const vctFixedSizeConstVectorBase< DIMENSION, __stride1, value_type, __dataPtrType1 > &input, vctFixedSizeVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > &output) const
RotationValueType operator* (const ThisType &input) const
bool AlmostEquivalent (const ThisType &other, value_type tolerance=TypeTraits::Tolerance()) const
Public Member Functions inherited from vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor >
 VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType)
 vctFixedSizeMatrix ()
ThisTypeoperator= (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, __elementType, __dataPtrType > &other)
Public Member Functions inherited from vctFixedSizeMatrixBase< _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows, _elementType, vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows >::array >
 VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType)
iterator begin ()
iterator end ()
reverse_iterator rbegin ()
reverse_iterator rend ()
RowRefType operator[] (size_type index)
pointer Pointer (size_type rowIndex, size_type colIndex)
reference at (size_type index) CISST_THROW(std
reference operator() (size_type rowIndex, size_type colIndex) CISST_THROW(std
reference Element (size_type rowIndex, size_type colIndex)
RowRefType Row (size_type index)
ColumnRefType Column (size_type index)
DiagonalRefType Diagonal (void)
vctFixedSizeMatrixRef< _elementType, __subRows, __subCols, _rowStride, _colStride > Ref (const size_type startRow=0, const size_type startCol=0) CISST_THROW(std
void ExchangeRows (const size_type row1Index, const size_type row2Index)
void ExchangeColumns (const size_type col1Index, const size_type col2Index)
void SelectRowsFrom (const vctFixedSizeConstMatrixBase< __rows, _cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const vctFixedSizeConstVectorBase< _rows, __indexStride, index_type, __indexDataPtrType > &rowIndexVector)
void SelectColsFrom (const vctFixedSizeConstMatrixBase< _rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const vctFixedSizeConstVectorBase< _cols, __indexStride, index_type, __indexDataPtrType > &colIndexVector)
void RowPermutationOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const index_type permutedRowIndexes[])
void RowInversePermutationOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const index_type permutedRowIndexes[])
void ColumnPermutationOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const index_type permutedColumnIndexes[])
void ColumnInversePermutationOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, _elementType, __dataPtrType > &inputMatrix, const index_type permutedColumnIndexes[])
value_type SetAll (const value_type value)
bool Zeros (void)
ThisTypeAssign (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, __elementType, __dataPtrType > &other)
ThisTypeForceAssign (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, __elementType, __dataPtrType > &other)
bool FastCopyOf (const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &source, bool performSafetyChecks=vctFastCopy::PerformChecks) CISST_THROW(std
RefTransposeType TransposeRef (void)
ThisTypeSumOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix)
ThisTypeDifferenceOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix)
ThisTypeElementwiseProductOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix)
ThisTypeElementwiseRatioOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix)
ThisTypeElementwiseMinOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix)
ThisTypeElementwiseMaxOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __input1RowStride, __input1ColStride, value_type, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< _rows, _cols, __input2RowStride, __input2ColStride, value_type, __input2DataPtrType > &input2Matrix)
ThisTypeAdd (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
ThisTypeSubtract (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
ThisTypeElementwiseMultiply (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
ThisTypeElementwiseDivide (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
ThisTypeElementwiseMin (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
ThisTypeElementwiseMax (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
ThisTypeoperator+= (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
ThisTypeoperator-= (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
ThisTypeProductOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type scalar)
ThisTypeRatioOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type scalar)
ThisTypeClippedAboveOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type upperBound)
ThisTypeClippedBelowOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type lowerBound)
ThisTypeMultiply (const value_type scalar)
ThisTypeDivide (const value_type scalar)
ThisTypeClipAbove (const value_type upperBound)
ThisTypeClipBelow (const value_type lowerBound)
ThisTypeoperator*= (const value_type scalar)
ThisTypeoperator/= (const value_type scalar)
ThisTypeAddProductOf (const value_type scalar, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
ThisTypeAddElementwiseProductOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride1, __colStride1, value_type, __dataPtrType1 > &matrix1, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride2, __colStride2, value_type, __dataPtrType2 > &matrix2)
ThisTypeAbsOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
ThisTypeNegationOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
ThisTypeFloorOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
ThisTypeCeilOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
ThisTypeTransposeOf (const vctFixedSizeConstMatrixBase< _cols, _rows, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
ThisTypeAbsSelf (void)
ThisTypeNegationSelf (void)
ThisTypeFloorSelf (void)
ThisTypeCeilSelf (void)
void OuterProductOf (const vctFixedSizeConstVectorBase< _rows, __stride1, _elementType, __dataPtrType1 > &columnVector, const vctFixedSizeConstVectorBase< _cols, __stride2, _elementType, __dataPtrType2 > &rowVector)
bool FromStreamRaw (std::istream &inputStream, const char delimiter=' ')
void DeSerializeRaw (std::istream &inputStream)
Public Member Functions inherited from vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows >::array >
 VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType)
 VCT_NARRAY_TRAITS_TYPEDEFS (DIMENSION)
const_iterator begin () const
const_iterator end () const
const_reverse_iterator rbegin () const
const_reverse_iterator rend () const
size_type size () const
const nsize_type & sizes (void) const
size_type rows () const
size_type cols () const
size_type max_size () const
const nstride_type & strides (void) const
difference_type row_stride () const
difference_type col_stride () const
bool empty () const
ConstRowRefType operator[] (size_type index) const
const_pointer Pointer (size_type rowIndex, size_type colIndex) const
bool ValidIndex (size_type index) const
bool ValidRowIndex (size_type rowIndex) const
bool ValidColIndex (size_type colIndex) const
const_reference at (size_type index) const CISST_THROW(std
const_reference operator() (size_type rowIndex, size_type colIndex) const CISST_THROW(std
const_reference Element (size_type rowIndex, size_type colIndex) const
ConstRowRefType Row (size_type index) const
ConstColumnRefType Column (size_type index) const
ConstDiagonalRefType Diagonal (void) const
vctFixedSizeConstMatrixRef< _elementType, __subRows, __subCols, _rowStride, _colStride > Ref (const size_type startRow=0, const size_type startCol=0) const CISST_THROW(std
value_type SumOfElements () const
value_type ProductOfElements () const
value_type Trace (void) const
value_type NormSquare (void) const
NormType Norm (void) const
value_type L1Norm (void) const
value_type LinfNorm (void) const
value_type MaxElement (void) const
value_type MinElement (void) const
value_type MaxAbsElement (void) const
value_type MinAbsElement (void) const
void MinAndMaxElement (value_type &minElement, value_type &maxElement) const
bool IsPositive (void) const
bool IsNonNegative (void) const
bool IsNonPositive (void) const
bool IsNegative (void) const
bool All (void) const
bool Any (void) const
bool IsFinite (void) const
bool HasNaN (void) const
bool IsColMajor (void) const
bool IsRowMajor (void) const
bool IsCompact (void) const
bool IsFortran (void) const
bool StorageOrder (void) const
bool IsSquare (void) const
bool FastCopyCompatible (const vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, value_type, __dataPtrType > &source) const
bool Equal (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
bool operator== (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
bool AlmostEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix, value_type tolerance) const
bool NotEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
bool operator!= (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
bool Lesser (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
bool LesserOrEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
bool Greater (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
bool GreaterOrEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
BoolMatrixValueType ElementwiseEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
BoolMatrixValueType ElementwiseNotEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
BoolMatrixValueType ElementwiseLesser (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
BoolMatrixValueType ElementwiseLesserOrEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
BoolMatrixValueType ElementwiseGreater (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
BoolMatrixValueType ElementwiseGreaterOrEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
MatrixValueType Abs (void) const
MatrixValueType Negation (void) const
MatrixValueType Floor (void) const
MatrixValueType Ceil (void) const
ConstRefTransposeType TransposeRef (void) const
TransposeValueType Transpose () const
std::string ToString (void) const
void ToStream (std::ostream &outputStream) const
void ToStreamRaw (std::ostream &outputStream, const char delimiter=' ', bool headerOnly=false, const std::string &headerPrefix="") const
void SerializeRaw (std::ostream &outputStream) const

Additional Inherited Members

Static Public Member Functions inherited from vctMatrixRotation3ConstBase< vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > >
static CISST_EXPORT const RotationValueTypeIdentity ()
static const MatrixValueTypeEye (void)
Protected Member Functions inherited from vctMatrixRotation3ConstBase< vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > >
void ThrowUnlessIsNormalized (void) const CISST_THROW(std
Protected Member Functions inherited from vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows >::array >
void ThrowUnlessValidIndex (size_type index) const CISST_THROW(std
Protected Attributes inherited from vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowMajor?_cols:1, _rowMajor?1:_rows >::array >
DataType Data

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
_elementTypeThe type of elements of the matrix.
See also
vctMatrixRotation3Base vctFixedSizeMatrix

Member Typedef Documentation

◆ BaseType

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

◆ ConstBaseType

template<class _elementType, bool _rowMajor>
typedef vctMatrixRotation3ConstBase<ContainerType> vctMatrixRotation3< _elementType, _rowMajor >::ConstBaseType

◆ ContainerType

template<class _elementType, bool _rowMajor>
typedef vctFixedSizeMatrix<value_type, ROWS, COLS, _rowMajor> vctMatrixRotation3< _elementType, _rowMajor >::ContainerType

◆ ThisType

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

◆ TypeTraits

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.

Member Enumeration Documentation

◆ anonymous enum

template<class _elementType, bool _rowMajor>
anonymous enum
Enumerator
DIMENSION 

◆ anonymous enum

template<class _elementType, bool _rowMajor>
anonymous enum
Enumerator
ROWS 
COLS 

Constructor & Destructor Documentation

◆ vctMatrixRotation3() [1/20]

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

Default constructor. Sets the rotation matrix to identity.

◆ vctMatrixRotation3() [2/20]

template<class _elementType, bool _rowMajor>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const ThisType & other)
inline

◆ vctMatrixRotation3() [3/20]

template<class _elementType, bool _rowMajor>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const BaseType & other)
inline

◆ vctMatrixRotation3() [4/20]

template<class _elementType, bool _rowMajor>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const ConstBaseType & other)
inline

◆ vctMatrixRotation3() [5/20]

template<class _elementType, bool _rowMajor>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctDynamicMatrixRef< value_type > & other)
inlineexplicit

◆ vctMatrixRotation3() [6/20]

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 )
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);
vctMatrixRotation3(void)
Definition vctMatrixRotation3.h:65

◆ vctMatrixRotation3() [7/20]

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 )
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.

◆ vctMatrixRotation3() [8/20]

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 )
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.

◆ vctMatrixRotation3() [9/20]

template<class _elementType, bool _rowMajor>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctAxisAngleRotation3< value_type > & axisAngleRotation)
inlineexplicit

Construction from a vctAxisAngleRotation3.

◆ vctMatrixRotation3() [10/20]

template<class _elementType, bool _rowMajor>
template<class __containerType>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctQuaternionRotation3Base< __containerType > & quaternionRotation)
inlineexplicit

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
quaternionRotationA unit quaternion

◆ vctMatrixRotation3() [11/20]

template<class _elementType, bool _rowMajor>
template<class __containerType>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctRodriguezRotation3Base< __containerType > & rodriguezRotation)
inlineexplicit

Constructor from a vctRodriguezRotation3.

◆ vctMatrixRotation3() [12/20]

template<class _elementType, bool _rowMajor>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctEulerRotation3< __order > & eulerRotation)
inlineexplicit

Constructor from a vctEulerRotation3.

◆ vctMatrixRotation3() [13/20]

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);

◆ vctMatrixRotation3() [14/20]

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.

◆ vctMatrixRotation3() [15/20]

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.

◆ vctMatrixRotation3() [16/20]

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

Construction from a vctAxisAngleRotation3.

◆ vctMatrixRotation3() [17/20]

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
quaternionRotationA unit quaternion
normalizeInputNormalize the input or convert as is (VCT_NORMALIZE or VCT_DO_NOT_NORMALIZE)

◆ vctMatrixRotation3() [18/20]

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

Constructor from a vctRodriguezRotation3.

◆ vctMatrixRotation3() [19/20]

template<class _elementType, bool _rowMajor>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctEulerRotation3< __order > & eulerRotation,
bool normalizeInput )
inline

Construction from a vctEulerRotation3.

◆ vctMatrixRotation3() [20/20]

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)
inlineexplicit

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.

Member Function Documentation

◆ operator=() [1/3]

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

◆ operator=() [2/3]

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.

◆ operator=() [3/3]

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

◆ VCT_CONTAINER_TRAITS_TYPEDEFS()

template<class _elementType, bool _rowMajor>
vctMatrixRotation3< _elementType, _rowMajor >::VCT_CONTAINER_TRAITS_TYPEDEFS ( _elementType )

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