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>
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.
const KSpace & space() const
Accessor to the digital space.
State myState
Current state for the umbrella.
Dimension orthDir() const
TDigitalSurfaceTracker DigitalSurfaceTracker
UmbrellaComputer & operator=(const UmbrellaComputer &other)
~UmbrellaComputer()
Destructor.
Dimension separatorDir() const
bool trackOrientation() const
DigitalSurfaceContainer::Surfel Surfel
void setState(const State &aState)
const Surfel & surfel() const
void getState(State &aState) const
const State & state() const
Accessor to current state.
DigitalSurfaceContainer::KSpace KSpace
DigitalSurfaceContainer::Size Size
UmbrellaComputer()
Constructor. The object is not valid.
Dimension trackDir() 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
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 ATu0v1< TKSpace, TLinearAlgebra > &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
HalfEdgeDataStructure::Size Size