DGtal  1.1.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 411 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 418 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 423 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 421 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 422 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 419 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 420 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 426 of file CubicalComplex.h.

426 : 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

◆ 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 459 of file CubicalComplex.h.

461  : myCC( &cc ), myD( d ), myIt( it )
462  {
463  ASSERT( d <= myCC->dimension );
464  myItEnd = myCC->end( d );
465  nextDimension();
466  }

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 493 of file CubicalComplex.h.

494  {
495  return myIt->first;
496  }

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 488 of file CubicalComplex.h.

489  {
490  return ( myD == other.myD ) && ( myIt == other.myIt );
491  }

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 469 of file CubicalComplex.h.

◆ CubicalComplex

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

Definition at line 415 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:
DGtal::CubicalComplex::Iterator::myCC
CubicalComplex * myCC
Definition: CubicalComplex.h:504
DGtal::CubicalComplex::Iterator::myItEnd
CellMapIterator myItEnd
Definition: CubicalComplex.h:507
DGtal::CubicalComplex::Iterator::myIt
CellMapIterator myIt
Definition: CubicalComplex.h:506
DGtal::CubicalComplex::begin
ConstIterator begin() const
DGtal::CubicalComplex::Iterator::nextDimension
void nextDimension()
Definition: CubicalComplex.h:471
DGtal::CubicalComplex::Iterator::myD
Dimension myD
Definition: CubicalComplex.h:505
DGtal::CubicalComplex::Iterator::dimension
Dimension dimension() const
Definition: CubicalComplex.h:498
DGtal::CubicalComplex::dimension
static const Dimension dimension
The dimension of the embedding space.
Definition: CubicalComplex.h:242
DGtal::CubicalComplex::end
ConstIterator end() const