31#if defined(DigitalSetBoundary_RECURSES)
32#error Recursive header files inclusion detected in DigitalSetBoundary.h
35#define DigitalSetBoundary_RECURSES
37#if !defined DigitalSetBoundary_h
39#define DigitalSetBoundary_h
45#include "DGtal/base/Common.h"
46#include "DGtal/base/ConstAlias.h"
47#include "DGtal/topology/Topology.h"
48#include "DGtal/topology/SurfelAdjacency.h"
49#include "DGtal/topology/SurfelNeighborhood.h"
68 template <
typename TKSpace,
typename TDigitalSet>
82 typedef typename TKSpace::SCell
Surfel;
306 template <
typename TKSpace,
typename TDigitalSet>
316#include "DGtal/topology/DigitalSetBoundary.ih"
323#undef DigitalSetBoundary_RECURSES
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
void move(const Surfel &s)
Tracker(ConstAlias< DigitalSurfaceContainer > aSurface, const Surfel &s)
const DigitalSurfaceContainer & surface() const
DigitalSetBoundary< TKSpace, TDigitalSet > DigitalSurfaceContainer
Dimension orthDir() const
const DigitalSurfaceContainer & mySurface
SurfelNeighborhood< KSpace > Neighborhood
uint8_t adjacent(Surfel &s, Dimension d, bool pos) const
Tracker(const Tracker &other)
Neighborhood myNeighborhood
const Surfel & current() const
Aim: A model of CDigitalSurfaceContainer which defines the digital surface as the boundary of a given...
const KSpace & myKSpace
a reference to the cellular space.
SurfelStorage::const_iterator SurfelConstIterator
DigitalSetBoundary(const DigitalSetBoundary &other)
Adjacency mySurfelAdjacency
the surfel adjacency used to determine neighbors.
const KSpace & space() const
Adjacency & surfelAdjacency()
mutator to surfel adjacency.
void selfDisplay(std::ostream &out) const
DigitalSurfaceTracker * newTracker(const Surfel &s) const
Connectedness connectedness() const
DigitalSetBoundary< TKSpace, TDigitalSet > Self
DigitalSetBoundary & operator=(const DigitalSetBoundary &other)
SurfelConstIterator begin() const
DigitalSetBoundary(ConstAlias< KSpace > aKSpace, const DigitalSet &aSet, const Adjacency &adj=Adjacency(true))
DigitalSet myDigitalSet
a smart pointer to some digital set.
const DigitalSet & digitalSet() const
accessor to digital set
std::vector< Surfel > SurfelStorage
SurfelStorage mySurfels
a vector storing all the surfels of the boundary.
DigitalSet::Domain Domain
bool isInside(const Surfel &s) const
SurfelAdjacency< KSpace::dimension > Adjacency
Tracker DigitalSurfaceTracker
const Adjacency & surfelAdjacency() const
accessor to surfel adjacency.
SurfelConstIterator end() const
TDomain Domain
Domain type.
NumberTraits< Integer >::UnsignedVersion Size
Type used to represent sizes in the digital space.
Aim: Represent adjacencies between surfel elements, telling if it follows an interior to exterior ord...
Aim: This helper class is useful to compute the neighboring surfels of a given surfel,...
DGtal is the top-level namespace which contains all DGtal functions and types.
boost::uint8_t uint8_t
unsigned 8-bit integer.
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
DGtal::uint32_t Dimension
Represents a signed cell in a cellular grid space by its Khalimsky coordinates and a boolean value.