31#if defined(UmbrellaComputer_RECURSES)
32#error Recursive header files inclusion detected in UmbrellaComputer.h
35#define UmbrellaComputer_RECURSES
37#if !defined UmbrellaComputer_h
39#define UmbrellaComputer_h
44#include "DGtal/base/Common.h"
45#include "DGtal/topology/CDigitalSurfaceTracker.h"
85 template <
typename TDigitalSurfaceTracker>
95 typedef typename DigitalSurfaceContainer::KSpace
KSpace;
96 typedef typename DigitalSurfaceContainer::Surfel
Surfel;
97 typedef typename DigitalSurfaceContainer::Size
Size;
131 || ( (
k == other.
k )
134 && (
j < other.
j ) ) ) ) ) );
302 template <
typename TDigitalSurfaceTracker>
311#include "DGtal/topology/UmbrellaComputer.ih"
318#undef UmbrellaComputer_RECURSES
Aim: Useful for computing umbrellas on 'DigitalSurface's, ie set of n-1 cells around a n-3 cell.
State myState
Current state for the umbrella.
Dimension orthDir() const
TDigitalSurfaceTracker DigitalSurfaceTracker
~UmbrellaComputer()
Destructor.
Dimension separatorDir() const
bool trackOrientation() const
DigitalSurfaceContainer::Surfel Surfel
void setState(const State &aState)
void getState(State &aState) const
DigitalSurfaceContainer::KSpace KSpace
DigitalSurfaceContainer::Size Size
UmbrellaComputer()
Constructor. The object is not valid.
Dimension trackDir() const
UmbrellaComputer & operator=(const UmbrellaComputer &other)
const Surfel & surfel() const
void init(const DigitalSurfaceTracker &tracker, Dimension k, bool epsilon, Dimension j)
DigitalSurfaceTracker * myTracker
Tracker used to move on the digital surface.
DigitalSurfaceTracker::DigitalSurfaceContainer DigitalSurfaceContainer
UmbrellaComputer(const UmbrellaComputer &other)
bool separatorOrientation() const
const KSpace & space() const
Accessor to the digital space.
const State & state() const
Accessor to current state.
BOOST_CONCEPT_ASSERT((concepts::CDigitalSurfaceTracker< TDigitalSurfaceTracker >))
void selfDisplay(std::ostream &out) const
DGtal is the top-level namespace which contains all DGtal functions and types.
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.
Surfel surfel
Current surfel.
Dimension j
Track direction (j != k), j in sDirs(surfel).
State(const Surfel &_surfel, Dimension _k, bool _epsilon, Dimension _j)
Dimension k
Direction to find separator, k in sDirs(surfel).
bool operator<(const State &other) const
bool epsilon
Orientation to find separator (true = positively along k-axis)
bool operator==(const State &other) const