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

Template base class for a 4x4 frame. More...

#include <vctForwardDeclarations.h>

Inheritance diagram for vctFrame4x4< _elementType, _rowMajor >:
vctFrame4x4Base< vctFixedSizeMatrix< _elementType, 4, 4, _rowMajor > > vctFrame4x4ConstBase< vctFixedSizeMatrix< _elementType, 4, 4, _rowMajor > > vctFixedSizeMatrix< _elementType, 4, 4, _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 = 4, COLS = 4 }
 
enum  { DIMENSION = 3 }
 
typedef vctFixedSizeMatrix
< value_type, ROWS, COLS,
_rowMajor > 
ContainerType
 
typedef vctFrame4x4Base
< ContainerType
BaseType
 
typedef vctFrame4x4
< value_type, _rowMajor > 
ThisType
 
typedef cmnTypeTraits< value_type > TypeTraits
 
- Public Types inherited from vctFrame4x4Base< vctFixedSizeMatrix< _elementType, 4, 4, _rowMajor > >
enum  
 
enum  
 
typedef vctFixedSizeMatrix
< _elementType,
4, 4, _rowMajor > 
ContainerType
 
typedef vctFrame4x4ConstBase
< ContainerType
BaseType
 
typedef vctFrame4x4Base
< ContainerType
ThisType
 
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::MatrixValueType MatrixValueType
 
typedef
BaseType::TranslationRefType 
TranslationRefType
 
typedef
BaseType::ConstTranslationRefType 
ConstTranslationRefType
 
typedef
BaseType::PerspectiveRefType 
PerspectiveRefType
 
typedef
BaseType::ConstPerspectiveRefType 
ConstPerspectiveRefType
 
typedef BaseType::RotationRefType RotationRefType
 
typedef
BaseType::ConstRotationRefType 
ConstRotationRefType
 
typedef cmnTypeTraits< value_type > TypeTraits
 
- Public Types inherited from vctFrame4x4ConstBase< vctFixedSizeMatrix< _elementType, 4, 4, _rowMajor > >
enum  
 
enum  
 
enum  
 
typedef vctFixedSizeMatrix
< _elementType,
4, 4, _rowMajor > 
BaseType
 
typedef vctFixedSizeMatrix
< _elementType,
4, 4, _rowMajor > 
ContainerType
 
typedef vctFrame4x4ConstBase
< ContainerType
ThisType
 
typedef BaseType::RowValueType RowValueType
 
typedef BaseType::ColumnValueType ColumnValueType
 
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 vctFrame4x4
< value_type, COLSTRIDE
<=ROWSTRIDE > FrameValueType;typedef
cmnTypeTraits< value_type >
TypeTraits;typedef
vctFixedSizeVectorRef
< value_type, DIMENSION,
ROWSTRIDE > TranslationRefType;typedef
vctFixedSizeConstVectorRef
< value_type, DIMENSION,
ROWSTRIDE >
ConstTranslationRefType;typedef
vctFixedSizeVectorRef
< value_type, DIMENSION,
COLSTRIDE > PerspectiveRefType;typedef
vctFixedSizeConstVectorRef
< value_type, DIMENSION,
COLSTRIDE >
ConstPerspectiveRefType;typedef
vctMatrixRotation3Ref
< value_type, ROWSTRIDE,
COLSTRIDE > RotationRefType;typedef
vctMatrixRotation3ConstRef
< value_type, ROWSTRIDE,
COLSTRIDE >
ConstRotationRefType;protected:RotationRefType
RotationRef;TranslationRefType
TranslationRef;PerspectiveRefType
PerspectiveRef;inline void
UpdateReferences(void){RotationRef.SetRef(this->
Pointer(0,
0));TranslationRef.SetRef(this->
Pointer(0, DIMENSION));PerspectiveRef.SetRef(this->
Pointer(DIMENSION,
0));}public:vctFrame4x4ConstBase(void){this-> 
UpdateReferences ()
 
- Public Types inherited from vctFixedSizeMatrix< _elementType, 4, 4, _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)
 
 vctFrame4x4 (void)
 
 vctFrame4x4 (const ThisType &other)
 
ThisTypeoperator= (const ThisType &other)
 
template<bool __rowMajor>
 vctFrame4x4 (const vctFrame4x4< value_type, __rowMajor > &other)
 
template<bool __rowMajor>
ThisTypeoperator= (const vctFrame4x4< value_type, __rowMajor > &other)
 
template<class __containerType >
 vctFrame4x4 (const vctFrame4x4ConstBase< __containerType > &other)
 
template<class __containerType >
ThisTypeoperator= (const vctFrame4x4ConstBase< __containerType > &other)
 
 vctFrame4x4 (const ContainerType &other)
 
ThisTypeoperator= (const ContainerType &other)
 
template<class _rotationType , class _translationType >
 vctFrame4x4 (const _rotationType &rotation, const _translationType &translation)
 
template<class __containerType >
 vctFrame4x4 (const vctFrameBase< __containerType > &other)
 
template<class __containerType >
 vctFrame4x4 (const vctFrameBase< __containerType > &other, bool normalizeInput)
 
- Public Member Functions inherited from vctFrame4x4Base< vctFixedSizeMatrix< _elementType, 4, 4, _rowMajor > >
 VCT_CONTAINER_TRAITS_TYPEDEFS (typename ContainerType::value_type)
 
 vctFrame4x4Base (void)
 
ConstTranslationRefType Translation (void) const
 
TranslationRefType Translation (void)
 
ConstRotationRefType Rotation (void) const
 
RotationRefType Rotation (void)
 
ConstPerspectiveRefType Perspective (void) const
 
PerspectiveRefType Perspective (void)
 
ThisTypeNormalizedSelf (void)
 
ThisTypeInverseSelf (void)
 
ThisTypeInverseOf (const vctFrame4x4ConstBase< __containerType > &otherFrame)
 
ThisTypeFrom (const __rotationType &rotation, const __translationType &translation) throw (std::runtime_error)
 
ThisTypeFromNormalized (const __rotationType &rotation, const __translationType &translation)
 
ThisTypeFromRaw (const __rotationType &rotation, const __translationType &translation)
 
ThisTypeFrom (const vctFrameBase< __rotationType > &frame) throw (std::runtime_error)
 
ThisTypeFromNormalized (const vctFrameBase< __rotationType > &frame)
 
ThisTypeFromRaw (const vctFrameBase< __rotationType > &frame)
 
- Public Member Functions inherited from vctFrame4x4ConstBase< vctFixedSizeMatrix< _elementType, 4, 4, _rowMajor > >
 VCT_CONTAINER_TRAITS_TYPEDEFS (typename ContainerType::value_type)
 
ConstTranslationRefType Translation (void) const
 
ConstRotationRefType Rotation (void) const
 
ConstPerspectiveRefType Perspective (void) const
 
FrameValueType Inverse (void) const
 
bool IsNormalized (value_type tolerance=TypeTraits::Tolerance()) 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
 
void ApplyTo (const vctFrame4x4ConstBase< __containerType1 > &input, vctFrame4x4Base< __containerType2 > &output) const
 
FrameValueType ApplyTo (const vctFrame4x4ConstBase< __containerType > &input) const
 
void ApplyTo (const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &input, vctDynamicVectorBase< __vectorOwnerType2, value_type > &output) 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 (size_type inputSize, const vctFixedSizeVector< value_type, DIMENSION > *input, vctFixedSizeVector< value_type, DIMENSION > *output) const
 
void ApplyInverseTo (const vctFixedSizeConstVectorBase< DIMENSION, __stride1, value_type, __dataPtrType1 > &input, vctFixedSizeVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > &output) const
 
void ApplyInverseTo (const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &input, vctDynamicVectorBase< __vectorOwnerType2, value_type > &output) const
 
vctFixedSizeVector< value_type,
DIMENSION
ApplyInverseTo (const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &input) const
 
void ApplyInverseTo (const vctFrame4x4ConstBase< __containerType1 > &input, vctFrame4x4Base< __containerType2 > &output) const
 
FrameValueType ApplyInverseTo (const vctFrame4x4ConstBase< __containerType > &input) const
 
bool AlmostEqual (const ThisType &other, value_type tolerance=TypeTraits::Tolerance()) const
 
bool AlmostEquivalent (const ThisType &other, value_type tolerance=TypeTraits::Tolerance()) const
 
bool Equal (const ThisType &other) const
 
bool operator== (const ThisType &other) const
 
- Public Member Functions inherited from vctFixedSizeMatrix< _elementType, 4, 4, _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 vctFrame4x4ConstBase< vctFixedSizeMatrix< _elementType, 4, 4, _rowMajor > >
static CISST_EXPORT const
FrameValueType & 
Identity (void)
 
- Static Public Member Functions inherited from vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, _dataPtrType >
static const MatrixValueType & Eye (void)
 

Detailed Description

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
class vctFrame4x4< _elementType, _rowMajor >

Template base class for a 4x4 frame.

This class allows to use a 4 by 4 matrix as a frame in 3D. This is a limited case of the so called homegenous transformations as this class is intended to support only the translation and rotation parts of the transformation. It is not intended to support perspective or scaling operations. The different constructors and normalization methods provided will set the last row to [0 0 0 1].

Parameters
_matrixTypeThe type of matrix used to store the elements
See Also
vctDynamicMatrix, vctFixedSizeMatrix, vctFrameBase

Member Typedef Documentation

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
typedef vctFrame4x4Base<ContainerType> vctFrame4x4< _elementType, _rowMajor >::BaseType
template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
typedef vctFixedSizeMatrix<value_type, ROWS, COLS, _rowMajor> vctFrame4x4< _elementType, _rowMajor >::ContainerType
template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
typedef vctFrame4x4<value_type, _rowMajor> vctFrame4x4< _elementType, _rowMajor >::ThisType
template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
typedef cmnTypeTraits<value_type> vctFrame4x4< _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>
vctFrame4x4< _elementType, _rowMajor >::vctFrame4x4 ( void  )
inline

Default constructor. Sets the matrix to identity.

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
vctFrame4x4< _elementType, _rowMajor >::vctFrame4x4 ( const ThisType other)
inline

Copy constructor. Uses Assign.

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
template<bool __rowMajor>
vctFrame4x4< _elementType, _rowMajor >::vctFrame4x4 ( const vctFrame4x4< value_type, __rowMajor > &  other)
inline

Copy constructor with different storage order, uses Assign

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
template<class __containerType >
vctFrame4x4< _elementType, _rowMajor >::vctFrame4x4 ( const vctFrame4x4ConstBase< __containerType > &  other)
inline

Copy constructor from vctFrame4x4ConstBase with a different container type. Uses Assign.

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
vctFrame4x4< _elementType, _rowMajor >::vctFrame4x4 ( const ContainerType other)
inline

Copy constructor from ContainerType. Uses Assign.

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
template<class _rotationType , class _translationType >
vctFrame4x4< _elementType, _rowMajor >::vctFrame4x4 ( const _rotationType &  rotation,
const _translationType &  translation 
)
inline

Constructor from a translation and a rotation.

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
template<class __containerType >
vctFrame4x4< _elementType, _rowMajor >::vctFrame4x4 ( const vctFrameBase< __containerType > &  other)
inlineexplicit

Constructor from a vctFrameBase. This constructor uses the method From which will test if the input is normalized. If the input is not normalized it will throw an exception of type std::runtime_error.

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
template<class __containerType >
vctFrame4x4< _elementType, _rowMajor >::vctFrame4x4 ( const vctFrameBase< __containerType > &  other,
bool  normalizeInput 
)
inline

Constructor from a vctFrameBase. This constructor uses the method FromNormalized or FromRaw based on the second argument (use VCT_NORMALIZE or VCT_DO_NOT_NORMALIZE).

Member Function Documentation

template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
ThisType& vctFrame4x4< _elementType, _rowMajor >::operator= ( const ThisType other)
inline
template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
template<bool __rowMajor>
ThisType& vctFrame4x4< _elementType, _rowMajor >::operator= ( const vctFrame4x4< value_type, __rowMajor > &  other)
inline
template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
template<class __containerType >
ThisType& vctFrame4x4< _elementType, _rowMajor >::operator= ( const vctFrame4x4ConstBase< __containerType > &  other)
inline
template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
ThisType& vctFrame4x4< _elementType, _rowMajor >::operator= ( const ContainerType other)
inline
template<class _elementType, bool _rowMajor = VCT_ROW_MAJOR>
vctFrame4x4< _elementType, _rowMajor >::VCT_CONTAINER_TRAITS_TYPEDEFS ( _elementType  )

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