DGtal 2.0.0
Loading...
Searching...
No Matches
DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator Class Reference

#include <DGtal/images/TiledImage.h>

Public Types

using iterator_category = std::bidirectional_iterator_tag
using value_type = Value
using difference_type = ptrdiff_t
using pointer = Value*
using reference = Value&
typedef ImageContainer::Range::Iterator TiledRangeIterator
typedef Domain::Iterator BlockCoordsIterator

Public Member Functions

 TiledIterator (BlockCoordsIterator aBlockCoordsIterator, const TiledImage< ImageContainer, ImageFactory, ImageCacheReadPolicy, ImageCacheWritePolicy > *aTiledImage)
 TiledIterator (BlockCoordsIterator aBlockCoordsIterator, const Point &aPoint, const TiledImage< ImageContainer, ImageFactory, ImageCacheReadPolicy, ImageCacheWritePolicy > *aTiledImage)
Valueoperator* ()
bool operator== (const TiledIterator &it) const
bool operator!= (const TiledIterator &it) const
void nextLexicographicOrder ()
TiledIteratoroperator++ ()
TiledIterator operator++ (int)
void prevLexicographicOrder ()
TiledIteratoroperator-- ()
TiledIterator operator-- (int)

Private Attributes

const TiledImagemyTiledImage
 TiledImage pointer.
ImageContainermyTile
 Alias on the current tile.
TiledRangeIterator myTiledRangeIterator
 Current tiled range iterator.
BlockCoordsIterator myBlockCoordsIterator
 Current block coords iterator.

Friends

class TiledImage< ImageContainer, ImageFactory, ImageCacheReadPolicy, ImageCacheWritePolicy >

Detailed Description

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
class DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator

Specific TiledIterator on TiledImage.

Definition at line 234 of file TiledImage.h.

Member Typedef Documentation

◆ BlockCoordsIterator

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
typedef Domain::Iterator DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::BlockCoordsIterator

Definition at line 248 of file TiledImage.h.

◆ difference_type

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
using DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::difference_type = ptrdiff_t

Definition at line 243 of file TiledImage.h.

◆ iterator_category

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
using DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::iterator_category = std::bidirectional_iterator_tag

Definition at line 241 of file TiledImage.h.

◆ pointer

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
using DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::pointer = Value*

Definition at line 244 of file TiledImage.h.

◆ reference

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
using DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::reference = Value&

Definition at line 245 of file TiledImage.h.

◆ TiledRangeIterator

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
typedef ImageContainer::Range:: Iterator DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::TiledRangeIterator

Definition at line 247 of file TiledImage.h.

◆ value_type

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
using DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::value_type = Value

Definition at line 242 of file TiledImage.h.

Constructor & Destructor Documentation

◆ TiledIterator() [1/2]

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::TiledIterator ( BlockCoordsIterator aBlockCoordsIterator,
const TiledImage< ImageContainer, ImageFactory, ImageCacheReadPolicy, ImageCacheWritePolicy > * aTiledImage )
inline

Constructor.

Parameters
aBlockCoordsIteratora block coords iterator
aTiledImagepointer to the TiledImage

Definition at line 258 of file TiledImage.h.

262 {
263 if ( myBlockCoordsIterator != myTiledImage->domainBlockCoords().end() )
264 {
265 myTile = myTiledImage->findTileFromBlockCoords( (*myBlockCoordsIterator) );
266 myTiledRangeIterator = myTile->range().begin();
267 }
268 }
ImageContainer * myTile
Alias on the current tile.
Definition TiledImage.h:441
BlockCoordsIterator myBlockCoordsIterator
Current block coords iterator.
Definition TiledImage.h:447
const TiledImage * myTiledImage
TiledImage pointer.
Definition TiledImage.h:438
TiledRangeIterator myTiledRangeIterator
Current tiled range iterator.
Definition TiledImage.h:444
Aim: implements a tiled image from a "bigger/original" one from an ImageFactory.
Definition TiledImage.h:79

References myBlockCoordsIterator, myTiledImage, and DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledImage().

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

◆ TiledIterator() [2/2]

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::TiledIterator ( BlockCoordsIterator aBlockCoordsIterator,
const Point & aPoint,
const TiledImage< ImageContainer, ImageFactory, ImageCacheReadPolicy, ImageCacheWritePolicy > * aTiledImage )
inline

Constructor.

Parameters
aBlockCoordsIteratora block coords iterator
aPointa point
aTiledImagepointer to the TiledImage

Definition at line 277 of file TiledImage.h.

282 {
283 if ( myBlockCoordsIterator != myTiledImage->domainBlockCoords().end() )
284 {
285 myTile = myTiledImage->findTileFromBlockCoords( (*myBlockCoordsIterator) );
286 myTiledRangeIterator = myTile->range().begin(aPoint);
287 }
288 }

References aPoint, myBlockCoordsIterator, myTiledImage, and DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledImage().

Member Function Documentation

◆ nextLexicographicOrder()

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
void DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::nextLexicographicOrder ( )
inline

Implements the next() method to scan the domain points dimension by dimension (lexicographic order).

Definition at line 331 of file TiledImage.h.

332 {
334
335 if ( myTiledRangeIterator != myTile->range().end() )
336 return;
337 else
338 {
340
341 if ( myBlockCoordsIterator == myTiledImage->domainBlockCoords().end() )
342 return;
343
344 myTile = myTiledImage->findTileFromBlockCoords( (*myBlockCoordsIterator) );
345 myTiledRangeIterator = myTile->range().begin();
346 }
347 }

References myBlockCoordsIterator, myTile, myTiledImage, and myTiledRangeIterator.

Referenced by operator++(), and operator++().

◆ operator!=()

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
bool DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::operator!= ( const TiledIterator & it) const
inline

Operator !=

Returns
true if this and it are different.

Definition at line 318 of file TiledImage.h.

319 {
320 if ( myBlockCoordsIterator == myTiledImage->domainBlockCoords().end() )
321 return false;
322
323 return ( ( this->myBlockCoordsIterator != it.myBlockCoordsIterator ) || ( this->myTiledRangeIterator != it.myTiledRangeIterator ) );
324 }

References myBlockCoordsIterator, myTiledImage, myTiledRangeIterator, and TiledIterator().

◆ operator*()

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
Value & DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::operator* ( )
inline

operator *

Returns
the value associated to the current TiledRangeIterator position.

Definition at line 296 of file TiledImage.h.

297 {
298 return (*myTiledRangeIterator);
299 }

References myTiledRangeIterator.

◆ operator++() [1/2]

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
TiledIterator & DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::operator++ ( )
inline

Operator ++ (++it)

Definition at line 354 of file TiledImage.h.

355 {
357 return *this;
358 }

References nextLexicographicOrder(), and TiledIterator().

◆ operator++() [2/2]

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
TiledIterator DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::operator++ ( int )
inline

Operator ++ (it++)

Definition at line 365 of file TiledImage.h.

366 {
367 TiledIterator tmp = *this;
369 return tmp;
370 }
TiledIterator(BlockCoordsIterator aBlockCoordsIterator, const TiledImage< ImageContainer, ImageFactory, ImageCacheReadPolicy, ImageCacheWritePolicy > *aTiledImage)
Definition TiledImage.h:258

References nextLexicographicOrder(), and TiledIterator().

◆ operator--() [1/2]

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
TiledIterator & DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::operator-- ( )
inline

Operator – (–it)

Definition at line 419 of file TiledImage.h.

420 {
422 return *this;
423 }

References prevLexicographicOrder(), and TiledIterator().

◆ operator--() [2/2]

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
TiledIterator DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::operator-- ( int )
inline

Operator – (it–)

Definition at line 429 of file TiledImage.h.

430 {
431 TiledIterator tmp = *this;
433 return tmp;
434 }

References prevLexicographicOrder(), and TiledIterator().

◆ operator==()

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
bool DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::operator== ( const TiledIterator & it) const
inline

Operator ==

Returns
true if this and it are equals.

Definition at line 307 of file TiledImage.h.

308 {
309 return ( ( this->myBlockCoordsIterator == it.myBlockCoordsIterator ) && ( this->myTiledRangeIterator == it.myTiledRangeIterator ) );
310 }

References myBlockCoordsIterator, myTiledRangeIterator, and TiledIterator().

◆ prevLexicographicOrder()

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
void DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::prevLexicographicOrder ( )
inline

Implements the prev() method to scan the domain points dimension by dimension (lexicographic order).

Definition at line 377 of file TiledImage.h.

378 {
379 // -- IF we are at the end... (reverse, --)
380 if ( myBlockCoordsIterator == myTiledImage->domainBlockCoords().end() )
381 {
383
384 myTile = myTiledImage->findTileFromBlockCoords( (*myBlockCoordsIterator) );
385
386 myTiledRangeIterator = myTile->range().end();
388
389 return;
390 }
391 // -- IF we are at the end... (reverse, --)
392
393 // ---
394
395 if ( myTiledRangeIterator != myTile->range().begin() )
396 {
398 return;
399 }
400 else
401 {
402 if ( myBlockCoordsIterator == myTiledImage->domainBlockCoords().begin() )
403 return;
404
406
407 myTile = myTiledImage->findTileFromBlockCoords( (*myBlockCoordsIterator) );
408
409 myTiledRangeIterator = myTile->range().end();
411 }
412 }

References myBlockCoordsIterator, myTile, myTiledImage, and myTiledRangeIterator.

Referenced by operator--(), and operator--().

◆ TiledImage< ImageContainer, ImageFactory, ImageCacheReadPolicy, ImageCacheWritePolicy >

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
friend class TiledImage< ImageContainer, ImageFactory, ImageCacheReadPolicy, ImageCacheWritePolicy >
friend

Definition at line 804 of file TiledImage.h.

Field Documentation

◆ myBlockCoordsIterator

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
BlockCoordsIterator DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::myBlockCoordsIterator
private

Current block coords iterator.

Definition at line 447 of file TiledImage.h.

Referenced by nextLexicographicOrder(), operator!=(), operator==(), prevLexicographicOrder(), TiledIterator(), and TiledIterator().

◆ myTile

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
ImageContainer* DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::myTile
private

Alias on the current tile.

Definition at line 441 of file TiledImage.h.

Referenced by nextLexicographicOrder(), and prevLexicographicOrder().

◆ myTiledImage

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
const TiledImage* DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::myTiledImage
private

◆ myTiledRangeIterator

template<typename TImageContainer, typename TImageFactory, typename TImageCacheReadPolicy, typename TImageCacheWritePolicy>
TiledRangeIterator DGtal::TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy >::TiledIterator::myTiledRangeIterator
private

Current tiled range iterator.

Definition at line 444 of file TiledImage.h.

Referenced by nextLexicographicOrder(), operator!=(), operator*(), operator==(), and prevLexicographicOrder().


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