DGtal
1.5.beta
|
Aim: A model of CDigitalSurfaceContainer which defines the digital surface as the boundary of an implicitly define shape. Compute once the boundary of the surface with a tracking. More...
#include <DGtal/topology/ImplicitDigitalSurface.h>
Data Structures | |
class | Tracker |
Public Types | |
typedef ImplicitDigitalSurface< TKSpace, TPointPredicate > | Self |
typedef TKSpace | KSpace |
Model of cellular grid space. More... | |
typedef KSpace::SCell | Surfel |
Type for surfels. More... | |
typedef KSpace::Size | Size |
Type for sizes (unsigned integral type). More... | |
typedef TPointPredicate | PointPredicate |
typedef std::vector< Surfel > | SurfelStorage |
typedef SurfelStorage::const_iterator | SurfelConstIterator |
typedef KSpace::Space | Space |
typedef KSpace::Point | Point |
typedef Tracker | DigitalSurfaceTracker |
typedef SurfelAdjacency< KSpace::dimension > | Adjacency |
typedef KSpace::Cell | Cell |
typedef KSpace::SCell | SCell |
typedef KSpace::CellSet | CellSet |
typedef KSpace::SCellSet | SCellSet |
Public Member Functions | |
BOOST_CONCEPT_ASSERT ((concepts::CCellularGridSpaceND< KSpace >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CPointPredicate< PointPredicate >)) | |
~ImplicitDigitalSurface () | |
ImplicitDigitalSurface (const ImplicitDigitalSurface &other) | |
ImplicitDigitalSurface (ConstAlias< KSpace > aKSpace, ConstAlias< PointPredicate > aPP, const Adjacency &adj, const Surfel &s, bool closed=false) | |
const Adjacency & | surfelAdjacency () const |
accessor to surfel adjacency. More... | |
Adjacency & | surfelAdjacency () |
mutator to surfel adjacency. More... | |
const PointPredicate & | pointPredicate () const |
accessor to point predicate. More... | |
const KSpace & | space () const |
bool | isInside (const Surfel &s) const |
SurfelConstIterator | begin () const |
SurfelConstIterator | end () const |
Size | nbSurfels () const |
bool | empty () const |
DigitalSurfaceTracker * | newTracker (const Surfel &s) const |
Connectedness | connectedness () const |
void | selfDisplay (std::ostream &out) const |
bool | isValid () const |
Protected Member Functions | |
void | computeSurfels (const Surfel &p, bool closed) |
Private Member Functions | |
ImplicitDigitalSurface & | operator= (const ImplicitDigitalSurface &other) |
Private Attributes | |
const KSpace & | myKSpace |
a reference to the cellular space. More... | |
const PointPredicate & | myPointPredicate |
a reference to the point predicate defining the shape. More... | |
Adjacency | mySurfelAdjacency |
the surfel adjacency used to determine neighbors. More... | |
SurfelStorage | mySurfels |
a vector storing all the surfels of the boundary. More... | |
Aim: A model of CDigitalSurfaceContainer which defines the digital surface as the boundary of an implicitly define shape. Compute once the boundary of the surface with a tracking.
Description of template class 'ImplicitDigitalSurface'
TKSpace | a model of CCellularGridSpaceND: the type chosen for the cellular grid space. |
TPointPredicate | a model of concepts::CPointPredicate: this functor defines the inside of a shape on points where it is true. |
Definition at line 71 of file ImplicitDigitalSurface.h.
typedef SurfelAdjacency<KSpace::dimension> DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Adjacency |
Definition at line 177 of file ImplicitDigitalSurface.h.
typedef KSpace::Cell DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Cell |
Definition at line 178 of file ImplicitDigitalSurface.h.
typedef KSpace::CellSet DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::CellSet |
Definition at line 180 of file ImplicitDigitalSurface.h.
typedef Tracker DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::DigitalSurfaceTracker |
Definition at line 173 of file ImplicitDigitalSurface.h.
typedef TKSpace DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::KSpace |
Model of cellular grid space.
Definition at line 157 of file ImplicitDigitalSurface.h.
typedef KSpace::Point DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Point |
Definition at line 172 of file ImplicitDigitalSurface.h.
typedef TPointPredicate DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::PointPredicate |
Definition at line 163 of file ImplicitDigitalSurface.h.
typedef KSpace::SCell DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::SCell |
Definition at line 179 of file ImplicitDigitalSurface.h.
typedef KSpace::SCellSet DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::SCellSet |
Definition at line 181 of file ImplicitDigitalSurface.h.
typedef ImplicitDigitalSurface<TKSpace,TPointPredicate> DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Self |
Definition at line 155 of file ImplicitDigitalSurface.h.
typedef KSpace::Size DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Size |
Type for sizes (unsigned integral type).
Definition at line 161 of file ImplicitDigitalSurface.h.
typedef KSpace::Space DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Space |
Definition at line 171 of file ImplicitDigitalSurface.h.
typedef KSpace::SCell DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Surfel |
Type for surfels.
Definition at line 159 of file ImplicitDigitalSurface.h.
typedef SurfelStorage::const_iterator DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::SurfelConstIterator |
Definition at line 170 of file ImplicitDigitalSurface.h.
typedef std::vector<Surfel> DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::SurfelStorage |
Definition at line 169 of file ImplicitDigitalSurface.h.
DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::~ImplicitDigitalSurface | ( | ) |
Destructor.
DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::ImplicitDigitalSurface | ( | const ImplicitDigitalSurface< TKSpace, TPointPredicate > & | other | ) |
Copy constructor.
other | the object to clone. |
NB: O(N) computational complexity operation, where N is the number of surfels of the surface. This is due to the fact that the surface is stored explicitly.
DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::ImplicitDigitalSurface | ( | ConstAlias< KSpace > | aKSpace, |
ConstAlias< PointPredicate > | aPP, | ||
const Adjacency & | adj, | ||
const Surfel & | s, | ||
bool | closed = false |
||
) |
Constructor from digital set.
aKSpace | a cellular grid space (referenced). |
aPP | a point predicate defining implicitly the shape (referenced). |
adj | the surfel adjacency (for instance Adjacency( true ) is interior to exterior adjacency ). |
s | any surfel of aKSpace such that aPP is true in the interior and false in the exterior. |
closed | when 'true', the surface is known to be closed, hence faster extraction can be performed, default is 'false'. |
NB: O(N) computational complexity operation, where N is the number of surfels of the surface. This is due to the fact that, at construction, the surface is extracted and stored.
SurfelConstIterator DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::begin | ( | ) | const |
DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::BOOST_CONCEPT_ASSERT | ( | (concepts::CCellularGridSpaceND< KSpace >) | ) |
DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::BOOST_CONCEPT_ASSERT | ( | (concepts::CPointPredicate< PointPredicate >) | ) |
|
protected |
Recomputes the set of boundary surfels from the point predicate and some initial surfel.
p | any surfel of the surface |
closed | when 'true', the surface is known to be closed, hence faster extraction can be performed. |
Connectedness DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::connectedness | ( | ) | const |
bool DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::empty | ( | ) | const |
SurfelConstIterator DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::end | ( | ) | const |
bool DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::isInside | ( | const Surfel & | s | ) | const |
s | any surfel of the space. |
bool DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::isValid | ( | ) | const |
Checks the validity/consistency of the object.
Size DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::nbSurfels | ( | ) | const |
DigitalSurfaceTracker* DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::newTracker | ( | const Surfel & | s | ) | const |
s | any surfel of the space. |
|
private |
Assignment.
other | the object to copy. |
const PointPredicate& DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::pointPredicate | ( | ) | const |
accessor to point predicate.
void DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::selfDisplay | ( | std::ostream & | out | ) | const |
Writes/Displays the object on an output stream.
out | the output stream where the object is written. |
const KSpace& DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::space | ( | ) | const |
Adjacency& DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::surfelAdjacency | ( | ) |
mutator to surfel adjacency.
const Adjacency& DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::surfelAdjacency | ( | ) | const |
accessor to surfel adjacency.
|
private |
a reference to the cellular space.
Definition at line 293 of file ImplicitDigitalSurface.h.
|
private |
a reference to the point predicate defining the shape.
Definition at line 295 of file ImplicitDigitalSurface.h.
|
private |
the surfel adjacency used to determine neighbors.
Definition at line 297 of file ImplicitDigitalSurface.h.
|
private |
a vector storing all the surfels of the boundary.
Definition at line 299 of file ImplicitDigitalSurface.h.