31 #if defined(LightImplicitDigitalSurface_RECURSES) 32 #error Recursive header files inclusion detected in LightImplicitDigitalSurface.h 33 #else // defined(LightImplicitDigitalSurface_RECURSES) 35 #define LightImplicitDigitalSurface_RECURSES 37 #if !defined LightImplicitDigitalSurface_h 39 #define LightImplicitDigitalSurface_h 45 #include "DGtal/base/Common.h" 46 #include "DGtal/base/ConstAlias.h" 47 #include "DGtal/kernel/CPointPredicate.h" 48 #include "DGtal/topology/Topology.h" 49 #include "DGtal/topology/SurfelAdjacency.h" 50 #include "DGtal/topology/SurfelNeighborhood.h" 51 #include "DGtal/graph/BreadthFirstVisitor.h" 52 #include "DGtal/graph/GraphVisitorRange.h" 114 template <
typename TKSpace,
typename TPo
intPredicate>
158 const Surfel &
current()
const;
167 void move(
const Surfel & s );
205 typedef typename KSpace::Size
Size;
216 typedef typename KSpace::SCell
SCell;
224 template <
typename Value>
226 typedef typename KSpace::template SurfelMap<Value>::Type
Type;
263 const Adjacency & adj,
277 const KSpace &
space()
const;
282 bool isInside(
const Surfel & s )
const;
286 SurfelConstIterator
begin()
const;
290 SurfelConstIterator
end()
const;
306 DigitalSurfaceTracker*
newTracker(
const Surfel & s )
const;
321 Size
degree(
const Vertex & v )
const;
335 template <
typename OutputIterator>
337 const Vertex & v )
const;
356 template <
typename OutputIterator,
typename VertexPredicate>
359 const VertexPredicate & pred )
const;
434 template <
typename TKSpace,
typename TPo
intPredicate>
444 #include "DGtal/topology/LightImplicitDigitalSurface.ih" 449 #endif // !defined LightImplicitDigitalSurface_h 451 #undef LightImplicitDigitalSurface_RECURSES 452 #endif // else defined(LightImplicitDigitalSurface_RECURSES) void selfDisplay(std::ostream &out) const
LightImplicitDigitalSurface< TKSpace, TPointPredicate > DigitalSurfaceContainer
SurfelConstIterator begin() const
const PointPredicate & pointPredicate() const
accessor to point predicate.
TKSpace KSpace
Model of cellular grid space.
Aim: A model of CDigitalSurfaceContainer which defines the digital surface as the boundary of an impl...
Tracker(ConstAlias< DigitalSurfaceContainer > aSurface, const Surfel &s)
BreadthFirstVisitor< Self > SelfVisitor
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
DGtal::uint32_t Dimension
Size degree(const Vertex &v) const
void writeNeighbors(OutputIterator &it, const Vertex &v) const
uint8_t adjacent(Surfel &s, Dimension d, bool pos) const
KSpace::Size Size
Type for sizes (unsigned integral type).
bool isInside(const Surfel &s) const
Dimension orthDir() const
const Surfel & current() const
GraphVisitorRange< SelfVisitor > SelfVisitorRange
BOOST_CONCEPT_ASSERT((concepts::CPointPredicate< PointPredicate >))
void move(const Surfel &s)
DigitalSurfaceTracker * newTracker(const Surfel &s) const
~LightImplicitDigitalSurface()
SurfelNeighborhood< KSpace > Neighborhood
LightImplicitDigitalSurface(const LightImplicitDigitalSurface &other)
const DigitalSurfaceContainer & surface() const
KSpace::template SurfelMap< Value >::Type Type
Aim: Defines a predicate on a point.
SurfelConstIterator end() const
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
Size bestCapacity() const
Connectedness connectedness() const
const KSpace & space() const
LightImplicitDigitalSurface & operator=(const LightImplicitDigitalSurface &other)
const Adjacency & surfelAdjacency() const
accessor to surfel adjacency.
DGtal is the top-level namespace which contains all DGtal functions and types.
Aim: Transforms a graph visitor into a single pass input range.
boost::uint8_t uint8_t
unsigned 8-bit integer.
LightImplicitDigitalSurface< TKSpace, TPointPredicate > Self
const PointPredicate & myPointPredicate
a reference to the point predicate defining the shape.
Tracker myTracker
Internal tracker for visiting surfels.
TPointPredicate PointPredicate
Aim: This class is useful to perform a breadth-first exploration of a graph given a starting point or...
KSpace::SCell Surfel
Type for surfels.
SelfVisitorRange::ConstIterator SurfelConstIterator
Tracker DigitalSurfaceTracker
Surfel mySurfel
a surfel belonging to the surface.
Adjacency mySurfelAdjacency
the surfel adjacency used to determine neighbors.
SurfelAdjacency< KSpace::dimension > Adjacency
const DigitalSurfaceContainer & mySurface
Neighborhood myNeighborhood
const KSpace & myKSpace
a reference to the cellular space.
KSpace::SCellSet SCellSet