22#ifndef _vctDynamicNArrayOwner_h
23#define _vctDynamicNArrayOwner_h
35template <
class _elementType, vct::
size_type _dimension>
83 const nsize_type &
sizes(
void)
const
146 indicesRef(
reinterpret_cast<stride_type *
>(
const_cast<size_type *
>(indices.Pointer())));
159 const_pointer
Pointer(
const nsize_type & indices)
const
162 indicesRef(
reinterpret_cast<stride_type *
>(
const_cast<size_type *
>(indices.Pointer())));
188 size_type endIndex =
size() - 1;
199 size_type endIndex =
size() - 1;
226 const size_type totalSize =
sizes.ProductOfElements();
286 typename nsize_type::const_reverse_iterator sizesIter =
SizesMember.rbegin();
287 typename nstride_type::reverse_iterator stridesIter =
StridesMember.rbegin();
288 const typename nstride_type::const_reverse_iterator stridesEnd =
StridesMember.rend();
289 size_type sizesIter_value;
290 stride_type previous_stride;
292 if (stridesIter == stridesEnd)
299 for (; stridesIter != stridesEnd;
300 ++stridesIter, ++sizesIter)
302 sizesIter_value = (*sizesIter == 0) ? 1 : *sizesIter;
303 *stridesIter = sizesIter_value * previous_stride;
304 previous_stride = *stridesIter;
const_pointer Pointer(const nsize_type &indices) const
Definition vctDynamicNArrayOwner.h:159
void UpdateStrides(void)
Definition vctDynamicNArrayOwner.h:284
dimension_type dimension(void) const
Definition vctDynamicNArrayOwner.h:76
size_type size(dimension_type dimension) const
Definition vctDynamicNArrayOwner.h:94
size_type size(void) const
Definition vctDynamicNArrayOwner.h:108
const_reverse_iterator rend(void) const
Definition vctDynamicNArrayOwner.h:203
~vctDynamicNArrayOwner()
Definition vctDynamicNArrayOwner.h:69
vctVarStrideNArrayConstIterator< ThisType, false > const_reverse_iterator
Definition vctDynamicNArrayOwner.h:52
vctVarStrideNArrayIterator< ThisType, true > iterator
Definition vctDynamicNArrayOwner.h:49
reverse_iterator rbegin(void)
Definition vctDynamicNArrayOwner.h:186
const nstride_type & strides(void) const
Definition vctDynamicNArrayOwner.h:118
const nsize_type & sizes(void) const
Definition vctDynamicNArrayOwner.h:83
iterator end(void)
Definition vctDynamicNArrayOwner.h:171
value_type * Own(const nsize_type &sizes, value_type *data)
Definition vctDynamicNArrayOwner.h:250
iterator begin(void)
Definition vctDynamicNArrayOwner.h:166
nstride_type StridesMember
Definition vctDynamicNArrayOwner.h:279
vctDynamicNArrayOwner(const nsize_type &sizes)
Definition vctDynamicNArrayOwner.h:61
stride_type stride(dimension_type dimension) const
Definition vctDynamicNArrayOwner.h:126
vctVarStrideNArrayConstIterator< ThisType, true > const_iterator
Definition vctDynamicNArrayOwner.h:50
value_type * Data
Definition vctDynamicNArrayOwner.h:280
const_reverse_iterator rbegin(void) const
Definition vctDynamicNArrayOwner.h:197
pointer Pointer(void)
Definition vctDynamicNArrayOwner.h:136
vctVarStrideNArrayIterator< ThisType, false > reverse_iterator
Definition vctDynamicNArrayOwner.h:51
pointer Pointer(const nsize_type &indices)
Definition vctDynamicNArrayOwner.h:143
const_iterator begin(void) const
Definition vctDynamicNArrayOwner.h:176
@ DIMENSION
Definition vctDynamicNArrayOwner.h:43
bool IsCompact(void) const
Definition vctDynamicNArrayOwner.h:208
vctDynamicNArrayOwner< _elementType, _dimension > ThisType
Definition vctDynamicNArrayOwner.h:46
vctDynamicNArrayOwner()
Definition vctDynamicNArrayOwner.h:55
void SetSize(const nsize_type &sizes)
Definition vctDynamicNArrayOwner.h:222
value_type * Release(void)
Definition vctDynamicNArrayOwner.h:234
const_pointer Pointer(void) const
Definition vctDynamicNArrayOwner.h:152
nsize_type SizesMember
Definition vctDynamicNArrayOwner.h:278
VCT_NARRAY_TRAITS_TYPEDEFS(_dimension)
void Disown(void)
Definition vctDynamicNArrayOwner.h:269
VCT_CONTAINER_TRAITS_TYPEDEFS(_elementType)
const_iterator end(void) const
Definition vctDynamicNArrayOwner.h:181
void clear(void)
Definition vctDynamicNArrayOwner.h:262
reverse_iterator rend(void)
Definition vctDynamicNArrayOwner.h:192
Definition vctForwardDeclarations.h:86
Definition vctVarStrideNArrayIterator.h:46
Definition vctVarStrideNArrayIterator.h:304
#define CMN_UNUSED(argument)
Definition cmnPortability.h:497
vctDynamicConstMatrixBase< _matrixOwnerType, _elementType > ThisType
Definition vctDynamicConstMatrixBase.h:86
Forward declarations and #define for cisstVector.