22 #ifndef _vctVarStrideNArrayIterator_h 
   23 #define _vctVarStrideNArrayIterator_h 
   45 template<
class _ownerType, 
bool _forward>
 
   47     public std::iterator<std::random_access_iterator_tag,
 
   48                          typename _ownerType::value_type>
 
   68     typedef std::iterator<std::random_access_iterator_tag, value_type> 
BaseType;
 
  100         typename nstride_type::const_reverse_iterator stridesBegin = 
ContainerOwner->strides().rbegin();
 
  101         typename nsize_type::const_reverse_iterator sizesBegin = 
ContainerOwner->sizes().rbegin();
 
  102         typename nsize_type::const_reverse_iterator sizesEnd = 
ContainerOwner->sizes().rend();
 
  104         for (; sizesBegin != sizesEnd;
 
  105              ++sizesBegin, ++stridesBegin) {
 
  106             sizes_value = (*sizesBegin == 0) ? 1 : *sizesBegin;
 
  108             offset += modulus * (*stridesBegin);
 
  114         value_type * pointer = 
const_cast<value_type *
>( 
ContainerOwner->Pointer() );
 
  232         typename nstride_type::const_reverse_iterator stridesBegin = 
ContainerOwner->strides().rbegin();
 
  233         typename nsize_type::const_reverse_iterator sizesBegin = 
ContainerOwner->sizes().rbegin();
 
  234         typename nsize_type::const_reverse_iterator sizesEnd = 
ContainerOwner->sizes().rend();
 
  236         for (; sizesBegin != sizesEnd;
 
  237              ++sizesBegin, ++stridesBegin) {
 
  238             sizes_value = (*sizesBegin == 0) ? 1 : *sizesBegin;
 
  240             offset += modulus * (*stridesBegin);
 
  244         value_type * pointer = 
const_cast<value_type *
>( 
ContainerOwner->Pointer() );
 
  245         value_type * elementPointer = pointer + offset;
 
  247         return *elementPointer;
 
  271         return !( *
this == other );
 
  284         return ((*
this) - other) < 0;
 
  288         return ((*
this) < other) || ((*this) == other);
 
  295         return other < (*this);
 
  299         return ((*
this) > other) || ((*this) == other);
 
  307 template<
class _ownerType, 
bool _forward>
 
  421         typename nstride_type::const_reverse_iterator stridesBegin = this->
ContainerOwner->strides().rbegin();
 
  422         typename nsize_type::const_reverse_iterator sizesBegin = this->
ContainerOwner->sizes().rbegin();
 
  423         typename nsize_type::const_reverse_iterator sizesEnd = this->
ContainerOwner->sizes().rend();
 
  426              sizesBegin != sizesEnd;
 
  427              ++sizesBegin, ++stridesBegin) {
 
  428             sizes_value = (*sizesBegin == 0) ? 1 : *sizesBegin;
 
  430             offset += modulus * (*stridesBegin);
 
  434         value_type * pointer = 
const_cast<value_type *
>(this->
ContainerOwner->Pointer());
 
  435         value_type * elementPointer = pointer + offset;
 
  437         return *elementPointer;
 
  450 template<
class _ownerType, 
bool _forward>
 
  456     return result += difference;
 
  461 template<
class _ownerType, 
bool _forward>
 
  467     return result += difference;
 
  472 template<
class _ownerType, 
bool _forward>
 
  478     return result -= difference;
 
  485 template<
class _ownerType, 
bool _forward>
 
  491     return result += difference;
 
  497 template<
class _ownerType, 
bool _forward>
 
  503     return result += difference;
 
  508 template<
class _ownerType, 
bool _forward>
 
  514     return result -= difference;
 
  518 #endif  // _vctVarStrideNArrayIterator_h 
vctVarStrideNArrayIterator()
Definition: vctVarStrideNArrayIterator.h:326
 
vctVarStrideNArrayIterator(const ThisType &other)
Definition: vctVarStrideNArrayIterator.h:340
 
bool operator==(const ThisType &other) const 
Definition: vctVarStrideNArrayIterator.h:259
 
const value_type & operator*(void) const 
Definition: vctVarStrideNArrayIterator.h:252
 
_ownerType::value_type _elementType
Definition: vctVarStrideNArrayIterator.h:314
 
void UpdateElementPointer(void)
Definition: vctVarStrideNArrayIterator.h:94
 
std::iterator< std::random_access_iterator_tag, value_type > BaseType
Definition: vctVarStrideNArrayIterator.h:68
 
ThisType & operator+=(difference_type difference)
Definition: vctVarStrideNArrayIterator.h:196
 
ThisType & operator-=(difference_type difference)
Definition: vctVarStrideNArrayIterator.h:207
 
size_t size_type
Definition: vctContainerTraits.h:35
 
VCT_CONTAINER_TRAITS_TYPEDEFS(_elementType)
 
Declaration of vctDynamicNArrayOwner. 
 
BaseType::iterator_category iterator_category
Definition: vctVarStrideNArrayIterator.h:72
 
vctVarStrideNArrayConstIterator(const ThisType &other)
Definition: vctVarStrideNArrayIterator.h:140
 
vctVarStrideNArrayConstIterator(void)
Definition: vctVarStrideNArrayIterator.h:121
 
vctVarStrideNArrayConstIterator< _ownerType, _forward > operator-(const vctVarStrideNArrayConstIterator< _ownerType, _forward > &iterator, typename vctVarStrideNArrayConstIterator< _ownerType, _forward >::difference_type difference)
Definition: vctVarStrideNArrayIterator.h:474
 
BaseType::iterator_category iterator_category
Definition: vctVarStrideNArrayIterator.h:322
 
vctVarStrideNArrayConstIterator< _ownerType, _forward > BaseType
Definition: vctVarStrideNArrayIterator.h:321
 
ThisType & operator+=(difference_type difference)
Definition: vctVarStrideNArrayIterator.h:396
 
ptrdiff_t difference_type
Definition: vctContainerTraits.h:38
 
Definition: vctForwardDeclarations.h:77
 
_ownerType OwnerType
Definition: vctVarStrideNArrayIterator.h:320
 
VCT_NARRAY_TRAITS_TYPEDEFS(DIMENSION)
 
VCT_CONTAINER_TRAITS_TYPEDEFS(_elementType)
 
vctVarStrideNArrayIterator(const OwnerType *container, difference_type index=0)
Definition: vctVarStrideNArrayIterator.h:334
 
bool operator<=(const ThisType &other) const 
Definition: vctVarStrideNArrayIterator.h:286
 
Basic traits for the cisstVector containers. 
 
value_type & operator[](difference_type index)
Definition: vctVarStrideNArrayIterator.h:415
 
Declaration of vctVarStrideVectorConstIterator and vctVarStrideVectorIterator. 
 
_ownerType::value_type _elementType
Definition: vctVarStrideNArrayIterator.h:53
 
bool operator!=(const ThisType &other) const 
Definition: vctVarStrideNArrayIterator.h:269
 
ThisType & operator++(void)
Definition: vctVarStrideNArrayIterator.h:357
 
vctVarStrideNArrayIterator< _ownerType, _forward > ThisType
Definition: vctVarStrideNArrayIterator.h:319
 
Definition: vctVarStrideNArrayIterator.h:313
 
VCT_NARRAY_TRAITS_TYPEDEFS(DIMENSION)
 
ThisType & operator-=(difference_type difference)
Definition: vctVarStrideNArrayIterator.h:406
 
Definition: vctForwardDeclarations.h:74
 
ThisType & operator--(void)
Definition: vctVarStrideNArrayIterator.h:176
 
bool operator<(const ThisType &other) const 
Definition: vctVarStrideNArrayIterator.h:282
 
value_type * ElementPointer
Definition: vctVarStrideNArrayIterator.h:88
 
ThisType & operator++(void)
Definition: vctVarStrideNArrayIterator.h:158
 
value_type & operator*(void)
Definition: vctVarStrideNArrayIterator.h:442
 
bool operator>(const ThisType &other) const 
Definition: vctVarStrideNArrayIterator.h:293
 
vctVarStrideNArrayConstIterator(const OwnerType *container, difference_type index=0)
Definition: vctVarStrideNArrayIterator.h:131
 
ThisType & operator=(const ThisType &other)
Definition: vctVarStrideNArrayIterator.h:148
 
_ownerType OwnerType
Definition: vctVarStrideNArrayIterator.h:65
 
const OwnerType * ContainerOwner
Definition: vctVarStrideNArrayIterator.h:77
 
ThisType & operator--(void)
Definition: vctVarStrideNArrayIterator.h:377
 
difference_type MetaIndex
Definition: vctVarStrideNArrayIterator.h:81
 
Definition: vctVarStrideNArrayIterator.h:318
 
bool operator>=(const ThisType &other) const 
Definition: vctVarStrideNArrayIterator.h:297
 
Definition: vctVarStrideNArrayIterator.h:58
 
difference_type operator-(const ThisType &other) const 
Definition: vctVarStrideNArrayIterator.h:219
 
ThisType & operator=(const ThisType &other)
Definition: vctVarStrideNArrayIterator.h:346
 
vctVarStrideNArrayConstIterator< _ownerType, _forward > operator+(const vctVarStrideNArrayConstIterator< _ownerType, _forward > &iterator, typename vctVarStrideNArrayConstIterator< _ownerType, _forward >::difference_type difference)
Definition: vctVarStrideNArrayIterator.h:452
 
Definition: vctVarStrideNArrayIterator.h:52
 
vctVarStrideNArrayConstIterator< _ownerType, _forward > ThisType
Definition: vctVarStrideNArrayIterator.h:61
 
const value_type & operator[](difference_type index) const 
Definition: vctVarStrideNArrayIterator.h:226