|
DGtal 1.4.2
|
Aim: This class is useful to visit an object by adjacencies, layer by layer. More...
#include <DGtal/graph/Expander.h>
Public Types | |
| typedef TObject | Object |
| typedef Object::Size | Size |
| typedef Object::Point | Point |
| typedef Object::Domain | Domain |
| typedef Object::DigitalSet | DigitalSet |
| typedef Object::ForegroundAdjacency | ForegroundAdjacency |
| typedef Domain::Space | Space |
| typedef DigitalSet::ConstIterator | ConstIterator |
| typedef DigitalSetDomain< DigitalSet > | ObjectDomain |
| typedef DigitalSetDomain< DigitalSet > | CoreDomain |
| typedef DomainAdjacency< ObjectDomain, ForegroundAdjacency > | ObjectAdjacency |
| typedef CoreDomain::Predicate | InCoreDomainPredicate |
| typedef functors::NotPointPredicate< InCoreDomainPredicate > | NotInCoreDomainPredicate |
Public Member Functions | |
| ~Expander () | |
| Expander (ConstAlias< Object > object, const Point &p) | |
| template<typename PointInputIterator > | |
| Expander (ConstAlias< Object > object, PointInputIterator b, PointInputIterator e) | |
| bool | finished () const |
| Size | distance () const |
| bool | nextLayer () |
| const DigitalSet & | core () const |
| const DigitalSet & | layer () const |
| ConstIterator | begin () const |
| ConstIterator | end () const |
| void | selfDisplay (std::ostream &out) const |
| bool | isValid () const |
Protected Member Functions | |
| Expander () | |
| void | computeNextLayer (const DigitalSet &src) |
| void | endLayer () |
Private Member Functions | |
| Expander (const Expander &other) | |
| Expander & | operator= (const Expander &other) |
Private Attributes | |
| const Domain & | myEmbeddingDomain |
| const Object & | myObject |
| ObjectDomain | myObjectDomain |
| ObjectAdjacency | myObjectAdjacency |
| DigitalSet | myCore |
| DigitalSet | myLayer |
| Size | myDistance |
| bool | myFinished |
| NotInCoreDomainPredicate | myNotInCorePred |
Aim: This class is useful to visit an object by adjacencies, layer by layer.
Description of template class 'Expander'
The expander implements a breadth-first algorithm on the graph of adjacencies. It can be used not only to detect connected component but also to identify the layers of the object located at a given distance of a starting set.
The core of the expander is at the beginning the set of points at distance 0. Each layer is at a different distance from the initial core. The expander move layer by layer but the user is free to navigate on each layer.
| TObject | the type of the digital object. |
Definition at line 97 of file Expander.h.
| DigitalSet::ConstIterator DGtal::Expander< TObject >::ConstIterator |
Definition at line 108 of file Expander.h.
| DigitalSetDomain<DigitalSet> DGtal::Expander< TObject >::CoreDomain |
Definition at line 110 of file Expander.h.
| Object::DigitalSet DGtal::Expander< TObject >::DigitalSet |
Definition at line 105 of file Expander.h.
| Object::Domain DGtal::Expander< TObject >::Domain |
Definition at line 104 of file Expander.h.
| Object::ForegroundAdjacency DGtal::Expander< TObject >::ForegroundAdjacency |
Definition at line 106 of file Expander.h.
| CoreDomain::Predicate DGtal::Expander< TObject >::InCoreDomainPredicate |
Definition at line 112 of file Expander.h.
| functors::NotPointPredicate< InCoreDomainPredicate > DGtal::Expander< TObject >::NotInCoreDomainPredicate |
Definition at line 113 of file Expander.h.
| TObject DGtal::Expander< TObject >::Object |
Definition at line 101 of file Expander.h.
| DomainAdjacency< ObjectDomain, ForegroundAdjacency> DGtal::Expander< TObject >::ObjectAdjacency |
Definition at line 111 of file Expander.h.
| DigitalSetDomain<DigitalSet> DGtal::Expander< TObject >::ObjectDomain |
Definition at line 109 of file Expander.h.
| Object::Point DGtal::Expander< TObject >::Point |
Definition at line 103 of file Expander.h.
| Object::Size DGtal::Expander< TObject >::Size |
Definition at line 102 of file Expander.h.
| Domain::Space DGtal::Expander< TObject >::Space |
Definition at line 107 of file Expander.h.
| DGtal::Expander< TObject >::~Expander | ( | ) |
Destructor.
| DGtal::Expander< TObject >::Expander | ( | ConstAlias< Object > | object, |
| const Point & | p ) |
Constructor from a point. This point provides the initial core of the expander.
| object | the digital object in which the expander expands. |
| p | any point in the given object. |
| DGtal::Expander< TObject >::Expander | ( | ConstAlias< Object > | object, |
| PointInputIterator | b, | ||
| PointInputIterator | e ) |
Constructor from iterators. All points visited between the iterators should be distinct two by two. The so specified set of points provides the initial core of the expander.
| PointInputIterator | type of an InputIterator pointing on a Point. |
| object | the digital object in which the expander expands. |
| b | the begin point in a set. |
| e | the end point in a set. |
|
protected |
Constructor. Forbidden by default (protected to avoid g++ warnings).
|
private |
Copy constructor.
| other | the object to clone. Forbidden by default. |
| ConstIterator DGtal::Expander< TObject >::begin | ( | ) | const |
|
protected |
Computes the next layer just around [src]. The member 'm_core' must be up to date (i.e, [src] is a subset of 'm_core'). 'm_layer' is cleared in this method. At first call, [src] should be 'm_core', then [src] should be 'm_layer'.
| src | the set around which the new layer is computed. |
| const DigitalSet & DGtal::Expander< TObject >::core | ( | ) | const |
| Size DGtal::Expander< TObject >::distance | ( | ) | const |
| ConstIterator DGtal::Expander< TObject >::end | ( | ) | const |
|
protected |
Push the layer into the current core and clear it. Must be called before computeNewLayer.
| bool DGtal::Expander< TObject >::finished | ( | ) | const |
| bool DGtal::Expander< TObject >::isValid | ( | ) | const |
Checks the validity/consistency of the object.
| const DigitalSet & DGtal::Expander< TObject >::layer | ( | ) | const |
| bool DGtal::Expander< TObject >::nextLayer | ( | ) |
Extract next layer. You might used begin() and end() to access all the elements of the new layer.
|
private |
Assignment.
| other | the object to copy. |
| void DGtal::Expander< TObject >::selfDisplay | ( | std::ostream & | out | ) | const |
Writes/Displays the object on an output stream.
| out | the output stream where the object is written. |
|
private |
Set representing the core of the expansion: the expansion should not enter the core.
Definition at line 235 of file Expander.h.
|
private |
Current distance to origin.
Definition at line 245 of file Expander.h.
|
private |
The domain in which the object is lying.
Definition at line 214 of file Expander.h.
|
private |
Boolean stating whether the expansion is over or not.
Definition at line 250 of file Expander.h.
|
private |
Set representing the current layer.
Definition at line 240 of file Expander.h.
|
private |
Predicate ensuring the not-in-core expansion.
Definition at line 255 of file Expander.h.
|
private |
The object where the expansion takes place.
Definition at line 219 of file Expander.h.
|
private |
The adjacency that is used in myObjectDomain.
Definition at line 229 of file Expander.h.
|
private |
The domain corresponding to the object.
Definition at line 224 of file Expander.h.