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

An implementation of the ``abstract'' vctFixedSizeConstMatrixBase. More...

#include <vctFixedSizeConstMatrixRef.h>

Inheritance diagram for vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >:
vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowStride, _colStride >::pointer >

Public Types

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
vctFixedSizeConstMatrixRef
< value_type, _rows, _cols,
_rowStride, _colStride > 
ThisType
 
typedef
vctFixedSizeConstMatrixBase
< _rows, _cols, _rowStride,
_colStride, value_type,
typename MatrixTraits::pointer > 
BaseType
 
- Public Types inherited from vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowStride, _colStride >::pointer >
enum  
 
enum  
 
enum  
 
enum  
 
typedef
vctFixedSizeConstMatrixBase
< _rows, _cols, _rowStride,
_colStride, _elementType,
vctFixedSizeMatrixTraits
< _elementType, _rows, _cols,
_rowStride, _colStride >
::pointer > 
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
vctFixedSizeMatrixTraits
< _elementType, _rows, _cols,
_rowStride, _colStride >
::pointerDataType;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)
 
 vctFixedSizeConstMatrixRef ()
 
 vctFixedSizeConstMatrixRef (pointer p)
 
template<size_type __rows, size_type __cols, class __dataPtrType >
 vctFixedSizeConstMatrixRef (const vctFixedSizeConstMatrixBase< __rows, __cols, _rowStride, _colStride, _elementType, __dataPtrType > &matrix)
 
template<size_type __rows, size_type __cols, class __dataPtrType >
 vctFixedSizeConstMatrixRef (const vctFixedSizeConstMatrixBase< __rows, __cols, _rowStride, _colStride, _elementType, __dataPtrType > &matrix, size_type startRow, size_type startCol)
 
template<class __matrixOwnerType >
 vctFixedSizeConstMatrixRef (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix, size_type startRow, size_type startCol)
 
 vctFixedSizeConstMatrixRef (const_pointer p)
 
void SetRef (pointer p)
 
void SetRef (const_pointer p)
 
template<size_type __rows, size_type __cols, class __dataPtrType >
void SetRef (const vctFixedSizeConstMatrixBase< __rows, __cols, _rowStride, _colStride, _elementType, __dataPtrType > &matrix, size_type startRow, size_type startCol)
 
template<class __matrixOwnerType >
void SetRef (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix, size_type startRow, size_type startCol)
 
- Public Member Functions inherited from vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowStride, _colStride >::pointer >
 VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType)
 
 VCT_NARRAY_TRAITS_TYPEDEFS (DIMENSION)
 
bool IsSquare (void) const
 
bool IsSquare (size_type size) const
 
bool FastCopyCompatible (const vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, value_type, __dataPtrType > &source) const
 
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
 
bool Equal (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
bool operator== (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
bool AlmostEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix, value_type tolerance) const
 
bool AlmostEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
bool NotEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
bool operator!= (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
bool Lesser (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
bool LesserOrEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
bool Greater (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
bool GreaterOrEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
BoolMatrixValueType ElementwiseEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
BoolMatrixValueType ElementwiseNotEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
BoolMatrixValueType ElementwiseLesser (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
BoolMatrixValueType ElementwiseLesserOrEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
BoolMatrixValueType ElementwiseGreater (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
BoolMatrixValueType ElementwiseGreaterOrEqual (const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &otherMatrix) const
 
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 vctFixedSizeConstMatrixBase< _rows, _cols, _rowStride, _colStride, _elementType, vctFixedSizeMatrixTraits< _elementType, _rows, _cols, _rowStride, _colStride >::pointer >
static const MatrixValueType & Eye (void)
 

Detailed Description

template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
class vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >

An implementation of the ``abstract'' vctFixedSizeConstMatrixBase.

This implementations uses a pointer to the matrix beginning as the matrix defining data member. An instantiation of this type can be used as a matrix reference with TransposeRef().

Note that the class provides only const operations, except for assigning the matrix start, which does not affect the matrix. This is despite the fact that the stored pointer is non-const.

See the base class (vctFixedSizeConstMatrixBase) for template parameter details.

Member Typedef Documentation

template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
typedef vctFixedSizeConstMatrixBase<_rows, _cols, _rowStride, _colStride, value_type, typename MatrixTraits::pointer> vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::BaseType
template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
typedef MatrixTraits::const_iterator vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::const_iterator
template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
typedef MatrixTraits::const_reverse_iterator vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::const_reverse_iterator
template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
typedef MatrixTraits::iterator vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::iterator
template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
typedef vctFixedSizeMatrixTraits<_elementType, _rows, _cols, _rowStride, _colStride> vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::MatrixTraits
template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
typedef MatrixTraits::reverse_iterator vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::reverse_iterator
template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
typedef vctFixedSizeConstMatrixRef<value_type, _rows, _cols, _rowStride, _colStride> vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::ThisType

Constructor & Destructor Documentation

template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::vctFixedSizeConstMatrixRef ( )
inline

Default constructor: create an uninitialized matrix

template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::vctFixedSizeConstMatrixRef ( pointer  p)
inline

Initialize the matrix with a (non-const) pointer

template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
template<size_type __rows, size_type __cols, class __dataPtrType >
vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::vctFixedSizeConstMatrixRef ( const vctFixedSizeConstMatrixBase< __rows, __cols, _rowStride, _colStride, _elementType, __dataPtrType > &  matrix)
inline

Convenience constructor to initialize a reference to a fixed-size matrix object. Since the argument is const, there is no worry about explicit instantiation.

template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
template<size_type __rows, size_type __cols, class __dataPtrType >
vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::vctFixedSizeConstMatrixRef ( const vctFixedSizeConstMatrixBase< __rows, __cols, _rowStride, _colStride, _elementType, __dataPtrType > &  matrix,
size_type  startRow,
size_type  startCol 
)
inline

Convenience constructor to initialize a reference to a fixed-size matrix object.

template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
template<class __matrixOwnerType >
vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::vctFixedSizeConstMatrixRef ( const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &  matrix,
size_type  startRow,
size_type  startCol 
)
inline

Convenience constructor to initialize a fixed-size reference to a dynamic matrix. The involves assertion that the sizes and strides match

template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::vctFixedSizeConstMatrixRef ( const_pointer  p)
inline

Initialize the matrix with a const pointer. This requires const_cast.

Member Function Documentation

template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
void vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::SetRef ( pointer  p)
inline

Assign the matrix start with a (non-const) pointer

template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
void vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::SetRef ( const_pointer  p)
inline

Assign the matrix start with a const pointer. This requires const_cast.

template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
template<size_type __rows, size_type __cols, class __dataPtrType >
void vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::SetRef ( const vctFixedSizeConstMatrixBase< __rows, __cols, _rowStride, _colStride, _elementType, __dataPtrType > &  matrix,
size_type  startRow,
size_type  startCol 
)
inline

Convenience method to set a reference to a fixed-size matrix object.

Parameters
matrixthe fixed size matrix to be referenced
startRowthe row index from which reference will start
startColthe column index from which reference will start The strides of this matrix must be identical to the strides of the other matrix (this is enforced by the template parameters).
Note
This method asserts that the size of this matrix does not exceed the size of the input matrix (otherwise cmnThrow is used to throw std::out_of_range).
template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
template<class __matrixOwnerType >
void vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::SetRef ( const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &  matrix,
size_type  startRow,
size_type  startCol 
)
inline

Convenience method to set a reference to a dynamic matrix object.

Parameters
matrixthe fixed size matrix to be referenced
startRowthe row index from which reference will start
startColthe column index from which reference will start The strides of this matrix must be identical to the strides of the other matrix (otherwise cmnThrow is used to throw std::runtime_error).
Note
This method asserts that the size of this matrix does not exceed the size of the input matrix (otherwise cmnThrow is used to throw std::out_of_range).
template<class _elementType, vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride, vct::stride_type _colStride>
vctFixedSizeConstMatrixRef< _elementType, _rows, _cols, _rowStride, _colStride >::VCT_CONTAINER_TRAITS_TYPEDEFS ( _elementType  )

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