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

Dynamic matrix referencing existing memory. More...

#include <vctDynamicMatrixRef.h>

Inheritance diagram for vctDynamicMatrixRef< _elementType >:
vctDynamicMatrixBase< vctDynamicMatrixRefOwner< _elementType >, _elementType > vctDynamicConstMatrixBase< vctDynamicMatrixRefOwner< _elementType >, _elementType >

Public Types

enum  { DIMENSION = 2 }
 
typedef vctDynamicMatrixRef
< _elementType > 
ThisType
 
typedef
vctDynamicMatrixRefOwner
< _elementType > 
MatrixOwnerType
 
typedef vctDynamicMatrixBase
< vctDynamicMatrixRefOwner
< _elementType >, _elementType > 
BaseType
 
typedef MatrixOwnerType::iterator iterator
 
typedef
MatrixOwnerType::const_iterator 
const_iterator
 
typedef
MatrixOwnerType::reverse_iterator 
reverse_iterator
 
typedef
MatrixOwnerType::const_reverse_iterator 
const_reverse_iterator
 
- Public Types inherited from vctDynamicMatrixBase< vctDynamicMatrixRefOwner< _elementType >, _elementType >
typedef vctDynamicMatrixBase ThisType
 
typedef
vctDynamicConstMatrixBase
< vctDynamicMatrixRefOwner
< _elementType >, _elementType > 
BaseType
 
typedef
vctDynamicMatrixRefOwner
< _elementType > 
OwnerType
 
typedef BaseType::iterator iterator
 
typedef BaseType::reverse_iterator reverse_iterator
 
typedef BaseType::const_iterator const_iterator
 
typedef
BaseType::const_reverse_iterator 
const_reverse_iterator
 
typedef BaseType::ConstRowRefType ConstRowRefType
 
typedef BaseType::RowRefType RowRefType
 
typedef
BaseType::ConstColumnRefType 
ConstColumnRefType
 
typedef BaseType::ColumnRefType ColumnRefType
 
typedef
BaseType::ConstDiagonalRefType 
ConstDiagonalRefType
 
typedef BaseType::DiagonalRefType DiagonalRefType
 
typedef
BaseType::ConstRefTransposeType 
ConstRefTransposeType
 
typedef BaseType::RefTransposeType RefTransposeType
 
typedef
BaseType::ConstVectorPointerType 
ConstVectorPointerType
 
typedef BaseType::VectorPointerType VectorPointerType
 
- Public Types inherited from vctDynamicConstMatrixBase< vctDynamicMatrixRefOwner< _elementType >, _elementType >
enum  
 
typedef
vctDynamicConstMatrixBase
< vctDynamicMatrixRefOwner
< _elementType >, _elementType > 
ThisType
 
typedef
vctDynamicMatrixRefOwner
< _elementType > 
OwnerType
 
typedef OwnerType::iterator iterator
 
typedef OwnerType::const_iterator const_iterator
 
typedef OwnerType::reverse_iterator reverse_iterator
 
typedef
OwnerType::const_reverse_iterator 
const_reverse_iterator
 
typedef
vctDynamicConstVectorRef
< _elementType > 
ConstRowRefType
 
typedef vctDynamicVectorRef
< _elementType > 
RowRefType
 
typedef
vctDynamicConstVectorRef
< _elementType > 
ConstColumnRefType
 
typedef vctDynamicVectorRef
< _elementType > 
ColumnRefType
 
typedef
vctDynamicConstVectorRef
< _elementType > 
ConstDiagonalRefType
 
typedef vctDynamicVectorRef
< _elementType > 
DiagonalRefType
 
typedef
vctDynamicConstMatrixRef
< _elementType > 
ConstRefTransposeType
 
typedef vctDynamicMatrixRef
< _elementType > 
RefTransposeType
 
typedef vctDynamicMatrix
< _elementType > 
TransposeValueType
 
typedef vctDynamicMatrix
< _elementType > 
MatrixValueType
 
typedef vctReturnDynamicMatrix
< _elementType > 
MatrixReturnType
 
typedef cmnTypeTraits< value_type > TypeTraits
 
typedef TypeTraits::BoolType BoolType
 
typedef vctReturnDynamicMatrix
< BoolType
BoolMatrixReturnType
 
typedef vctDynamicVector
< const_pointer > 
ConstVectorPointerType
 
typedef vctDynamicVector< pointer > VectorPointerType
 

Public Member Functions

 VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType)
 
 VCT_NARRAY_TRAITS_TYPEDEFS (DIMENSION)
 
 vctDynamicMatrixRef ()
 
 vctDynamicMatrixRef (const ThisType &other)
 
template<size_type __rows, size_type __cols, stride_type __rowStride, stride_type __colStride, typename __dataPtrType >
 vctDynamicMatrixRef (vctFixedSizeMatrixBase< __rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &otherMatrix)
 
template<size_type __rows, size_type __cols, stride_type __rowStride, stride_type __colStride, typename __dataPtrType >
 vctDynamicMatrixRef (vctFixedSizeMatrixBase< __rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &otherMatrix, size_type startRow, size_type startCol, size_type rows, size_type cols)
 
template<class __ownerType >
 vctDynamicMatrixRef (vctDynamicMatrixBase< __ownerType, _elementType > &otherMatrix)
 
template<class __ownerType >
 vctDynamicMatrixRef (vctDynamicMatrixBase< __ownerType, _elementType > &otherMatrix, size_type startRow, size_type startCol, size_type rows, size_type cols)
 
template<class __ownerType >
 vctDynamicMatrixRef (vctDynamicMatrixBase< __ownerType, _elementType > &otherMatrix, const nsize_type &start, const nsize_type &matrixSize)
 
template<size_type __rows, size_type __cols, stride_type __rowStride, stride_type __colStride, typename __dataPtrType >
void SetRef (vctFixedSizeMatrixBase< __rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &otherMatrix)
 
template<size_type __rows, size_type __cols, stride_type __rowStride, stride_type __colStride, typename __dataPtrType >
void SetRef (vctFixedSizeMatrixBase< __rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &otherMatrix, size_type startRow, size_type startCol, size_type rows, size_type cols)
 
template<class __ownerType >
void SetRef (vctDynamicMatrixBase< __ownerType, _elementType > &otherMatrix)
 
ThisTypeoperator= (const value_type &value)
 
void DeSerializeRaw (std::istream &inputStream) throw (std::runtime_error)
 
 vctDynamicMatrixRef (size_type rows, size_type cols, stride_type rowStride, stride_type colStride, pointer dataPointer)
 
 vctDynamicMatrixRef (const nsize_type &matrixSize, stride_type rowStride, stride_type colStride, pointer dataPointer)
 
 vctDynamicMatrixRef (const nsize_type &matrixSize, const nstride_type &matrixStride, pointer dataPointer)
 
 vctDynamicMatrixRef (size_type rows, size_type cols, pointer dataPointer, bool storageOrder=VCT_DEFAULT_STORAGE)
 
 vctDynamicMatrixRef (const nsize_type &matrixSize, pointer dataPointer, bool storageOrder=VCT_DEFAULT_STORAGE)
 
void SetRef (size_type rows, size_type cols, stride_type rowStride, stride_type colStride, pointer dataPointer)
 
void SetRef (const nsize_type &matrixSize, stride_type rowStride, stride_type colStride, pointer dataPointer)
 
void SetRef (const nsize_type &matrixSize, const nstride_type &matrixStride, pointer dataPointer)
 
void SetRef (size_type rows, size_type cols, pointer dataPointer, bool storageOrder=VCT_DEFAULT_STORAGE)
 
void SetRef (const nsize_type &sizes, pointer dataPointer, bool storageOrder=VCT_DEFAULT_STORAGE)
 
template<class __ownerType >
void SetRef (vctDynamicMatrixBase< __ownerType, _elementType > &otherMatrix, size_type startRow, size_type startCol, size_type rows, size_type cols)
 
template<class __ownerType >
void SetRef (vctDynamicMatrixBase< __ownerType, _elementType > &otherMatrix, const nsize_type &start, const nsize_type &matrixSize)
 
Assignment operation into a matrix reference
Parameters
otherThe matrix to be copied.
ThisTypeoperator= (const ThisType &other)
 
ThisTypeoperator= (const vctDynamicConstMatrixRef< _elementType > &other)
 
template<class __matrixOwnerType , typename __elementType >
ThisTypeoperator= (const vctDynamicConstMatrixBase< __matrixOwnerType, __elementType > &other)
 
template<size_type __rows, size_type __cols, stride_type __rowStride, stride_type __colStride, typename __dataPtrType >
ThisTypeoperator= (const vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &other)
 
- Public Member Functions inherited from vctDynamicMatrixBase< vctDynamicMatrixRefOwner< _elementType >, _elementType >
 VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType)
 
iterator begin (void)
 
const_iterator begin (void) const
 
iterator end (void)
 
const_iterator end (void) const
 
reverse_iterator rbegin (void)
 
const_reverse_iterator rbegin (void) const
 
reverse_iterator rend (void)
 
const_reverse_iterator rend (void) const
 
RowRefType operator[] (size_type index)
 
ConstRowRefType operator[] (size_type index) const
 
const OwnerTypeOwner (void) const
 
OwnerTypeOwner (void)
 
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 vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &inputMatrix, const index_type permutedRowIndexes[])
 
void RowInversePermutationOf (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &inputMatrix, const index_type permutedRowIndexes[])
 
void ColumnPermutationOf (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &inputMatrix, const index_type permutedColumnIndexes[])
 
void ColumnInversePermutationOf (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &inputMatrix, const index_type permutedColumnIndexes[])
 
value_type SetAll (const value_type value)
 
bool Zeros (void)
 
ThisTypeAssign (const value_type *elements, bool inputIsRowMajor=true)
 
ThisTypeAssign (const value_type element0,...)
 
RefTransposeType TransposeRef (void)
 
ConstRefTransposeType TransposeRef (void) const
 
void ProductOf (const vctDynamicConstMatrixBase< __matrixOwnerType1, _elementType > &matrix1, const vctDynamicConstMatrixBase< __matrixOwnerType2, _elementType > &matrix2)
 
ThisTypeAddProductOf (const value_type scalar, const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
 
ThisTypeAddElementwiseProductOf (const vctDynamicConstMatrixBase< __matrixOwnerType1, _elementType > &matrix1, const vctDynamicConstMatrixBase< __matrixOwnerType2, _elementType > &matrix2)
 
void OuterProductOf (const vctDynamicConstVectorBase< __vectorOwnerType1, _elementType > &colVector, const vctDynamicConstVectorBase< __vectorOwnerType2, _elementType > &rowVector)
 
RowRefType Row (size_type index) throw (std::out_of_range)
 
ConstRowRefType Row (size_type index) const throw (std::out_of_range)
 
ColumnRefType Column (size_type index) throw (std::out_of_range)
 
ConstColumnRefType Column (size_type index) const throw (std::out_of_range)
 
DiagonalRefType Diagonal (void)
 
ConstDiagonalRefType Diagonal (void) const
 
VectorPointerTypeRowPointers (VectorPointerType &rowPointers) throw (std::runtime_error)
 
ConstVectorPointerType RowPointers (ConstVectorPointerType &rowPointers) const throw (std::runtime_error)
 
vctDynamicMatrixRef< _elementType > Ref (const size_type rows, const size_type cols, const size_type startRow=0, const size_type startCol=0) throw (std::out_of_range)
 
vctDynamicConstMatrixRef
< _elementType > 
Ref (const size_type rows, const size_type cols, 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 vctDynamicConstMatrixBase< __inputMatrixOwnerType, _elementType > &inputMatrix, const vctDynamicConstVectorBase< __indexVectorOwnerType, index_type > &rowIndexVector)
 
void SelectColsFrom (const vctDynamicConstMatrixBase< __inputMatrixOwnerType, _elementType > &inputMatrix, const vctDynamicConstVectorBase< __indexVectorOwnerType, index_type > &colIndexVector)
 
ThisTypeAssign (const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &other)
 
ThisTypeAssign (const vctDynamicConstMatrixBase< __matrixOwnerType, __elementType > &other)
 
ThisTypeAssign (const vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, __elementType, __dataPtrType > &other)
 
ThisTypeoperator= (const vctDynamicConstMatrixBase< __matrixOwnerType, __elementType > &other)
 
ThisTypeForceAssign (const vctDynamicConstMatrixBase< __matrixOwnerType, __elementType > &other)
 
ThisTypeForceAssign (const vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, __elementType, __dataPtrType > &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 vctDynamicConstMatrixBase< __matrixOwnerType1, _elementType > &matrix1, const vctDynamicConstMatrixBase< __matrixOwnerType2, _elementType > &matrix2)
 
ThisTypeDifferenceOf (const vctDynamicConstMatrixBase< __matrixOwnerType1, _elementType > &matrix1, const vctDynamicConstMatrixBase< __matrixOwnerType2, _elementType > &matrix2)
 
ThisTypeElementwiseProductOf (const vctDynamicConstMatrixBase< __matrixOwnerType1, _elementType > &matrix1, const vctDynamicConstMatrixBase< __matrixOwnerType2, _elementType > &matrix2)
 
ThisTypeElementwiseRatioOf (const vctDynamicConstMatrixBase< __matrixOwnerType1, _elementType > &matrix1, const vctDynamicConstMatrixBase< __matrixOwnerType2, _elementType > &matrix2)
 
ThisTypeElementwiseMinOf (const vctDynamicConstMatrixBase< __matrixOwnerType1, _elementType > &matrix1, const vctDynamicConstMatrixBase< __matrixOwnerType2, _elementType > &matrix2)
 
ThisTypeElementwiseMaxOf (const vctDynamicConstMatrixBase< __matrixOwnerType1, _elementType > &matrix1, const vctDynamicConstMatrixBase< __matrixOwnerType2, _elementType > &matrix2)
 
ThisTypeAdd (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
 
ThisTypeSubtract (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
 
ThisTypeElementwiseMultiply (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
 
ThisTypeElementwiseDivide (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
 
ThisTypeElementwiseMin (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
 
ThisTypeElementwiseMax (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
 
ThisTypeoperator+= (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
 
ThisTypeoperator-= (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
 
ThisTypeSumOf (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix, const value_type scalar)
 
ThisTypeDifferenceOf (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix, const value_type scalar)
 
ThisTypeProductOf (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix, const value_type scalar)
 
ThisTypeRatioOf (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix, const value_type scalar)
 
ThisTypeClippedAboveOf (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix, const value_type lowerBound)
 
ThisTypeClippedBelowOf (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix, const value_type upperBound)
 
ThisTypeSumOf (const value_type scalar, const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix)
 
ThisTypeDifferenceOf (const value_type scalar, const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix)
 
ThisTypeProductOf (const value_type scalar, const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix)
 
ThisTypeRatioOf (const value_type scalar, const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix)
 
ThisTypeClippedAboveOf (const value_type upperBound, const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix)
 
ThisTypeClippedBelowOf (const value_type lowerBound, const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &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 vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
 
ThisTypeNegationOf (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
 
ThisTypeFloorOf (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
 
ThisTypeCeilOf (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
 
ThisTypeTransposeOf (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix)
 
ThisTypeAbsSelf (void)
 
ThisTypeNegationSelf (void)
 
ThisTypeFloorSelf (void)
 
ThisTypeCeilSelf (void)
 
- Public Member Functions inherited from vctDynamicConstMatrixBase< vctDynamicMatrixRefOwner< _elementType >, _elementType >
 VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType)
 
 VCT_NARRAY_TRAITS_TYPEDEFS (DIMENSION)
 
const_iterator begin (void) const
 
const_iterator end (void) const
 
const_reverse_iterator rbegin (void) const
 
const_reverse_iterator rend (void) const
 
size_type size (void) const
 
const nsize_type & sizes (void) const
 
size_type rows () const
 
size_type cols () const
 
size_type height () const
 
size_type width () const
 
const nstride_type & strides (void) const
 
difference_type row_stride () const
 
difference_type col_stride () const
 
bool empty () const
 
ConstRowRefType operator[] (size_type index) const
 
const_reference at (size_type index) const throw (std::out_of_range)
 
const_reference at (size_type rowIndex, size_type colIndex) const throw (std::out_of_range)
 
const OwnerTypeOwner (void) const
 
const_pointer Pointer (index_type rowIndex, index_type colIndex) const
 
const_pointer Pointer (void) const
 
bool ValidIndex (size_type index) const
 
bool ValidIndex (size_type rowIndex, size_type colIndex) const
 
bool ValidRowIndex (size_type rowIndex) const
 
bool ValidColIndex (size_type colIndex) const
 
const_reference operator() (size_type rowIndex, size_type colIndex) const throw (std::out_of_range)
 
const_reference Element (size_type rowIndex, size_type colIndex) const
 
ConstRowRefType Row (size_type index) const throw (std::out_of_range)
 
ConstColumnRefType Column (size_type index) const throw (std::out_of_range)
 
ConstDiagonalRefType Diagonal () const
 
ConstVectorPointerTypeRowPointers (ConstVectorPointerType &rowPointers) const throw (std::runtime_error)
 
vctDynamicConstMatrixRef
< _elementType > 
Ref (const size_type rows, const size_type cols, const size_type startRow=0, const size_type startCol=0) const throw (std::out_of_range)
 
ConstRefTransposeType TransposeRef (void) const
 
MatrixReturnType Transpose () const
 
std::string ToString (void)
 
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
 
value_type SumOfElements (void) const
 
value_type ProductOfElements (void) const
 
value_type Trace (void) const
 
value_type NormSquare (void) const
 
NormType Norm (void) const
 
value_type L1Norm (void) const
 
value_type LinfNorm (void) const
 
value_type MaxElement (void) const
 
value_type MinElement (void) const
 
value_type MaxAbsElement (void) const
 
value_type MinAbsElement (void) const
 
void MinAndMaxElement (value_type &minElement, value_type &maxElement) const
 
bool IsPositive (void) const
 
bool IsNonNegative (void) const
 
bool IsNonPositive (void) const
 
bool IsNegative (void) const
 
bool All (void) const
 
bool Any (void) const
 
bool IsFinite (void) const
 
bool HasNaN (void) const
 
bool IsColMajor (void) const
 
bool IsRowMajor (void) const
 
bool IsCompact (void) const
 
bool IsFortran (void) const
 
bool StorageOrder (void) const
 
bool IsSquare (void) const
 
bool IsSquare (size_type size) const
 
bool FastCopyCompatible (const vctDynamicConstMatrixBase< __matrixOwnerType, value_type > &source) const
 
bool FastCopyCompatible (const vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, value_type, __dataPtrType > &source) const
 
bool Equal (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix) const
 
bool operator== (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix) const
 
bool AlmostEqual (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix, value_type tolerance) const
 
bool AlmostEqual (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix) const
 
bool NotEqual (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix) const
 
bool operator!= (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix) const
 
bool Lesser (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix) const
 
bool LesserOrEqual (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix) const
 
bool Greater (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix) const
 
bool GreaterOrEqual (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix) const
 
BoolMatrixReturnType ElementwiseEqual (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix) const
 
BoolMatrixReturnType ElementwiseNotEqual (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix) const
 
BoolMatrixReturnType ElementwiseLesser (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix) const
 
BoolMatrixReturnType ElementwiseLesserOrEqual (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix) const
 
BoolMatrixReturnType ElementwiseGreater (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &otherMatrix) const
 
BoolMatrixReturnType ElementwiseGreaterOrEqual (const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &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
 
BoolMatrixReturnType ElementwiseEqual (const value_type &scalar) const
 
BoolMatrixReturnType ElementwiseNotEqual (const value_type &scalar) const
 
BoolMatrixReturnType ElementwiseLesser (const value_type &scalar) const
 
BoolMatrixReturnType ElementwiseLesserOrEqual (const value_type &scalar) const
 
BoolMatrixReturnType ElementwiseGreater (const value_type &scalar) const
 
BoolMatrixReturnType ElementwiseGreaterOrEqual (const value_type &scalar) const
 
MatrixReturnType Abs (void) const
 
MatrixReturnType Negation (void) const
 
MatrixReturnType Floor (void) const
 
MatrixReturnType Ceil (void) const
 

Additional Inherited Members

- Static Public Member Functions inherited from vctDynamicConstMatrixBase< vctDynamicMatrixRefOwner< _elementType >, _elementType >
static MatrixReturnType Eye (size_type size)
 
- Protected Member Functions inherited from vctDynamicConstMatrixBase< vctDynamicMatrixRefOwner< _elementType >, _elementType >
void ThrowUnlessValidIndex (size_type index) const throw (std::out_of_range)
 
void ThrowUnlessValidIndex (size_type rowIndex, size_type colIndex) const throw (std::out_of_range)
 
void ThrowUnlessValidRowIndex (size_type index) const throw (std::out_of_range)
 
void ThrowUnlessValidColIndex (size_type index) const throw (std::out_of_range)
 
- Protected Attributes inherited from vctDynamicConstMatrixBase< vctDynamicMatrixRefOwner< _elementType >, _elementType >
OwnerType Matrix
 

Detailed Description

template<class _elementType>
class vctDynamicMatrixRef< _elementType >

Dynamic matrix referencing existing memory.

The class vctDynamicMatrixRef allows to create a matrix overlaying an existing block of memory. It can be used to manipulate a container created by another toolkit (i.e. OpenGL, vtk, ...) or a cisstVector container using different parameters (different size, storage order or stride).

To setup the overlay, one can use either the constructors or the SetRef methods. When used with a cisst container, the SetRef methods can infer some of the memory layout information (pointer on first element, sizes, strides). When used to overlay existing memory referenced by a pointer, the user has to provide all the required information. In any case, the Ref object doesn't allocate nor free memory.

For example to manipulate the first five elements of a matrix, one can do:

vctDynamicMatrix<double> wholeMatrix(10, 10);
vctRandom(wholeMatrix, -10.0, 10.0);
first5x5.SetRef(wholeMatrix, 0, 0, 5, 5);
first5x5.SetAll(5.0);
Note
Make sure the underlying memory is not freed after the Ref object is created and before it is used. This would lead to faulty memory access and potential bugs.
vctDynamicMatrixRef can perform const and non-const operations. It can be initialized with a non-const object only (value_type *). For a const Ref, see vctDynamicConstMatrixRef.
See Also
vctDynamicMatrix, vctDynamicConstMatrixRef
Parameters
_elementTypeType of elements referenced. Also defined as value_type.

Member Typedef Documentation

template<class _elementType>
typedef vctDynamicMatrixBase<vctDynamicMatrixRefOwner<_elementType>, _elementType> vctDynamicMatrixRef< _elementType >::BaseType
template<class _elementType>
typedef MatrixOwnerType::const_iterator vctDynamicMatrixRef< _elementType >::const_iterator
template<class _elementType>
typedef MatrixOwnerType::const_reverse_iterator vctDynamicMatrixRef< _elementType >::const_reverse_iterator
template<class _elementType>
typedef MatrixOwnerType::iterator vctDynamicMatrixRef< _elementType >::iterator
template<class _elementType>
typedef vctDynamicMatrixRefOwner<_elementType> vctDynamicMatrixRef< _elementType >::MatrixOwnerType
template<class _elementType>
typedef MatrixOwnerType::reverse_iterator vctDynamicMatrixRef< _elementType >::reverse_iterator
template<class _elementType>
typedef vctDynamicMatrixRef<_elementType> vctDynamicMatrixRef< _elementType >::ThisType

Member Enumeration Documentation

template<class _elementType>
anonymous enum
Enumerator
DIMENSION 

Constructor & Destructor Documentation

template<class _elementType>
vctDynamicMatrixRef< _elementType >::vctDynamicMatrixRef ( )
inline
template<class _elementType>
vctDynamicMatrixRef< _elementType >::vctDynamicMatrixRef ( const ThisType other)
inline

Copy constructor. This copy constructor takes a const reference on the object to copy but has to remove the const-ness of the point to create a vctDynamicMatrixRef and allow it to manipulate elements. The explict use of a const_cast is far from great but there is no easy solution as C++ requires the copy constructor to take a const reference.

template<class _elementType>
vctDynamicMatrixRef< _elementType >::vctDynamicMatrixRef ( size_type  rows,
size_type  cols,
stride_type  rowStride,
stride_type  colStride,
pointer  dataPointer 
)
inline

Constructor requiring the user to provide all the necessary information, i.e. the size (number of rows and columns), the strides (increment from row to row and from column to column) as well as a pointer on the first element.

template<class _elementType>
vctDynamicMatrixRef< _elementType >::vctDynamicMatrixRef ( const nsize_type &  matrixSize,
stride_type  rowStride,
stride_type  colStride,
pointer  dataPointer 
)
inline
template<class _elementType>
vctDynamicMatrixRef< _elementType >::vctDynamicMatrixRef ( const nsize_type &  matrixSize,
const nstride_type &  matrixStride,
pointer  dataPointer 
)
inline
template<class _elementType>
vctDynamicMatrixRef< _elementType >::vctDynamicMatrixRef ( size_type  rows,
size_type  cols,
pointer  dataPointer,
bool  storageOrder = VCT_DEFAULT_STORAGE 
)
inline

Constructor requiring the user to provide the size of the matrix (number of rows and columns), a pointer on the first element and the desired storage order. If the storage order is omitted, the default is used (row major).

template<class _elementType>
vctDynamicMatrixRef< _elementType >::vctDynamicMatrixRef ( const nsize_type &  matrixSize,
pointer  dataPointer,
bool  storageOrder = VCT_DEFAULT_STORAGE 
)
inline
template<class _elementType>
template<size_type __rows, size_type __cols, stride_type __rowStride, stride_type __colStride, typename __dataPtrType >
vctDynamicMatrixRef< _elementType >::vctDynamicMatrixRef ( vctFixedSizeMatrixBase< __rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &  otherMatrix)
inline

Construct a dynamic reference to a fixed-size matrix.

Note
the strides of this reference will be identical to the strides of the input matrix. For a more advanced access, customize the parameters yourself (see the other ctors).
template<class _elementType>
template<size_type __rows, size_type __cols, stride_type __rowStride, stride_type __colStride, typename __dataPtrType >
vctDynamicMatrixRef< _elementType >::vctDynamicMatrixRef ( vctFixedSizeMatrixBase< __rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &  otherMatrix,
size_type  startRow,
size_type  startCol,
size_type  rows,
size_type  cols 
)
inline

Construct a dynamic reference to a fixed-size matrix.

Parameters
otherMatrixa fixed size matrix to which a reference is created.
startRowrow index of the position where the reference will start.
startColcolumn index of the position where the reference will start.
rowsthe number of rows being referenced
colsthe number of columns being referenced
Note
the strides of this reference will be identical to the strides of the input matrix. For a more advanced access, customize the parameters yourself (see the other ctors).
template<class _elementType>
template<class __ownerType >
vctDynamicMatrixRef< _elementType >::vctDynamicMatrixRef ( vctDynamicMatrixBase< __ownerType, _elementType > &  otherMatrix)
inline

Construct a dynamic reference to a dynamic matrix.

Note
the strides of this reference will be identical to the strides of the input matrix. For a more advanced access, customize the parameters yourself (see the other ctors).
template<class _elementType>
template<class __ownerType >
vctDynamicMatrixRef< _elementType >::vctDynamicMatrixRef ( vctDynamicMatrixBase< __ownerType, _elementType > &  otherMatrix,
size_type  startRow,
size_type  startCol,
size_type  rows,
size_type  cols 
)
inline

Construct a dynamic reference to a submatrix of a dynamic matrix.

Parameters
otherMatrixa dynamic matrix to which a reference is created.
startRowrow index of the position where the reference will start.
startColcolumn index of the position where the reference will start.
rowsthe number of rows being referenced
colsthe number of columns being referenced
Note
the strides of this reference will be identical to the strides of the input matrix. For a more advanced access, customize the parameters yourself (see the other ctors).
template<class _elementType>
template<class __ownerType >
vctDynamicMatrixRef< _elementType >::vctDynamicMatrixRef ( vctDynamicMatrixBase< __ownerType, _elementType > &  otherMatrix,
const nsize_type &  start,
const nsize_type &  matrixSize 
)
inline

Member Function Documentation

template<class _elementType>
void vctDynamicMatrixRef< _elementType >::DeSerializeRaw ( std::istream &  inputStream)
throw (std::runtime_error
)
inline

Binary deserialization. This method can not resize the existing block of memory and will throw an exception is the sizes don't match.

template<class _elementType>
ThisType& vctDynamicMatrixRef< _elementType >::operator= ( const ThisType other)
inline
template<class _elementType>
ThisType& vctDynamicMatrixRef< _elementType >::operator= ( const vctDynamicConstMatrixRef< _elementType > &  other)
inline
template<class _elementType>
template<class __matrixOwnerType , typename __elementType >
ThisType& vctDynamicMatrixRef< _elementType >::operator= ( const vctDynamicConstMatrixBase< __matrixOwnerType, __elementType > &  other)
inline
template<class _elementType>
template<size_type __rows, size_type __cols, stride_type __rowStride, stride_type __colStride, typename __dataPtrType >
ThisType& vctDynamicMatrixRef< _elementType >::operator= ( const vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &  other)
inline
template<class _elementType>
ThisType& vctDynamicMatrixRef< _elementType >::operator= ( const value_type &  value)
inline

Assignement of a scalar to all elements. See also SetAll.

template<class _elementType>
void vctDynamicMatrixRef< _elementType >::SetRef ( size_type  rows,
size_type  cols,
stride_type  rowStride,
stride_type  colStride,
pointer  dataPointer 
)
inline

Set a dynamic reference to a memory location. The user should specify all the parameters of the referenced memory, including a start memory address.

template<class _elementType>
void vctDynamicMatrixRef< _elementType >::SetRef ( const nsize_type &  matrixSize,
stride_type  rowStride,
stride_type  colStride,
pointer  dataPointer 
)
inline
template<class _elementType>
void vctDynamicMatrixRef< _elementType >::SetRef ( const nsize_type &  matrixSize,
const nstride_type &  matrixStride,
pointer  dataPointer 
)
inline
template<class _elementType>
void vctDynamicMatrixRef< _elementType >::SetRef ( size_type  rows,
size_type  cols,
pointer  dataPointer,
bool  storageOrder = VCT_DEFAULT_STORAGE 
)
inline

Set a dynamic reference to a memory location. The user should specify the dimension, start memory address and desired storage order. This method assumes there is enough memory and will create a compact matrix reference.

template<class _elementType>
void vctDynamicMatrixRef< _elementType >::SetRef ( const nsize_type &  sizes,
pointer  dataPointer,
bool  storageOrder = VCT_DEFAULT_STORAGE 
)
inline
template<class _elementType>
template<size_type __rows, size_type __cols, stride_type __rowStride, stride_type __colStride, typename __dataPtrType >
void vctDynamicMatrixRef< _elementType >::SetRef ( vctFixedSizeMatrixBase< __rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &  otherMatrix)
inline

Set a dynamic reference to a fixed-size matrix. The reference will have identical dimensions and strides as the input matrix.

template<class _elementType>
template<size_type __rows, size_type __cols, stride_type __rowStride, stride_type __colStride, typename __dataPtrType >
void vctDynamicMatrixRef< _elementType >::SetRef ( vctFixedSizeMatrixBase< __rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &  otherMatrix,
size_type  startRow,
size_type  startCol,
size_type  rows,
size_type  cols 
)
inline

Set a dynamic reference to a submatrix of a fixed-size matrix.

Parameters
otherMatrixa fixed size matrix to which a reference is created.
startRowrow index of the position where the reference will start.
startColcolumn index of the position where the reference will start.
rowsthe number of rows being referenced
colsthe number of columns being referenced
Note
the strides of this reference will be identical to the strides of the input matrix. For a more advanced access, customize the parameters yourself (see the SetRef methods).
This method verifies 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>
template<class __ownerType >
void vctDynamicMatrixRef< _elementType >::SetRef ( vctDynamicMatrixBase< __ownerType, _elementType > &  otherMatrix)
inline

Set a dynamic reference to a dynamic matrix. The reference will have identical dimensions and strides as the input matrix.

template<class _elementType>
template<class __ownerType >
void vctDynamicMatrixRef< _elementType >::SetRef ( vctDynamicMatrixBase< __ownerType, _elementType > &  otherMatrix,
size_type  startRow,
size_type  startCol,
size_type  rows,
size_type  cols 
)
inline

Set a dynamic reference to a submatrix of a dynamic matrix.

Parameters
otherMatrixa dynamic matrix to which a reference is created.
startRowrow index of the position where the reference will start.
startColcolumn index of the position where the reference will start.
rowsthe number of rows being referenced
colsthe number of columns being referenced
Note
the strides of this reference will be identical to the strides of the input matrix. For a more advanced access, customize the parameters yourself (see the other SetRef methods).
This method verifies 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>
template<class __ownerType >
void vctDynamicMatrixRef< _elementType >::SetRef ( vctDynamicMatrixBase< __ownerType, _elementType > &  otherMatrix,
const nsize_type &  start,
const nsize_type &  matrixSize 
)
inline
template<class _elementType>
vctDynamicMatrixRef< _elementType >::VCT_CONTAINER_TRAITS_TYPEDEFS ( _elementType  )
template<class _elementType>
vctDynamicMatrixRef< _elementType >::VCT_NARRAY_TRAITS_TYPEDEFS ( DIMENSION  )

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