|
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().
1.8.1.1