31 #if defined(ImplicitDigitalSurface_RECURSES)
32 #error Recursive header files inclusion detected in ImplicitDigitalSurface.h
33 #else // defined(ImplicitDigitalSurface_RECURSES)
35 #define ImplicitDigitalSurface_RECURSES
37 #if !defined ImplicitDigitalSurface_h
39 #define ImplicitDigitalSurface_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"
70 template <
typename TKSpace,
typename TPo
intPredicate>
85 typedef typename TKSpace::SCell
Surfel;
224 bool closed =
false );
345 template <
typename TKSpace,
typename TPo
intPredicate>
355 #include "DGtal/topology/ImplicitDigitalSurface.ih"
360 #endif // !defined ImplicitDigitalSurface_h
362 #undef ImplicitDigitalSurface_RECURSES
363 #endif // else defined(ImplicitDigitalSurface_RECURSES)
KSpace::SCell Surfel
Type for surfels.
ImplicitDigitalSurface & operator=(const ImplicitDigitalSurface &other)
const KSpace & space() const
ImplicitDigitalSurface(const ImplicitDigitalSurface &other)
Tracker(ConstAlias< DigitalSurfaceContainer > aSurface, const Surfel &s)
Dimension orthDir() const
Connectedness connectedness() const
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
TKSpace KSpace
Model of cellular grid space.
const PointPredicate & pointPredicate() const
accessor to point predicate.
Neighborhood myNeighborhood
KSpace::Size Size
Type for sizes (unsigned integral type).
BOOST_CONCEPT_ASSERT((concepts::CPointPredicate< PointPredicate >))
Adjacency & surfelAdjacency()
mutator to surfel adjacency.
const Surfel & current() const
const KSpace & myKSpace
a reference to the cellular space.
SurfelNeighborhood< KSpace > Neighborhood
Aim: This concept describes a cellular grid space in nD. In these spaces obtained by cartesian produc...
Aim: A model of CDigitalSurfaceContainer which defines the digital surface as the boundary of an impl...
DGtal::uint32_t Dimension
void move(const Surfel &s)
void selfDisplay(std::ostream &out) const
Tracker(const Tracker &other)
ImplicitDigitalSurface(ConstAlias< KSpace > aKSpace, ConstAlias< PointPredicate > aPP, const Adjacency &adj, const Surfel &s, bool closed=false)
~ImplicitDigitalSurface()
bool isInside(const Surfel &s) const
const PointPredicate & myPointPredicate
a reference to the point predicate defining the shape.
Represents a signed cell in a cellular grid space by its Khalimsky coordinates and a boolean value.
SurfelConstIterator begin() const
std::set< SCell > SCellSet
Preferred type for defining a set of SCell(s).
std::set< Cell > CellSet
Preferred type for defining a set of Cell(s).
SurfelConstIterator end() const
uint8_t adjacent(Surfel &s, Dimension d, bool pos) const
ImplicitDigitalSurface< TKSpace, TPointPredicate > Self
BOOST_CONCEPT_ASSERT((concepts::CCellularGridSpaceND< KSpace >))
std::vector< Surfel > SurfelStorage
NumberTraits< Integer >::UnsignedVersion Size
Type used to represent sizes in the digital space.
DGtal is the top-level namespace which contains all DGtal functions and types.
const DigitalSurfaceContainer & mySurface
SurfelStorage::const_iterator SurfelConstIterator
Tracker DigitalSurfaceTracker
const DigitalSurfaceContainer & surface() const
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
KSpace::SCellSet SCellSet
Adjacency mySurfelAdjacency
the surfel adjacency used to determine neighbors.
SurfelStorage mySurfels
a vector storing all the surfels of the boundary.
DigitalSurfaceTracker * newTracker(const Surfel &s) const
Aim: Defines a predicate on a point.
ImplicitDigitalSurface< TKSpace, TPointPredicate > DigitalSurfaceContainer
SurfelAdjacency< KSpace::dimension > Adjacency
TPointPredicate PointPredicate
void computeSurfels(const Surfel &p, bool closed)
const Adjacency & surfelAdjacency() const
accessor to surfel adjacency.
boost::uint8_t uint8_t
unsigned 8-bit integer.