DGtal
0.6.devel
|
#include <UmbrellaComputer.h>
Data Structures | |
struct | State |
Public Types | |
typedef TDigitalSurfaceTracker | DigitalSurfaceTracker |
typedef DigitalSurfaceTracker::DigitalSurfaceContainer | DigitalSurfaceContainer |
typedef DigitalSurfaceContainer::KSpace | KSpace |
typedef DigitalSurfaceContainer::Surfel | Surfel |
typedef DigitalSurfaceContainer::Size | Size |
typedef KSpace::SCell | SCell |
Public Member Functions | |
~UmbrellaComputer () | |
UmbrellaComputer () | |
UmbrellaComputer (const UmbrellaComputer &other) | |
UmbrellaComputer & | operator= (const UmbrellaComputer &other) |
void | init (const DigitalSurfaceTracker &tracker, Dimension k, bool epsilon, Dimension j) |
void | setState (const State &aState) |
void | getState (State &aState) const |
const State & | state () const |
const KSpace & | space () const |
const Surfel & | surfel () const |
SCell | separator () const |
SCell | pivot () const |
Dimension | orthDir () const |
Dimension | trackDir () const |
bool | trackOrientation () const |
Dimension | separatorDir () const |
bool | separatorOrientation () const |
unsigned int | next () |
unsigned int | previous () |
bool | adjacent () |
void | selfDisplay (std::ostream &out) const |
bool | isValid () const |
Private Member Functions | |
BOOST_CONCEPT_ASSERT ((CDigitalSurfaceTracker< TDigitalSurfaceTracker >)) |
Private Attributes | |
DigitalSurfaceTracker * | myTracker |
State | myState |
Aim: Useful for computing umbrellas on 'DigitalSurface's, ie set of n-1 cells around a n-3 cell.
Description of class 'DigitalSurfaceUmbrellaComputer'
The current surfel (n-1 cell), or face, is denoted by s. The n-3 cell is called the pivot and denoted by +p. It is always a positive cell. There is also a current n-2 cell, called the separator and denoted by t, which is in the boundary of s and whose boundary contains +p.
Two directions specifies the separator and the pivot, the track direction j and the separator direction k. Moreover an orientation \( \epsilon=\pm 1 \) specifies one which side is the separator wrt the face. We have \( t = \Delta^{\epsilon}_k s, +p = \Delta^{\mu}_{j} t, \) where \( \mu \) is the direct orientation of t along j.
Turning around the pivot means moving the face and the separator once (in the track direction), such that the pivot is the same (ie +p), the track and separator directions being updated. Repeating this process a sufficient number of times brings the umbrella back in its original position, except in the case when the DigitalSurface has a boundary touching the pivot.
Uses delegation with DigitalSurfaceTracker.
Essentially a backport from ImaGene.
TDigitalSurfaceTracker | the type of the domain in which shapes are created. |
Definition at line 87 of file UmbrellaComputer.h.
typedef DigitalSurfaceTracker::DigitalSurfaceContainer DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::DigitalSurfaceContainer |
Definition at line 95 of file UmbrellaComputer.h.
typedef TDigitalSurfaceTracker DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::DigitalSurfaceTracker |
Definition at line 94 of file UmbrellaComputer.h.
typedef DigitalSurfaceContainer::KSpace DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::KSpace |
Definition at line 96 of file UmbrellaComputer.h.
typedef KSpace::SCell DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::SCell |
Definition at line 99 of file UmbrellaComputer.h.
typedef DigitalSurfaceContainer::Size DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::Size |
Definition at line 98 of file UmbrellaComputer.h.
typedef DigitalSurfaceContainer::Surfel DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::Surfel |
Definition at line 97 of file UmbrellaComputer.h.
|
inline |
Destructor.
Definition at line 44 of file UmbrellaComputer.ih.
|
inline |
Constructor. The object is not valid.
Definition at line 51 of file UmbrellaComputer.ih.
|
inline |
Copy constructor.
other | the object to clone. |
Definition at line 59 of file UmbrellaComputer.ih.
References DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::myState, and DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::myTracker.
|
inline |
Go the adjacent umbrella, ie the one which shares the same faces around the separator but whose pivot is symmetric around the separator.
Definition at line 312 of file UmbrellaComputer.ih.
|
private |
|
inline |
Returns the state of the umbrella in the referenced object [state].
aState | (returns) the current umbrella state describing the face, the separator and the pivot. |
Definition at line 112 of file UmbrellaComputer.ih.
void DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::init | ( | const DigitalSurfaceTracker & | tracker, |
Dimension | k, | ||
bool | epsilon, | ||
Dimension | j | ||
) |
Initializes the umbrella with a 'DigitalSurfaceTracker'. Links the umbrella computer with a concrete surface and a surfel on it. Tells also where is the positive pivot to turn around.
tracker | a tracker on a digital surface with a valid 'current()' surfel. (cloned). Specifies the initial surfel. |
k | the separator direction different from [j] and the orthogonal direction to the surfel. |
epsilon | the orientation where to find the separator pointing at the pivot. |
j | the track direction where the next surfel of the umbrella is. |
Definition at line 94 of file UmbrellaComputer.ih.
|
inline |
Checks the validity/consistency of the object.
Definition at line 346 of file UmbrellaComputer.ih.
|
inline |
Turns around the current pivot (positive turn).
Definition at line 222 of file UmbrellaComputer.ih.
|
inline |
Assignment.
other | the object to copy. |
Definition at line 73 of file UmbrellaComputer.ih.
References DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::myState, and DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::myTracker.
|
inline |
Definition at line 179 of file UmbrellaComputer.ih.
|
inline |
|
inline |
Turns around the current pivot (negative turn).
Definition at line 259 of file UmbrellaComputer.ih.
|
inline |
Writes/Displays the object on an output stream.
out | the output stream where the object is written. |
Definition at line 334 of file UmbrellaComputer.ih.
|
inline |
Definition at line 159 of file UmbrellaComputer.ih.
|
inline |
Definition at line 204 of file UmbrellaComputer.ih.
|
inline |
Definition at line 212 of file UmbrellaComputer.ih.
|
inline |
Puts the umbrella in the state [state]. The umbrella must have been initialized with a 'DigitalSurfaceTracker' before and the state must be consistent with the tracker. In particular, the face of the state must lie on the same digital surface.
aState | a state describing the face, the separator and the pivot. |
Definition at line 121 of file UmbrellaComputer.ih.
References DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::State::surfel.
|
inline |
Accessor to the digital space.
Definition at line 139 of file UmbrellaComputer.ih.
References DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::space().
Referenced by DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::space().
|
inline |
|
inline |
|
inline |
Definition at line 188 of file UmbrellaComputer.ih.
|
inline |
Definition at line 196 of file UmbrellaComputer.ih.
|
private |
Current state for the umbrella.
Definition at line 286 of file UmbrellaComputer.h.
Referenced by DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::operator=(), and DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::UmbrellaComputer().
|
private |
Tracker used to move on the digital surface.
Definition at line 284 of file UmbrellaComputer.h.
Referenced by DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::operator=(), and DGtal::UmbrellaComputer< TDigitalSurfaceTracker >::UmbrellaComputer().