22#ifndef _vctDynamicConstMatrixRef_h
23#define _vctDynamicConstMatrixRef_h
78template <
class _elementType>
97 SetRef(0, 0, 1, 1,
static_cast<pointer
>(0));
104 SetRef(other.sizes(), other.strides(), other.Pointer());
113 stride_type rowStride, stride_type colStride,
119 stride_type rowStride, stride_type colStride,
120 const_pointer dataPointer)
128 SetRef(matrixSize, rowStride, colStride, dataPointer);
131 const_pointer dataPointer)
133 SetRef(matrixSize, rowStride, colStride, dataPointer);
139 SetRef(matrixSize, matrixStride, dataPointer);
142 const_pointer dataPointer)
144 SetRef(matrixSize, matrixStride, dataPointer);
168 SetRef(matrixSize, dataPointer, storageOrder);
173 SetRef(matrixSize, dataPointer, storageOrder);
183 template <
size_type __rows,
size_type __cols, str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
typename __dataPtrType>
200 template <
size_type __rows,
size_type __cols, str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
typename __dataPtrType>
202 size_type startRow, size_type startCol, size_type
rows, size_type
cols)
212 template <
class __ownerType>
229 template <
class __ownerType>
231 size_type startRow, size_type startCol, size_type
rows, size_type
cols)
236 template <
class __ownerType>
238 const nsize_type & start,
const nsize_type & matrixSize)
240 SetRef(otherMatrix, start, matrixSize);
249 stride_type rowStride, stride_type colStride,
252 this->
Matrix.SetRef(
rows,
cols, rowStride, colStride, dataPointer);
255 stride_type rowStride, stride_type colStride,
256 const_pointer dataPointer)
258 this->
Matrix.SetRef(
rows,
cols, rowStride, colStride,
const_cast<pointer
>(dataPointer));
261 void SetRef(
const nsize_type & matrixSize,
262 stride_type rowStride, stride_type colStride,
263 pointer dataPointer) {
264 this->
Matrix.SetRef(matrixSize, rowStride, colStride, dataPointer);
266 void SetRef(
const nsize_type & matrixSize,
267 stride_type rowStride, stride_type colStride,
268 const_pointer dataPointer) {
269 this->
Matrix.SetRef(matrixSize, rowStride, colStride,
const_cast<pointer
>(dataPointer));
272 void SetRef(
const nsize_type & matrixSize,
273 const nstride_type & matrixStride,
274 pointer dataPointer) {
275 this->
Matrix.SetRef(matrixSize, matrixStride, dataPointer);
277 void SetRef(
const nsize_type & matrixSize,
278 const nstride_type & matrixStride,
279 const_pointer dataPointer) {
280 this->
Matrix.SetRef(matrixSize, matrixStride,
const_cast<pointer
>(dataPointer));
296 this->
Matrix.SetRef(
rows,
cols,
const_cast<pointer
>(dataPointer), storageOrder);
301 this->
Matrix.SetRef(
sizes, dataPointer, storageOrder);
305 this->
Matrix.SetRef(
sizes,
const_cast<pointer
>(dataPointer), storageOrder);
313 template <
size_type __rows,
size_type __cols, str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
typename __dataPtrType>
334 template <
size_type __rows,
size_type __cols, str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
typename __dataPtrType>
336 size_type startRow, size_type startCol,
339 if ( (startRow +
rows > otherMatrix.
rows()) || (startCol +
cols > otherMatrix.
cols()) ) {
340 cmnThrow(std::out_of_range(
"vctDynamicConstMatrixRef SetRef out of range"));
348 template <
class __ownerType>
351 SetRef(otherMatrix.rows(), otherMatrix.cols(), otherMatrix.row_stride(), otherMatrix.col_stride(),
352 otherMatrix.Pointer());
368 template <
class __ownerType>
370 size_type startRow, size_type startCol,
373 if ( (startRow +
rows > otherMatrix.rows()) || (startCol +
cols > otherMatrix.cols()) ) {
374 cmnThrow(std::out_of_range(
"vctDynamicConstMatrixRef SetRef out of range"));
376 SetRef(
rows,
cols, otherMatrix.row_stride(), otherMatrix.col_stride(),
377 otherMatrix.Pointer(startRow, startCol));
380 template <
class __ownerType>
382 const nsize_type & start,
const nsize_type & matrixSize)
385 start.Element(0), start.Element(1), matrixSize.Element(0), matrixSize.Element(1));
Definition vctForwardDeclarations.h:145
MatrixOwnerType::reverse_iterator reverse_iterator
Definition vctDynamicConstMatrixRef.h:92
void SetRef(size_type rows, size_type cols, const_pointer dataPointer, bool storageOrder=VCT_DEFAULT_STORAGE)
Definition vctDynamicConstMatrixRef.h:294
vctDynamicConstMatrixBase< vctDynamicMatrixRefOwner< value_type >, value_type > BaseType
Definition vctDynamicConstMatrixRef.h:89
void SetRef(const nsize_type &matrixSize, stride_type rowStride, stride_type colStride, pointer dataPointer)
Definition vctDynamicConstMatrixRef.h:261
VCT_CONTAINER_TRAITS_TYPEDEFS(_elementType)
vctDynamicConstMatrixRef(const nsize_type &matrixSize, pointer dataPointer, bool storageOrder=VCT_DEFAULT_STORAGE)
Definition vctDynamicConstMatrixRef.h:165
void SetRef(const nsize_type &sizes, const_pointer dataPointer, bool storageOrder=VCT_DEFAULT_STORAGE)
Definition vctDynamicConstMatrixRef.h:303
vctDynamicConstMatrixRef()
Definition vctDynamicConstMatrixRef.h:96
void SetRef(size_type rows, size_type cols, stride_type rowStride, stride_type colStride, pointer dataPointer)
Definition vctDynamicConstMatrixRef.h:248
vctDynamicConstMatrixRef(const vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &otherMatrix)
Definition vctDynamicConstMatrixRef.h:184
vctDynamicConstMatrixRef(const vctDynamicConstMatrixBase< __ownerType, _elementType > &otherMatrix)
Definition vctDynamicConstMatrixRef.h:213
vctDynamicConstMatrixRef(size_type rows, size_type cols, pointer dataPointer, bool storageOrder=VCT_DEFAULT_STORAGE)
Definition vctDynamicConstMatrixRef.h:154
vctDynamicConstMatrixRef(const vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &otherMatrix, size_type startRow, size_type startCol, size_type rows, size_type cols)
Definition vctDynamicConstMatrixRef.h:201
vctDynamicConstMatrixRef(size_type rows, size_type cols, stride_type rowStride, stride_type colStride, const_pointer dataPointer)
Definition vctDynamicConstMatrixRef.h:118
void SetRef(const vctDynamicConstMatrixBase< __ownerType, _elementType > &otherMatrix, size_type startRow, size_type startCol, size_type rows, size_type cols)
Definition vctDynamicConstMatrixRef.h:369
void SetRef(const vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &otherMatrix)
Definition vctDynamicConstMatrixRef.h:314
vctDynamicConstMatrixRef(const nsize_type &matrixSize, const_pointer dataPointer, bool storageOrder=VCT_DEFAULT_STORAGE)
Definition vctDynamicConstMatrixRef.h:170
vctDynamicMatrixRefOwner< value_type > MatrixOwnerType
Definition vctDynamicConstMatrixRef.h:88
vctDynamicConstMatrixRef(size_type rows, size_type cols, const_pointer dataPointer, bool storageOrder=VCT_DEFAULT_STORAGE)
Definition vctDynamicConstMatrixRef.h:159
VCT_NARRAY_TRAITS_TYPEDEFS(DIMENSION)
void SetRef(const nsize_type &matrixSize, const nstride_type &matrixStride, const_pointer dataPointer)
Definition vctDynamicConstMatrixRef.h:277
vctDynamicConstMatrixRef< value_type > ThisType
Definition vctDynamicConstMatrixRef.h:87
void SetRef(const nsize_type &matrixSize, const nstride_type &matrixStride, pointer dataPointer)
Definition vctDynamicConstMatrixRef.h:272
void SetRef(const nsize_type &sizes, pointer dataPointer, bool storageOrder=VCT_DEFAULT_STORAGE)
Definition vctDynamicConstMatrixRef.h:299
@ DIMENSION
Definition vctDynamicConstMatrixRef.h:84
vctDynamicConstMatrixRef(const ThisType &other)
Definition vctDynamicConstMatrixRef.h:101
void SetRef(const nsize_type &matrixSize, stride_type rowStride, stride_type colStride, const_pointer dataPointer)
Definition vctDynamicConstMatrixRef.h:266
MatrixOwnerType::const_reverse_iterator const_reverse_iterator
Definition vctDynamicConstMatrixRef.h:93
vctDynamicConstMatrixRef(size_type rows, size_type cols, stride_type rowStride, stride_type colStride, pointer dataPointer)
Definition vctDynamicConstMatrixRef.h:112
vctDynamicConstMatrixRef(const nsize_type &matrixSize, const nstride_type &matrixStride, const_pointer dataPointer)
Definition vctDynamicConstMatrixRef.h:141
MatrixOwnerType::iterator iterator
Definition vctDynamicConstMatrixRef.h:90
vctDynamicConstMatrixRef(const nsize_type &matrixSize, stride_type rowStride, stride_type colStride, const_pointer dataPointer)
Definition vctDynamicConstMatrixRef.h:130
vctDynamicConstMatrixRef(const nsize_type &matrixSize, const nstride_type &matrixStride, pointer dataPointer)
Definition vctDynamicConstMatrixRef.h:136
void SetRef(size_type rows, size_type cols, stride_type rowStride, stride_type colStride, const_pointer dataPointer)
Definition vctDynamicConstMatrixRef.h:254
vctDynamicConstMatrixRef(const vctDynamicConstMatrixBase< __ownerType, _elementType > &otherMatrix, const nsize_type &start, const nsize_type &matrixSize)
Definition vctDynamicConstMatrixRef.h:237
vctDynamicConstMatrixRef(const nsize_type &matrixSize, stride_type rowStride, stride_type colStride, pointer dataPointer)
Definition vctDynamicConstMatrixRef.h:125
void SetRef(const vctDynamicConstMatrixBase< __ownerType, _elementType > &otherMatrix, const nsize_type &start, const nsize_type &matrixSize)
Definition vctDynamicConstMatrixRef.h:381
MatrixOwnerType::const_iterator const_iterator
Definition vctDynamicConstMatrixRef.h:91
void SetRef(size_type rows, size_type cols, pointer dataPointer, bool storageOrder=VCT_DEFAULT_STORAGE)
Definition vctDynamicConstMatrixRef.h:290
vctDynamicConstMatrixRef(const vctDynamicConstMatrixBase< __ownerType, _elementType > &otherMatrix, size_type startRow, size_type startCol, size_type rows, size_type cols)
Definition vctDynamicConstMatrixRef.h:230
void SetRef(const vctDynamicConstMatrixBase< __ownerType, _elementType > &otherMatrix)
Definition vctDynamicConstMatrixRef.h:349
void SetRef(const vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &otherMatrix, size_type startRow, size_type startCol, size_type rows, size_type cols)
Definition vctDynamicConstMatrixRef.h:335
Definition vctDynamicMatrixRefOwner.h:40
vctVarStrideMatrixIterator< value_type > reverse_iterator
Definition vctDynamicMatrixRefOwner.h:53
vctVarStrideMatrixConstIterator< value_type > const_reverse_iterator
Definition vctDynamicMatrixRefOwner.h:51
vctVarStrideMatrixConstIterator< value_type > const_iterator
Definition vctDynamicMatrixRefOwner.h:50
vctVarStrideMatrixIterator< value_type > iterator
Definition vctDynamicMatrixRefOwner.h:52
A template for a fixed size matrix with fixed spacing in memory.
Definition vctFixedSizeConstMatrixBase.h:104
const_pointer Pointer(size_type rowIndex, size_type colIndex) const
Definition vctFixedSizeConstMatrixBase.h:329
size_type cols() const
Definition vctFixedSizeConstMatrixBase.h:282
difference_type row_stride() const
Definition vctFixedSizeConstMatrixBase.h:303
size_type rows() const
Definition vctFixedSizeConstMatrixBase.h:277
difference_type col_stride() const
Definition vctFixedSizeConstMatrixBase.h:309
void cmnThrow(const _exceptionType &except, cmnLogLevel lod=CMN_LOG_LEVEL_INIT_ERROR)
Definition cmnThrow.h:76
Declaration of vctDynamicConstMatrixBase.
size_type cols() const
Definition vctDynamicConstMatrixBase.h:243
OwnerType Matrix
Definition vctDynamicConstMatrixBase.h:167
const nsize_type & sizes(void) const
Definition vctDynamicConstMatrixBase.h:233
size_type rows() const
Definition vctDynamicConstMatrixBase.h:238
Declaration of vctDynamicMatrixRefOwner.
const bool VCT_DEFAULT_STORAGE
Definition vctForwardDeclarations.h:47