DGtal
0.6.devel
|
#include <ImplicitDigitalSurface.h>
Data Structures | |
class | Tracker |
Public Types | |
typedef ImplicitDigitalSurface < TKSpace, TPointPredicate > | Self |
typedef TKSpace | KSpace |
typedef KSpace::SCell | Surfel |
typedef KSpace::Size | Size |
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 ((CPointPredicate< PointPredicate >)) | |
~ImplicitDigitalSurface () | |
ImplicitDigitalSurface (const ImplicitDigitalSurface &other) | |
ImplicitDigitalSurface (const KSpace &aKSpace, const PointPredicate &aPP, const Adjacency &adj, const Surfel &s, bool closed=false) | |
const Adjacency & | surfelAdjacency () const |
Adjacency & | surfelAdjacency () |
const PointPredicate & | pointPredicate () const |
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 |
const PointPredicate & | myPointPredicate |
Adjacency | mySurfelAdjacency |
SurfelStorage | mySurfels |
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 CPointPredicate: this functor defines the inside of a shape on points where it is true. |
Definition at line 70 of file ImplicitDigitalSurface.h.
typedef SurfelAdjacency<KSpace::dimension> DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Adjacency |
Definition at line 176 of file ImplicitDigitalSurface.h.
typedef KSpace::Cell DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Cell |
Definition at line 177 of file ImplicitDigitalSurface.h.
typedef KSpace::CellSet DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::CellSet |
Definition at line 179 of file ImplicitDigitalSurface.h.
typedef Tracker DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::DigitalSurfaceTracker |
Definition at line 172 of file ImplicitDigitalSurface.h.
typedef TKSpace DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::KSpace |
Model of cellular grid space.
Definition at line 156 of file ImplicitDigitalSurface.h.
typedef KSpace::Point DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Point |
Definition at line 171 of file ImplicitDigitalSurface.h.
typedef TPointPredicate DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::PointPredicate |
Definition at line 162 of file ImplicitDigitalSurface.h.
typedef KSpace::SCell DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::SCell |
Definition at line 178 of file ImplicitDigitalSurface.h.
typedef KSpace::SCellSet DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::SCellSet |
Definition at line 180 of file ImplicitDigitalSurface.h.
typedef ImplicitDigitalSurface<TKSpace,TPointPredicate> DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Self |
Definition at line 154 of file ImplicitDigitalSurface.h.
typedef KSpace::Size DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Size |
Type for sizes (unsigned integral type).
Definition at line 160 of file ImplicitDigitalSurface.h.
typedef KSpace::Space DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Space |
Definition at line 170 of file ImplicitDigitalSurface.h.
typedef KSpace::SCell DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Surfel |
Type for surfels.
Definition at line 158 of file ImplicitDigitalSurface.h.
typedef SurfelStorage::const_iterator DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::SurfelConstIterator |
Definition at line 169 of file ImplicitDigitalSurface.h.
typedef std::vector<Surfel> DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::SurfelStorage |
Definition at line 168 of file ImplicitDigitalSurface.h.
|
inline |
|
inline |
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.
Definition at line 130 of file ImplicitDigitalSurface.ih.
|
inline |
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.
Definition at line 141 of file ImplicitDigitalSurface.ih.
References DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::computeSurfels().
|
inline |
Definition at line 213 of file ImplicitDigitalSurface.ih.
References DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::mySurfels.
DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::BOOST_CONCEPT_ASSERT | ( | (CPointPredicate< PointPredicate >) | ) |
|
inlineprotected |
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. |
Definition at line 265 of file ImplicitDigitalSurface.ih.
References DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::myKSpace, DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::myPointPredicate, DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::mySurfelAdjacency, and DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::mySurfels.
Referenced by DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::ImplicitDigitalSurface().
|
inline |
Definition at line 254 of file ImplicitDigitalSurface.ih.
References DGtal::CONNECTED.
|
inline |
Definition at line 237 of file ImplicitDigitalSurface.ih.
References DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::mySurfels.
|
inline |
Definition at line 221 of file ImplicitDigitalSurface.ih.
References DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::mySurfels.
|
inline |
s | any surfel of the space. |
Definition at line 192 of file ImplicitDigitalSurface.ih.
References DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::myKSpace, and DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::myPointPredicate.
Referenced by DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Tracker::move().
|
inline |
Checks the validity/consistency of the object.
Definition at line 308 of file ImplicitDigitalSurface.ih.
|
inline |
Definition at line 229 of file ImplicitDigitalSurface.ih.
References DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::mySurfels.
|
inline |
s | any surfel of the space. |
Definition at line 246 of file ImplicitDigitalSurface.ih.
|
private |
Assignment.
other | the object to copy. |
|
inline |
accessor to point predicate.
Definition at line 172 of file ImplicitDigitalSurface.ih.
References DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::myPointPredicate.
Referenced by DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Tracker::adjacent().
|
inline |
Writes/Displays the object on an output stream.
out | the output stream where the object is written. |
Definition at line 296 of file ImplicitDigitalSurface.ih.
|
inline |
Definition at line 183 of file ImplicitDigitalSurface.ih.
References DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::myKSpace.
Referenced by DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Tracker::Tracker().
|
inline |
accessor to surfel adjacency.
Definition at line 155 of file ImplicitDigitalSurface.ih.
References DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::mySurfelAdjacency.
Referenced by DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::Tracker::Tracker().
|
inline |
mutator to surfel adjacency.
Definition at line 163 of file ImplicitDigitalSurface.ih.
References DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::mySurfelAdjacency.
|
private |
a reference to the cellular space.
Definition at line 292 of file ImplicitDigitalSurface.h.
Referenced by DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::computeSurfels(), DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::isInside(), and DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::space().
|
private |
a reference to the point predicate defining the shape.
Definition at line 294 of file ImplicitDigitalSurface.h.
Referenced by DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::computeSurfels(), DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::isInside(), and DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::pointPredicate().
|
private |
the surfel adjacency used to determine neighbors.
Definition at line 296 of file ImplicitDigitalSurface.h.
Referenced by DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::computeSurfels(), and DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::surfelAdjacency().
|
private |
a vector storing all the surfels of the boundary.
Definition at line 298 of file ImplicitDigitalSurface.h.
Referenced by DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::begin(), DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::computeSurfels(), DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::empty(), DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::end(), and DGtal::ImplicitDigitalSurface< TKSpace, TPointPredicate >::nbSurfels().