DGtal  1.0.0
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends
DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator Struct Reference

#include <DGtal/topology/CubicalComplex.h>

Inheritance diagram for DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator:
[legend]
Collaboration diagram for DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator:
[legend]

Public Types

typedef boost::iterator_facade< Iterator, Cell const, std::forward_iterator_tag > Base
 
typedef Iterator Self
 
typedef Base::value_type Value
 
typedef Base::pointer Pointer
 
typedef Base::reference Reference
 
typedef Base::difference_type DifferenceType
 

Public Member Functions

 Iterator ()
 Default iterator. Invalid. More...
 
 Iterator (Alias< CubicalComplex > cc, Dimension d)
 
 Iterator (Alias< CubicalComplex > cc, Dimension d, CellMapIterator it)
 

Private Member Functions

void nextDimension ()
 
void increment ()
 
bool equal (const Iterator &other) const
 
Cell const & dereference () const
 
Dimension dimension () const
 

Private Attributes

CubicalComplexmyCC
 
Dimension myD
 
CellMapIterator myIt
 
CellMapIterator myItEnd
 

Friends

class CubicalComplex
 
class boost::iterator_core_access
 

Detailed Description

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
struct DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator

A mutable iterator class to visit all the cells (and not their datas) of the complex. A model of boost::ForwardIterator. Note that, as for associative container, values are not modifiable.

Definition at line 382 of file CubicalComplex.h.

Member Typedef Documentation

◆ Base

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
typedef boost::iterator_facade< Iterator, Cell const, std::forward_iterator_tag > DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::Base

Definition at line 389 of file CubicalComplex.h.

◆ DifferenceType

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
typedef Base::difference_type DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::DifferenceType

Definition at line 394 of file CubicalComplex.h.

◆ Pointer

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
typedef Base::pointer DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::Pointer

Definition at line 392 of file CubicalComplex.h.

◆ Reference

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
typedef Base::reference DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::Reference

Definition at line 393 of file CubicalComplex.h.

◆ Self

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
typedef Iterator DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::Self

Definition at line 390 of file CubicalComplex.h.

◆ Value

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
typedef Base::value_type DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::Value

Definition at line 391 of file CubicalComplex.h.

Constructor & Destructor Documentation

◆ Iterator() [1/3]

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::Iterator ( )
inline

Default iterator. Invalid.

Definition at line 397 of file CubicalComplex.h.

397 : myCC( 0 ), myD( 0 ) {}

◆ Iterator() [2/3]

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::Iterator ( Alias< CubicalComplex cc,
Dimension  d 
)
inline

Constructor from complex cc and cell dimension d.

Parameters
ccany valid cubical complex that is aliased in the iterator.
dthe dimension of the starting cell.

Definition at line 406 of file CubicalComplex.h.

407  : myCC( &cc ), myD( d )
408  {
409  if ( myD <= myCC->dimension )
410  {
411  myIt = myCC->begin( myD );
412  myItEnd = myCC->end( myD );
413  nextDimension();
414  }
415  else
416  {
417  myD = myCC->dimension + 1;
418  myIt = myCC->end( myCC->dimension );
419  myItEnd = myCC->end( myCC->dimension );
420  }
421  }
ConstIterator begin() const
ConstIterator end() const
static const Dimension dimension
The dimension of the embedding space.

References DGtal::CubicalComplex< TKSpace, TCellContainer >::begin(), DGtal::CubicalComplex< TKSpace, TCellContainer >::dimension, DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::dimension(), DGtal::CubicalComplex< TKSpace, TCellContainer >::end(), DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::myCC, DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::myD, DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::myIt, DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::myItEnd, and DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::nextDimension().

◆ Iterator() [3/3]

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::Iterator ( Alias< CubicalComplex cc,
Dimension  d,
CellMapIterator  it 
)
inline

Detailed constructor from complex cc, cell dimension d and iterators.

Parameters
ccany valid cubical complex that is aliased in the iterator.
dthe dimension of the starting cell (0<=d<=dimension).
itan iterator pointing on a cell of the complex.

Definition at line 430 of file CubicalComplex.h.

432  : myCC( &cc ), myD( d ), myIt( it )
433  {
434  ASSERT( d <= myCC->dimension );
435  myItEnd = myCC->end( d );
436  nextDimension();
437  }
ConstIterator end() const

References DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::dimension(), DGtal::CubicalComplex< TKSpace, TCellContainer >::end(), DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::myCC, DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::myItEnd, and DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::nextDimension().

Member Function Documentation

◆ dereference()

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
Cell const& DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::dereference ( ) const
inlineprivate

Definition at line 464 of file CubicalComplex.h.

465  {
466  return myIt->first;
467  }

References DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::myIt.

◆ dimension()

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
Dimension DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::dimension ( ) const
inlineprivate

◆ equal()

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
bool DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::equal ( const Iterator other) const
inlineprivate

Definition at line 459 of file CubicalComplex.h.

460  {
461  return ( myD == other.myD ) && ( myIt == other.myIt );
462  }

References DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::myD, and DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::myIt.

◆ increment()

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
void DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::increment ( )
inlineprivate

◆ nextDimension()

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
void DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::nextDimension ( )
inlineprivate

Friends And Related Function Documentation

◆ boost::iterator_core_access

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
friend class boost::iterator_core_access
friend

Definition at line 440 of file CubicalComplex.h.

◆ CubicalComplex

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
friend class CubicalComplex
friend

Definition at line 386 of file CubicalComplex.h.

Field Documentation

◆ myCC

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
CubicalComplex* DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::myCC
private

◆ myD

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
Dimension DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::myD
private

◆ myIt

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
CellMapIterator DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::myIt
private

◆ myItEnd

template<typename TKSpace, typename TCellContainer = typename TKSpace::template CellMap< CubicalCellData >::Type>
CellMapIterator DGtal::CubicalComplex< TKSpace, TCellContainer >::Iterator::myItEnd
private

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