cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | List of all members
vctMatrixRotation3< _elementType, _rowMajor > Class Template Reference

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

#include <vctForwardDeclarations.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, _dataPtrType >

Public Types

enum  { ROWS = 3, COLS = 3 }
 
enum  { DIMENSION = 3 }
 
typedef vctFixedSizeMatrix
< value_type, ROWS, COLS,
_rowMajor > 
ContainerType
 
typedef vctMatrixRotation3Base
< ContainerType
BaseType
 
typedef vctMatrixRotation3
< value_type, _rowMajor > 
ThisType
 
typedef cmnTypeTraits< value_type > TypeTraits
 
- Public Types inherited from vctMatrixRotation3Base< vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > >
enum  
 
enum  
 
typedef vctFixedSizeMatrix
< _elementType,
3, 3, _rowMajor > 
ContainerType
 
typedef
vctMatrixRotation3ConstBase
< ContainerType
BaseType
 
typedef vctMatrixRotation3Base
< ContainerType
ThisType
 
typedef vctMatrixRotation3Base
< typename
ContainerType::MatrixValueType > 
RotationValueType
 
typedef cmnTypeTraits< value_type > TypeTraits
 
- 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
< ContainerType
ThisType
 
typedef vctMatrixRotation3
< value_type > 
RotationValueType
 
typedef cmnTypeTraits< value_type > TypeTraits
 
- 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_type > 
TypeTraits
 
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, _dataPtrType >
enum  { DIMENSION = 2 }
 
enum  { ROWS = MatrixTraits::ROWS, COLS = MatrixTraits::COLS, LENGTH = MatrixTraits::LENGTH }
 
enum  { ROWSTRIDE = MatrixTraits::ROWSTRIDE, COLSTRIDE = MatrixTraits::COLSTRIDE }
 
enum  { DIAGONAL_LENGTH = (ROWS <= COLS) ? ROWS : COLS, DIAGONAL_STRIDE = ROWSTRIDE + COLSTRIDE }
 
typedef
vctFixedSizeConstMatrixBase
< _rows, _cols, _rowStride,
_colStride, _elementType,
_dataPtrType > 
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,
COLSTRIDE
ConstRowRefType
 
typedef vctFixedSizeVectorRef
< _elementType, COLS,
COLSTRIDE
RowRefType
 
typedef
vctFixedSizeConstVectorRef
< _elementType, ROWS,
ROWSTRIDE
ConstColumnRefType
 
typedef vctFixedSizeVectorRef
< _elementType, ROWS,
ROWSTRIDE
ColumnRefType
 
typedef
vctFixedSizeConstVectorRef
< _elementType,
DIAGONAL_LENGTH,
DIAGONAL_STRIDE
ConstDiagonalRefType
 
typedef vctFixedSizeVectorRef
< _elementType,
DIAGONAL_LENGTH,
DIAGONAL_STRIDE
DiagonalRefType
 
typedef vctFixedSizeVector
< _elementType, COLS
RowValueType
 
typedef vctFixedSizeVector
< _elementType, ROWS
ColumnValueType
 
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<=ROWSTRIDE >
TransposeValueType;typedef
vctFixedSizeMatrix
< _elementType, ROWS, COLS,
COLSTRIDE<=ROWSTRIDE >
MatrixValueType;typedef
vctFixedSizeMatrix< bool, ROWS,
COLS, COLSTRIDE<=ROWSTRIDE >
BoolMatrixValueType;typedef
_dataPtrType DataType;protected:DataType
Data;inline void
ThrowUnlessValidIndex(size_type
index) const throw(std::out_of_range){if(!ValidIndex(index)){cmnThrow(std::out_of_range("vctFixedSizeMatrix:
Invalid index"));}}inline void
ThrowUnlessValidIndex(size_type
rowIndex, size_type colIndex)
const throw(std::out_of_range){if(!ValidIndex(rowIndex,
colIndex)){cmnThrow(std::out_of_range("vctFixedSizeMatrix:
Invalid indices"));}}public:const_iterator
begin() const {return
const_iterator(Data,
0);}const_iterator end() const
{return const_iterator(Data)+LENGTH;}const_reverse_iterator
rbegin() const {return
const_reverse_iterator(Pointer(ROWS-1,
COLS-1),
0);}const_reverse_iterator
rend() const {return
const_reverse_iterator(Data-ROWSTRIDE+COLSTRIDE
*(COLS-1), 0);}size_type size()
const {return LENGTH;}const
nsize_type &sizes(void) const
{static nsize_type staticSizes(ROWS,
COLS);return staticSizes;}size_type
rows() const {return ROWS;}size_type
cols() const {return COLS;}size_type
max_size() const {return
LENGTH;}const nstride_type
&strides(void) const {static
nstride_type staticStrides(ROWSTRIDE,
COLSTRIDE);return
staticStrides;}difference_type
row_stride() const {return
ROWSTRIDE;}difference_type
col_stride() const {return
COLSTRIDE;}bool empty() const
{return(LENGTH==0);}ConstRowRefType
operator[](size_type index)
const {return ConstRowRefType(Data+ROWSTRIDE
*index);}const_pointer Pointer(size_type
rowIndex, size_type colIndex)
const {return Data+ROWSTRIDE
*rowIndex+COLSTRIDE *colIndex;}const_pointer
Pointer(void) const {return
Data;}inline bool ValidIndex(size_type
index) const {return(index
< size());}inline bool
ValidIndex(size_type rowIndex,
size_type colIndex) const
{return((rowIndex< rows())&&(colIndex
< cols()));}inline bool
ValidRowIndex(size_type
rowIndex) const {return(rowIndex
< rows());}inline bool
ValidColIndex(size_type
colIndex) const {return(colIndex
< cols());}const_reference at(size_type
index) const throw(std::out_of_range){ThrowUnlessValidIndex(index);return(begin())[index];}const_reference
at(size_type rowIndex,
size_type colIndex) const
throw(std::out_of_range){ThrowUnlessValidIndex(rowIndex,
colIndex);return *(Pointer(rowIndex,
colIndex));}const_reference
operator()(size_type rowIndex,
size_type colIndex) const
throw(std::out_of_range){return
at(rowIndex, colIndex);}const_reference
Element(size_type rowIndex,
size_type colIndex) const
{return *(Pointer(rowIndex,
colIndex));}ConstRowRefType
Row(size_type index) const
{return ConstRowRefType(Data+ROWSTRIDE
*index);}ConstColumnRefType
Column(size_type index) const
{return ConstColumnRefType(Data+COLSTRIDE
*index);}ConstDiagonalRefType
Diagonal(void) const {return
ConstDiagonalRefType(Data);}template
< vct::size_type __subRows,
vct::size_type __subCols >
vctFixedSizeConstMatrixRef
< _elementType, __subRows,
__subCols, _rowStride,
_colStride > Ref(const
size_type startRow=0, const
size_type startCol=0) const
throw(std::out_of_range){vctFixedSizeConstMatrixRef
< _elementType, __subRows,
__subCols, _rowStride,
_colStride > result(*this,
startRow, startCol);return
result;}inline value_type
SumOfElements() const {return
vctFixedSizeMatrixLoopEngines::SoMi
< typename vctBinaryOperations
< value_type >::Addition,
typename vctUnaryOperations
< value_type >::Identity >
::Run(*this);}inline
value_type ProductOfElements()
const {return
vctFixedSizeMatrixLoopEngines::SoMi
< typename vctBinaryOperations
< value_type >::Multiplication,
typename vctUnaryOperations
< value_type >::Identity >
::Run(*this);}inline
value_type Trace(void) const
{return this->Diagonal().SumOfElements();}inline
value_type NormSquare(void)
const {return
vctFixedSizeMatrixLoopEngines::SoMi
< typename vctBinaryOperations
< value_type >::Addition,
typename vctUnaryOperations
< value_type >::Square >::Run(*this);}inline
NormType Norm(void) const
{return sqrt(NormType(NormSquare()));}inline
value_type L1Norm(void) const
{return
vctFixedSizeMatrixLoopEngines::SoMi
< typename vctBinaryOperations
< value_type >::Addition,
typename vctUnaryOperations
< value_type >::AbsValue >
::Run(*this);}inline
value_type LinfNorm(void)
const {return this->
MaxAbsElement();}inline
value_type MaxElement(void)
const {return
vctFixedSizeMatrixLoopEngines::SoMi
< typename vctBinaryOperations
< value_type >::Maximum,
typename vctUnaryOperations
< value_type >::Identity >
::Run(*this);}inline
value_type MinElement(void)
const {return
vctFixedSizeMatrixLoopEngines::SoMi
< typename vctBinaryOperations
< value_type >::Minimum,
typename vctUnaryOperations
< value_type >::Identity >
::Run(*this);}inline
value_type MaxAbsElement(void)
const {return
vctFixedSizeMatrixLoopEngines::SoMi
< typename vctBinaryOperations
< value_type >::Maximum,
typename vctUnaryOperations
< value_type >::AbsValue >
::Run(*this);}inline
value_type MinAbsElement(void)
const {return
vctFixedSizeMatrixLoopEngines::SoMi
< typename vctBinaryOperations
< value_type >::Minimum,
typename vctUnaryOperations
< value_type >::AbsValue >
::Run(*this);}inline void
MinAndMaxElement(value_type
&minElement, value_type
&maxElement) const
{vctFixedSizeMatrixLoopEngines::MinAndMax::Run((*this),
minElement, maxElement);}inline
bool IsPositive(void) const
{return
vctFixedSizeMatrixLoopEngines::SoMi
< typename vctBinaryOperations
< bool >::And, typename
vctUnaryOperations< bool,
value_type >::IsPositive >
::Run(*this);}inline bool
IsNonNegative(void) const
{return
vctFixedSizeMatrixLoopEngines::SoMi
< typename vctBinaryOperations
< bool >::And, typename
vctUnaryOperations< bool,
value_type >::IsNonNegative >
::Run(*this);}inline bool
IsNonPositive(void) const
{return
vctFixedSizeMatrixLoopEngines::SoMi
< typename vctBinaryOperations
< bool >::And, typename
vctUnaryOperations< bool,
value_type >::IsNonPositive >
::Run(*this);}inline bool
IsNegative(void) const {return
vctFixedSizeMatrixLoopEngines::SoMi
< typename vctBinaryOperations
< bool >::And, typename
vctUnaryOperations< bool,
value_type >::IsNegative >
::Run(*this);}inline bool All(void)
const {return
vctFixedSizeMatrixLoopEngines::SoMi
< typename vctBinaryOperations
< bool >::And, typename
vctUnaryOperations< bool,
value_type >::IsNonzero >::Run(*this);}inline
bool Any(void) const {return
vctFixedSizeMatrixLoopEngines::SoMi
< typename vctBinaryOperations
< bool >::Or, typename
vctUnaryOperations< bool,
value_type >::IsNonzero >::Run(*this);}inline
bool IsFinite(void) const
{return
vctFixedSizeMatrixLoopEngines::SoMi
< typename vctBinaryOperations
< bool >::And, typename
vctUnaryOperations< bool,
value_type >::IsFinite >::Run(*this);}inline
bool HasNaN(void) const
{return
vctFixedSizeMatrixLoopEngines::SoMi
< typename vctBinaryOperations
< bool >::Or, typename
vctUnaryOperations< bool,
value_type >::IsNaN >::Run(*this);}inline
bool IsColMajor(void) const
{return(row_stride()
<=col_stride());}inline bool
IsRowMajor(void) const {return(col_stride()
<=row_stride());}inline bool
IsCompact(void) const {return(((row_stride()==1)&&(col_stride()==static_cast
< stride_type >rows())))||((col_stride()==1)&&(row_stride()==static_cast
< stride_type >cols()))));}inline
bool IsFortran(void) const
{return(IsColMajor()&&(row_stride()==1)&&(col_stride()==static_cast
< stride_type >rows())));}inline
bool StorageOrder(void) const
{return this-> 
IsRowMajor ()
 

Public Member Functions

 VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType)
 
 vctMatrixRotation3 (void)
 
 vctMatrixRotation3 (const ThisType &other)
 
 vctMatrixRotation3 (const BaseType &other)
 
 vctMatrixRotation3 (const vctDynamicMatrixRef< value_type > &other)
 
ThisTypeoperator= (const ContainerType &other)
 
ThisTypeoperator= (const ThisType &other)
 
ThisTypeoperator= (const BaseType &other)
 
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
 vctMatrixRotation3 (const vctFixedSizeMatrixBase< ROWS, COLS, __rowStride, __colStride, value_type, __dataPtrType > &matrix)
 
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) throw (std::runtime_error)
 
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) throw (std::runtime_error)
 
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) throw (std::runtime_error)
 
 vctMatrixRotation3 (const vctAxisAngleRotation3< value_type > &axisAngleRotation) throw (std::runtime_error)
 
template<class __containerType >
 vctMatrixRotation3 (const vctQuaternionRotation3Base< __containerType > &quaternionRotation) throw (std::runtime_error)
 
template<class __containerType >
 vctMatrixRotation3 (const vctRodriguezRotation3Base< __containerType > &rodriguezRotation) throw (std::runtime_error)
 
template<vctEulerRotation3Order::OrderType __order>
 vctMatrixRotation3 (const vctEulerRotation3< __order > &eulerRotation) throw (std::runtime_error)
 
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)
 
- Public Member Functions inherited from vctMatrixRotation3Base< vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > >
 VCT_CONTAINER_TRAITS_TYPEDEFS (typename ContainerType::value_type)
 
 vctMatrixRotation3Base ()
 
ThisTypeNormalizedSelf (void)
 
ThisTypeNormalizedOf (ThisType &otherMatrix)
 
ThisTypeInverseSelf (void)
 
ThisTypeInverseOf (const ThisType &otherRotation)
 
ThisTypeFrom (const vctMatrixRotation3Base< __containerType > &other) throw (std::runtime_error)
 
ThisTypeFrom (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)
 
ThisTypeFrom (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)
 
ThisTypeFrom (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)
 
ThisTypeFrom (const vctAxisAngleRotation3< value_type > &axisAngleRotation) throw (std::runtime_error)
 
ThisTypeFrom (const vctQuaternionRotation3Base< __containerType > &quaternionRotation) throw (std::runtime_error)
 
ThisTypeFrom (const vctRodriguezRotation3Base< __containerType > &rodriguezRotation) throw (std::runtime_error)
 
ThisTypeFrom (const vctEulerRotation3< __order > &eulerRotation) throw (std::runtime_error)
 
ThisTypeFromNormalized (const vctMatrixRotation3Base< __containerType > &other) throw (std::runtime_error)
 
ThisTypeFromNormalized (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)
 
ThisTypeFromNormalized (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)
 
ThisTypeFromNormalized (const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &v1, const vctDynamicConstVectorBase< __vectorOwnerType2, value_type > &v2, const vctDynamicConstVectorBase< __vectorOwnerType3, value_type > &v3, bool vectorsAreColumns=true)
 
ThisTypeFromNormalized (const vctAxisAngleRotation3< value_type > &axisAngleRotation)
 
ThisTypeFromNormalized (const vctQuaternionRotation3Base< __containerType > &quaternionRotation)
 
ThisTypeFromNormalized (const vctRodriguezRotation3Base< __containerType > &rodriguezRotation)
 
ThisTypeFromNormalized (const vctEulerRotation3< __order > &eulerRotation)
 
ThisTypeFromRaw (const vctMatrixRotation3Base< __containerType > &other) throw (std::runtime_error)
 
ThisTypeFromRaw (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)
 
ThisTypeFromRaw (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)
 
ThisTypeFromRaw (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)
 
ThisTypeFromRaw (const vctAxisAngleRotation3< value_type > &axisAngleRotation)
 
ThisTypeFromRaw (const vctQuaternionRotation3Base< __containerType > &quaternionRotation)
 
ThisTypeFromRaw (const vctRodriguezRotation3Base< __containerType > &rodriguezRotation)
 
ThisTypeFromRaw (const vctEulerRotation3< __order > &eulerRotation)
 
ThisTypeFromRaw (const ThisType &otherRotation)
 
ThisTypeFromRaw (const vctFixedSizeMatrixBase< ROWS, COLS, __rowStride, __colStride, value_type, __dataPtrType > &matrix)
 
- 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
 
vctFixedSizeVector< value_type,
DIMENSION
ApplyTo (const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &input) const
 
ThisType ApplyTo (const ThisType &input) const
 
void ApplyTo (const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &input, vctDynamicVectorBase< __vectorOwnerType2, value_type > &output) const throw (std::runtime_error)
 
void ApplyTo (const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &input, vctFixedSizeVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &output) const throw (std::runtime_error)
 
vctFixedSizeVector< value_type,
DIMENSION
ApplyTo (const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &input) const
 
void ApplyTo (const vctFixedSizeConstMatrixBase< DIMENSION, __cols, __rowStride1, __colStride1, value_type, __dataPtrType1 > &input, vctFixedSizeMatrixBase< DIMENSION, __cols, __rowStride2, __colStride2, value_type, __dataPtrType2 > &output) const
 
void ApplyTo (const vctDynamicConstMatrixBase< __matrixOwnerType1, value_type > &input, vctDynamicMatrixBase< __matrixOwnerType2, value_type > &output) const
 
void ApplyInverseTo (const vctFixedSizeConstVectorBase< DIMENSION, __stride1, value_type, __dataPtrType1 > &input, vctFixedSizeVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > &output) const
 
vctFixedSizeVector< value_type,
DIMENSION
ApplyInverseTo (const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &input) const
 
vctFixedSizeVector< value_type,
DIMENSION
ApplyInverseTo (const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &input) const
 
void ApplyInverseTo (const ThisType &input, ThisType &output) const
 
ThisType ApplyInverseTo (const ThisType &input) const
 
void ApplyInverseTo (const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &input, vctDynamicVectorBase< __vectorOwnerType2, value_type > &output) const
 
void ApplyInverseTo (const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &input, vctFixedSizeVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &output) const
 
void ApplyInverseTo (const vctFixedSizeConstMatrixBase< DIMENSION, __cols, __rowStride1, __colStride1, value_type, __dataPtrType1 > &input, vctFixedSizeMatrixBase< DIMENSION, __cols, __rowStride2, __colStride2, value_type, __dataPtrType2 > &output) const
 
void ApplyInverseTo (const vctDynamicConstMatrixBase< __matrixOwnerType1, value_type > &input, vctDynamicMatrixBase< __matrixOwnerType2, value_type > &output) const
 
ThisType operator* (const ThisType &input) const
 
vctFixedSizeVector< value_type,
DIMENSION
operator* (const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &input) const
 
vctFixedSizeVector< value_type,
DIMENSION
operator* (const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &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 ()
 
 vctFixedSizeMatrix (const value_type &value)
 
 vctFixedSizeMatrix (const value_type element0, const value_type element1,...)
 
 vctFixedSizeMatrix (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, __elementType, __dataPtrType > &matrix)
 
 vctFixedSizeMatrix (const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &matrix)
 
ThisTypeoperator= (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, __elementType, __dataPtrType > &other)
 
ThisTypeoperator= (const ThisType &other)
 
ThisTypeoperator= (const vctFixedSizeConstMatrixRef< value_type, _rows, _cols, __rowStride, __colStride > &other)
 
ThisTypeoperator= (const vctFixedSizeConstMatrixRef< __elementType, _rows, _cols, __rowStride, __colStride > &other)
 
ThisTypeoperator= (const value_type &value)
 
- 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 ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
RowRefType operator[] (size_type index)
 
ConstRowRefType operator[] (size_type index) const
 
pointer Pointer (size_type rowIndex, size_type colIndex)
 
pointer Pointer (void)
 
const_pointer Pointer (size_type rowIndex, size_type colIndex) const
 
const_pointer Pointer (void) const
 
reference at (size_type index) throw (std::out_of_range)
 
const_reference at (size_type index) const throw (std::out_of_range)
 
reference at (size_type rowIndex, size_type colIndex) throw (std::out_of_range)
 
const_reference at (size_type rowIndex, size_type colIndex) const throw (std::out_of_range)
 
reference operator() (size_type rowIndex, size_type colIndex) throw (std::out_of_range)
 
const_reference operator() (size_type rowIndex, size_type colIndex) const throw (std::out_of_range)
 
reference Element (size_type rowIndex, size_type colIndex)
 
const_reference Element (size_type rowIndex, size_type colIndex) const
 
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)
 
ThisTypeAssign (const value_type element0,...)
 
ThisTypeAssign (const value_type *elements, bool inputIsRowMajor=true)
 
ThisTypeAssign (const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &other)
 
RefTransposeType TransposeRef (void)
 
ConstRefTransposeType TransposeRef (void) const
 
void ProductOf (const vctFixedSizeConstMatrixBase< _rows, __input1Cols, __input1RowStride, __input1ColStride, _elementType, __input1DataPtrType > &input1Matrix, const vctFixedSizeConstMatrixBase< __input1Cols, _cols, __input2RowStride, __input2ColStride, _elementType, __input2DataPtrType > &input2Matrix)
 
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)
 
ThisTypeTransposeOf (const vctFixedSizeConstMatrixBase< _cols, _rows, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix)
 
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)
 
RowRefType Row (size_type index)
 
ConstRowRefType Row (size_type index) const
 
ColumnRefType Column (size_type index)
 
ConstColumnRefType Column (size_type index) const
 
DiagonalRefType Diagonal (void)
 
ConstDiagonalRefType Diagonal (void) const
 
vctFixedSizeMatrixRef
< _elementType, __subRows,
__subCols, _rowStride,
_colStride > 
Ref (const size_type startRow=0, const size_type startCol=0) throw (std::out_of_range)
 
vctFixedSizeConstMatrixRef
< _elementType, __subRows,
__subCols, _rowStride,
_colStride > 
Ref (const size_type startRow=0, const size_type startCol=0) const throw (std::out_of_range)
 
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)
 
ThisTypeForceAssign (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, __elementType, __dataPtrType > &other)
 
ThisTypeForceAssign (const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &other)
 
bool FastCopyOf (const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &source, bool performSafetyChecks=vctFastCopy::PerformChecks) throw (std::runtime_error)
 
bool FastCopyOf (const vctFixedSizeConstMatrixBase< ROWS, COLS, ROWSTRIDE, COLSTRIDE, value_type, __dataPtrType > &source, bool performSafetyChecks=vctFastCopy::PerformChecks) throw (std::runtime_error)
 
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)
 
ThisTypeSumOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type scalar)
 
ThisTypeDifferenceOf (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type scalar)
 
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)
 
ThisTypeSumOf (const value_type scalar, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix)
 
ThisTypeDifferenceOf (const value_type scalar, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix)
 
ThisTypeProductOf (const value_type scalar, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix)
 
ThisTypeRatioOf (const value_type scalar, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix)
 
ThisTypeClippedAboveOf (const value_type upperBound, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix)
 
ThisTypeClippedBelowOf (const value_type lowerBound, const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix)
 
ThisTypeAdd (const value_type scalar)
 
ThisTypeSubtract (const value_type scalar)
 
ThisTypeoperator+= (const value_type scalar)
 
ThisTypeoperator-= (const value_type scalar)
 
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)
 
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)
 
ThisTypeAbsSelf (void)
 
ThisTypeNegationSelf (void)
 
ThisTypeFloorSelf (void)
 
ThisTypeCeilSelf (void)
 
- Public Member Functions inherited from vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >
 VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType)
 
 VCT_NARRAY_TRAITS_TYPEDEFS (DIMENSION)
 
bool IsSquare (void) const
 
bool IsSquare (size_type size) const
 
template<size_type __rows, size_type __cols, stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool FastCopyCompatible (const vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, value_type, __dataPtrType > &source) const
 
template<class __matrixOwnerType >
bool FastCopyCompatible (const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &source) 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
 
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool Equal (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool operator== (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool AlmostEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix, value_type tolerance) const
 
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool AlmostEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool NotEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool operator!= (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool Lesser (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool LesserOrEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool Greater (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
bool GreaterOrEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
BoolMatrixValueType ElementwiseEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
BoolMatrixValueType ElementwiseNotEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
BoolMatrixValueType ElementwiseLesser (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
BoolMatrixValueType ElementwiseLesserOrEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
BoolMatrixValueType ElementwiseGreater (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
template<stride_type __rowStride, stride_type __colStride, class __dataPtrType >
BoolMatrixValueType ElementwiseGreaterOrEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
bool Equal (const value_type &scalar) const
 
bool operator== (const value_type &scalar) const
 
bool NotEqual (const value_type &scalar) const
 
bool operator!= (const value_type &scalar) const
 
bool Lesser (const value_type &scalar) const
 
bool LesserOrEqual (const value_type &scalar) const
 
bool Greater (const value_type &scalar) const
 
bool GreaterOrEqual (const value_type &scalar) const
 
BoolMatrixValueType ElementwiseEqual (const value_type &scalar) const
 
BoolMatrixValueType ElementwiseNotEqual (const value_type &scalar) const
 
BoolMatrixValueType ElementwiseLesser (const value_type &scalar) const
 
BoolMatrixValueType ElementwiseLesserOrEqual (const value_type &scalar) const
 
BoolMatrixValueType ElementwiseGreater (const value_type &scalar) const
 
BoolMatrixValueType ElementwiseGreaterOrEqual (const value_type &scalar) const
 
MatrixValueType Abs (void) const
 
MatrixValueType Negation (void) const
 
MatrixValueType Floor (void) const
 
MatrixValueType Ceil (void) const
 

Additional Inherited Members

- Static Public Member Functions inherited from vctMatrixRotation3ConstBase< vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > >
static CISST_EXPORT const
RotationValueType
Identity ()
 
- Static Public Member Functions inherited from vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >
static const MatrixValueType & Eye (void)
 
- Protected Member Functions inherited from vctMatrixRotation3ConstBase< vctFixedSizeMatrix< _elementType, 3, 3, _rowMajor > >
void ThrowUnlessIsNormalized (void) const throw (std::runtime_error)
 
void ThrowUnlessIsNormalized (const _inputType &input) const throw (std::runtime_error)
 

Detailed Description

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
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

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
typedef vctMatrixRotation3Base<ContainerType> vctMatrixRotation3< _elementType, _rowMajor >::BaseType
template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
typedef vctFixedSizeMatrix<value_type, ROWS, COLS, _rowMajor> vctMatrixRotation3< _elementType, _rowMajor >::ContainerType
template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
typedef vctMatrixRotation3<value_type, _rowMajor> vctMatrixRotation3< _elementType, _rowMajor >::ThisType
template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
typedef cmnTypeTraits<value_type> vctMatrixRotation3< _elementType, _rowMajor >::TypeTraits

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

Member Enumeration Documentation

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

Constructor & Destructor Documentation

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

Default constructor. Sets the rotation matrix to identity.

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const ThisType other)
inline
template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const BaseType other)
inlineexplicit
template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctDynamicMatrixRef< value_type > &  other)
inlineexplicit
template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
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);
template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
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.

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
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.

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctAxisAngleRotation3< value_type > &  axisAngleRotation)
throw (std::runtime_error
)
inlineexplicit

Construction from a vctAxisAngleRotation3.

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
template<class __containerType >
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctQuaternionRotation3Base< __containerType > &  quaternionRotation)
throw (std::runtime_error
)
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
template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
template<class __containerType >
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctRodriguezRotation3Base< __containerType > &  rodriguezRotation)
throw (std::runtime_error
)
inlineexplicit

Constructor from a vctRodriguezRotation3.

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
template<vctEulerRotation3Order::OrderType __order>
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctEulerRotation3< __order > &  eulerRotation)
throw (std::runtime_error
)
inlineexplicit

Constructor from a vctEulerRotation3.

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
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);
template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
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.

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
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.

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

Construction from a vctAxisAngleRotation3.

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
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)
template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
template<class __containerType >
vctMatrixRotation3< _elementType, _rowMajor >::vctMatrixRotation3 ( const vctRodriguezRotation3Base< __containerType > &  rodriguezRotation,
bool  normalizeInput 
)
inline

Constructor from a vctRodriguezRotation3.

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

Construction from a vctEulerRotation3.

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
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

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
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.

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

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