|
DGtal 2.0.0
|
Aim: This helper class is useful to compute the neighboring surfels of a given surfel, especially over a digital surface or over an object boundary. Two signed surfels are incident if they share a common n-2 cell. This class uses a SurfelAdjacency so as to determine adjacent surfels (either looking for them from interior to exterior or inversely). More...
#include <DGtal/topology/SurfelNeighborhood.h>
Public Types | |
| typedef TKSpace | KSpace |
| typedef KSpace::Point | Point |
| typedef KSpace::Cell | Cell |
| typedef KSpace::SCell | SCell |
Public Member Functions | |
| ~SurfelNeighborhood () | |
| SurfelNeighborhood () | |
| SurfelNeighborhood (const SurfelNeighborhood &other) | |
| SurfelNeighborhood & | operator= (const SurfelNeighborhood &other) |
| void | init (const KSpace *space, const SurfelAdjacency< KSpace::dimension > *adj, const SCell &aSurfel) |
| void | setSurfel (const SCell &aSurfel) |
| const SCell & | surfel () const |
| Dimension | orthDir () const |
| SCell | innerSpel () const |
| SCell | outerSpel () const |
| SCell | innerAdjacentSpel (Dimension track_dir, bool pos) const |
| SCell | outerAdjacentSpel (Dimension track_dir, bool pos) const |
| SCell | follower1 (Dimension track_dir, bool pos) const |
| SCell | follower2 (Dimension track_dir, bool pos) const |
| SCell | follower3 (Dimension track_dir, bool pos) const |
| template<typename SpelSet> | |
| unsigned int | getAdjacentOnSpelSet (SCell &adj_surfel, const SpelSet &obj, Dimension track_dir, bool pos) const |
| template<typename DigitalSet> | |
| unsigned int | getAdjacentOnDigitalSet (SCell &adj_surfel, const DigitalSet &obj, Dimension track_dir, bool pos) const |
| template<typename PointPredicate> | |
| unsigned int | getAdjacentOnPointPredicate (SCell &adj_surfel, const PointPredicate &pp, Dimension track_dir, bool pos) const |
| template<typename SurfelPredicate> | |
| unsigned int | getAdjacentOnSurfelPredicate (SCell &adj_surfel, const SurfelPredicate &sp, Dimension track_dir, bool pos) const |
| void | selfDisplay (std::ostream &out) const |
| bool | isValid () const |
Private Attributes | |
| const KSpace * | mySpace |
| const SurfelAdjacency< KSpace::dimension > * | mySurfelAdj |
| SCell | mySurfel |
| Dimension | myOrthDir |
| bool | myOrthDirect |
Aim: This helper class is useful to compute the neighboring surfels of a given surfel, especially over a digital surface or over an object boundary. Two signed surfels are incident if they share a common n-2 cell. This class uses a SurfelAdjacency so as to determine adjacent surfels (either looking for them from interior to exterior or inversely).
Description of template class 'SurfelNeighborhood'
| TKSpace | the type of celluler grid space (for instance, a KhalimskySpaceND). |
Essentially a backport from ImaGene.
Definition at line 68 of file SurfelNeighborhood.h.
| typedef KSpace::Cell DGtal::SurfelNeighborhood< TKSpace >::Cell |
Definition at line 75 of file SurfelNeighborhood.h.
| typedef TKSpace DGtal::SurfelNeighborhood< TKSpace >::KSpace |
Definition at line 73 of file SurfelNeighborhood.h.
| typedef KSpace::Point DGtal::SurfelNeighborhood< TKSpace >::Point |
Definition at line 74 of file SurfelNeighborhood.h.
| typedef KSpace::SCell DGtal::SurfelNeighborhood< TKSpace >::SCell |
Definition at line 76 of file SurfelNeighborhood.h.
| DGtal::SurfelNeighborhood< TKSpace >::~SurfelNeighborhood | ( | ) |
Destructor.
| DGtal::SurfelNeighborhood< TKSpace >::SurfelNeighborhood | ( | ) |
Constructor. The object is not valid.
| DGtal::SurfelNeighborhood< TKSpace >::SurfelNeighborhood | ( | const SurfelNeighborhood< TKSpace > & | other | ) |
Copy constructor.
| other | the object to clone. |
| SCell DGtal::SurfelNeighborhood< TKSpace >::follower1 | ( | Dimension | track_dir, |
| bool | pos ) const |
| SCell DGtal::SurfelNeighborhood< TKSpace >::follower2 | ( | Dimension | track_dir, |
| bool | pos ) const |
| SCell DGtal::SurfelNeighborhood< TKSpace >::follower3 | ( | Dimension | track_dir, |
| bool | pos ) const |
| unsigned int DGtal::SurfelNeighborhood< TKSpace >::getAdjacentOnDigitalSet | ( | SCell & | adj_surfel, |
| const DigitalSet & | obj, | ||
| Dimension | track_dir, | ||
| bool | pos ) const |
Go to the next direct or indirect adjacent bel on the boundary of some digital [obj]. The boundary may be open (it touches the space borders).
| DigitalSet | any model of digital set, i.e. a set of digital points, having 'find( const Point & ) : const_iterator'. |
| adj_surfel | (returns) the signed adjacent surfel in direction [track_dir] if there is one. |
| obj | any set of unsigned spels (n-cells). |
| track_dir | the direction where to look for the spel. |
| pos | when 'true' look in positive direction along [track_dir] axis, 'false' look in negative direction. |
Referenced by testSurfelAdjacency().
| unsigned int DGtal::SurfelNeighborhood< TKSpace >::getAdjacentOnPointPredicate | ( | SCell & | adj_surfel, |
| const PointPredicate & | pp, | ||
| Dimension | track_dir, | ||
| bool | pos ) const |
Go to the next direct or indirect adjacent bel on the boundary of some digital set defined by a PointPredicate [pp]. The boundary may be open (it touches the space borders).
| PointPredicate | any model of predicate on point, i.e. a boolean functor returning 'true' when the point belongs to the object. It is a model of concepts::CPointPredicate. The type SurfelNeighborhood::Point should be the same as PointPredicate::Point. |
| adj_surfel | (returns) the signed adjacent surfel in direction [track_dir] if there is one. |
| pp | any predicate taking a Point and returning 'true' whenever the point belongs to the object. |
| track_dir | the direction where to look for the spel. |
| pos | when 'true' look in positive direction along [track_dir] axis, 'false' look in negative direction. |
| unsigned int DGtal::SurfelNeighborhood< TKSpace >::getAdjacentOnSpelSet | ( | SCell & | adj_surfel, |
| const SpelSet & | obj, | ||
| Dimension | track_dir, | ||
| bool | pos ) const |
Go to the next direct or indirect adjacent bel on the boundary of some set of unsigned spels [obj]. The boundary may be open (it touches the space borders).
| SpelSet | any model of a set of unsigned spels, having 'find( const Spel & ) : const_iterator'. |
| adj_surfel | (returns) the signed adjacent surfel in direction [track_dir] if there is one. |
| obj | any set of unsigned spels (n-cells). |
| track_dir | the direction where to look for the spel. |
| pos | when 'true' look in positive direction along [track_dir] axis, 'false' look in negative direction. |
| unsigned int DGtal::SurfelNeighborhood< TKSpace >::getAdjacentOnSurfelPredicate | ( | SCell & | adj_surfel, |
| const SurfelPredicate & | sp, | ||
| Dimension | track_dir, | ||
| bool | pos ) const |
Go to the next direct or indirect adjacent bel on some set of surfels defined by a SurfelPredicate [sp]. The digital surface may be open (for instance, it may touch the space borders or may be open).
| SurfelPredicate | any model of predicate on surfel, i.e. a boolean functor returning 'true' when the surfel belongs to the digital surface. It is a model of CSurfelPredicate. |
| adj_surfel | (returns) the signed adjacent surfel in direction [track_dir] if there is one. |
| sp | any predicate taking a Surfel and returning 'true' whenever the surfel belongs to the surface. |
| track_dir | the direction where to look for the spel. |
| pos | when 'true' look in positive direction along [track_dir] axis, 'false' look in negative direction. |
| void DGtal::SurfelNeighborhood< TKSpace >::init | ( | const KSpace * | space, |
| const SurfelAdjacency< KSpace::dimension > * | adj, | ||
| const SCell & | aSurfel ) |
Initializes space, adjacency, surfel.
| space | the cellular grid space (only referenced). |
| adj | the chosen surfel adjacency (only referenced). |
| aSurfel | any signed surfel of [space] ((n-1)-cell). |
Referenced by testSurfelAdjacency().
| SCell DGtal::SurfelNeighborhood< TKSpace >::innerAdjacentSpel | ( | Dimension | track_dir, |
| bool | pos ) const |
| track_dir | the direction where to look for the spel. |
| pos | when 'true', looks along the positive direction of the tracking axis, otherwise along the negative direction. |
| SCell DGtal::SurfelNeighborhood< TKSpace >::innerSpel | ( | ) | const |
| bool DGtal::SurfelNeighborhood< TKSpace >::isValid | ( | ) | const |
Checks the validity/consistency of the object.
| SurfelNeighborhood & DGtal::SurfelNeighborhood< TKSpace >::operator= | ( | const SurfelNeighborhood< TKSpace > & | other | ) |
Assignment.
| other | the object to copy. |
| Dimension DGtal::SurfelNeighborhood< TKSpace >::orthDir | ( | ) | const |
| SCell DGtal::SurfelNeighborhood< TKSpace >::outerAdjacentSpel | ( | Dimension | track_dir, |
| bool | pos ) const |
| track_dir | the direction where to look for the spel. |
| pos | when 'true', looks along the positive direction of the tracking axis, otherwise along the negative direction. |
| SCell DGtal::SurfelNeighborhood< TKSpace >::outerSpel | ( | ) | const |
| void DGtal::SurfelNeighborhood< TKSpace >::selfDisplay | ( | std::ostream & | out | ) | const |
Writes/Displays the object on an output stream.
| out | the output stream where the object is written. |
| void DGtal::SurfelNeighborhood< TKSpace >::setSurfel | ( | const SCell & | aSurfel | ) |
Sets the neighborhood to the given [surfel].
| aSurfel | any signed surfel of this space ((n-1)-cell). |
| const SCell & DGtal::SurfelNeighborhood< TKSpace >::surfel | ( | ) | const |
|
private |
The orthogonal direction to [mySurfel].
Definition at line 332 of file SurfelNeighborhood.h.
|
private |
The direct orientation in the orthogonal direction wrt [mySurfel].
Definition at line 335 of file SurfelNeighborhood.h.
|
private |
A pointer to the digital space.
Definition at line 326 of file SurfelNeighborhood.h.
|
private |
The current surfel.
Definition at line 330 of file SurfelNeighborhood.h.
|
private |
A pointer to the bel adjacency.
Definition at line 328 of file SurfelNeighborhood.h.