Loading [MathJax]/extensions/MathZoom.js
DGtal 2.0.0
DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator Class Reference

#include <DGtal/images/ImageContainerBySTLVector.h>

Public Types

typedef std::bidirectional_iterator_tag iterator_category
typedef Value value_type
typedef ptrdiff_t difference_type
typedef Valuepointer
typedef Valuereference

Public Member Functions

 SpanIterator (const Point &p, const Dimension aDim, ImageContainerBySTLVector< Domain, Value > *aMap)
void setValue (const Value aVal)
const Valueoperator* ()
bool operator== (const SpanIterator &it) const
bool operator!= (const SpanIterator &it) const
void next ()
void prev ()
SpanIteratoroperator++ ()
SpanIteratoroperator++ (int)
SpanIteratoroperator-- ()
SpanIteratoroperator-- (int)

Private Attributes

Size myPos
 Current Point in the domain.
ImageContainerBySTLVector< Domain, Value > * myMap
 Copy of the underlying images.
Dimension myDimension
 Dimension on which the iterator must iterate.
Size myShift
 Padding variable.

Friends

class ImageContainerBySTLVector< Domain, Value >

Detailed Description

template<typename TDomain, typename TValue>
class DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator

Specific SpanIterator on ImageContainerBySTLVector.

Definition at line 307 of file ImageContainerBySTLVector.h.

Member Typedef Documentation

◆ difference_type

template<typename TDomain, typename TValue>
typedef ptrdiff_t DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::difference_type

Definition at line 317 of file ImageContainerBySTLVector.h.

◆ iterator_category

template<typename TDomain, typename TValue>
typedef std::bidirectional_iterator_tag DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::iterator_category

Definition at line 315 of file ImageContainerBySTLVector.h.

◆ pointer

template<typename TDomain, typename TValue>
typedef Value* DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::pointer

Definition at line 318 of file ImageContainerBySTLVector.h.

◆ reference

template<typename TDomain, typename TValue>
typedef Value& DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::reference

Definition at line 319 of file ImageContainerBySTLVector.h.

◆ value_type

template<typename TDomain, typename TValue>
typedef Value DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::value_type

Definition at line 316 of file ImageContainerBySTLVector.h.

Constructor & Destructor Documentation

◆ SpanIterator()

template<typename TDomain, typename TValue>
DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::SpanIterator ( const Point & p,
const Dimension aDim,
ImageContainerBySTLVector< Domain, Value > * aMap )
inline

Constructor.

Parameters
pstarting point of the SpanIterator
aDimspecifies the dimension along which the iterator will iterate
aMappointer to the imageContainer

Definition at line 328 of file ImageContainerBySTLVector.h.

330 : myMap ( aMap ), myDimension ( aDim )
331 {
332 myPos = aMap->linearized ( p );
333
334 //We compute the myShift quantity
335 myShift = 1;
336
337 for ( Dimension k = 0; k < myDimension ; k++ )
338 myShift *= aMap->myExtent[k];
339 }
ImageContainerBySTLVector< Domain, Value > * myMap
Copy of the underlying images.
Dimension myDimension
Dimension on which the iterator must iterate.
Vector myExtent
Domain extent (stored for linearization efficiency)
Size linearized(const Point &aPoint) const

References DGtal::ImageContainerBySTLVector< TDomain, TValue >::ImageContainerBySTLVector(), DGtal::ImageContainerBySTLVector< TDomain, TValue >::linearized(), myDimension, DGtal::ImageContainerBySTLVector< TDomain, TValue >::myExtent, myMap, myPos, and myShift.

Referenced by operator!=(), operator++(), operator++(), operator--(), operator--(), and operator==().

Member Function Documentation

◆ next()

template<typename TDomain, typename TValue>
void DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::next ( )
inline

Implements the next() method: we move on step forward.

Definition at line 391 of file ImageContainerBySTLVector.h.

392 {
393 myPos += myShift;
394 }

References myPos, and myShift.

Referenced by operator++().

◆ operator!=()

template<typename TDomain, typename TValue>
bool DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::operator!= ( const SpanIterator & it) const
inline

Operator !=

Returns
true if this and it are different.

Definition at line 381 of file ImageContainerBySTLVector.h.

382 {
383 return ( myPos != it.myPos );
384 }

References myPos, and SpanIterator().

◆ operator*()

template<typename TDomain, typename TValue>
const Value & DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::operator* ( )
inline

operator* on SpanIterators.

Returns
the value associated to the current position.

Definition at line 359 of file ImageContainerBySTLVector.h.

360 {
361 return ( *myMap ) [ myPos ];
362 }

References myMap, and myPos.

◆ operator++() [1/2]

template<typename TDomain, typename TValue>
SpanIterator & DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::operator++ ( )
inline

Operator ++ (++it)

Definition at line 412 of file ImageContainerBySTLVector.h.

413 {
414 this->next();
415 return *this;
416 }

References next(), and SpanIterator().

◆ operator++() [2/2]

template<typename TDomain, typename TValue>
SpanIterator & DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::operator++ ( int )
inline

Operator ++ (it++)

Definition at line 423 of file ImageContainerBySTLVector.h.

424 {
425 SpanIterator tmp = *this;
426 ++*this;
427 return tmp;
428 }
SpanIterator(const Point &p, const Dimension aDim, ImageContainerBySTLVector< Domain, Value > *aMap)

References SpanIterator().

◆ operator--() [1/2]

template<typename TDomain, typename TValue>
SpanIterator & DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::operator-- ( )
inline

Operator – (–it)

Definition at line 435 of file ImageContainerBySTLVector.h.

436 {
437 this->prev();
438 return *this;
439 }

References prev(), and SpanIterator().

◆ operator--() [2/2]

template<typename TDomain, typename TValue>
SpanIterator & DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::operator-- ( int )
inline

Operator – (it–)

Definition at line 446 of file ImageContainerBySTLVector.h.

447 {
448 SpanIterator tmp = *this;
449 --*this;
450 return tmp;
451 }

References SpanIterator().

◆ operator==()

template<typename TDomain, typename TValue>
bool DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::operator== ( const SpanIterator & it) const
inline

Operator ==.

Returns
true if this and it are equals.

Definition at line 370 of file ImageContainerBySTLVector.h.

371 {
372 return ( myPos == it.myPos );
373 }

References myPos, and SpanIterator().

◆ prev()

template<typename TDomain, typename TValue>
void DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::prev ( )
inline

Implements the prev() method: we move on step backward.

Definition at line 401 of file ImageContainerBySTLVector.h.

402 {
403 ASSERT ( ( long int ) myPos - myShift > 0 );
404 myPos -= myShift;
405 }

References myPos, and myShift.

Referenced by operator--().

◆ setValue()

template<typename TDomain, typename TValue>
void DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::setValue ( const Value aVal)
inline

Set a value at a SpanIterator position.

Parameters
aValthe value to set.

Definition at line 348 of file ImageContainerBySTLVector.h.

349 {
350 ( *myMap ) [ myPos ] = aVal;
351 }

References myPos.

◆ ImageContainerBySTLVector< Domain, Value >

template<typename TDomain, typename TValue>
friend class ImageContainerBySTLVector< Domain, Value >
friend

Definition at line 530 of file ImageContainerBySTLVector.h.

References aPoint.

Field Documentation

◆ myDimension

template<typename TDomain, typename TValue>
Dimension DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::myDimension
private

Dimension on which the iterator must iterate.

Definition at line 461 of file ImageContainerBySTLVector.h.

Referenced by SpanIterator().

◆ myMap

template<typename TDomain, typename TValue>
ImageContainerBySTLVector<Domain, Value>* DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::myMap
private

Copy of the underlying images.

Definition at line 458 of file ImageContainerBySTLVector.h.

Referenced by operator*(), and SpanIterator().

◆ myPos

template<typename TDomain, typename TValue>
Size DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::myPos
private

Current Point in the domain.

Definition at line 455 of file ImageContainerBySTLVector.h.

Referenced by next(), operator!=(), operator*(), operator==(), prev(), setValue(), and SpanIterator().

◆ myShift

template<typename TDomain, typename TValue>
Size DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::myShift
private

Padding variable.

Definition at line 464 of file ImageContainerBySTLVector.h.

Referenced by next(), prev(), and SpanIterator().


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