DGtal  1.5.beta
DGtal::FrechetShortcut< TIterator, TInteger >::Backpath Class Reference

#include <DGtal/geometry/curves/FrechetShortcut.h>

Data Structures

struct  occulter_attributes
 

Public Types

typedef boost::icl::interval_set< double > IntervalSet
 

Public Member Functions

 Backpath ()
 
 Backpath (const FrechetShortcut< ConstIterator, Integer > *s, int q)
 
 Backpath (const Backpath &other)
 
Backpathoperator= (const Backpath &other)
 
 ~Backpath ()
 
void reset ()
 
void addPositivePoint ()
 
void addNegativePoint ()
 
void updateBackPathFirstQuad (int d, const ConstIterator &)
 
void updateOcculters ()
 
void updateIntervals ()
 

Data Fields

int myQuad
 
bool myFlag
 
occulter_list myOcculters
 
IntervalSet myForbiddenIntervals
 
ConstIterator myIt
 

Protected Types

typedef struct DGtal::FrechetShortcut::Backpath::occulter_attributes occulter_attributes
 
typedef std::map< ConstIterator, occulter_attributesocculter_list
 

Private Attributes

const FrechetShortcut< ConstIterator, Integer > * myS
 

Friends

class FrechetShortcut< ConstIterator, Integer >
 

Detailed Description

template<typename TIterator, typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
class DGtal::FrechetShortcut< TIterator, TInteger >::Backpath

Class backpath: data structures and methods to handle the backpath update

Definition at line 136 of file FrechetShortcut.h.

Member Typedef Documentation

◆ IntervalSet

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
typedef boost::icl::interval_set<double> DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::IntervalSet

Definition at line 167 of file FrechetShortcut.h.

◆ occulter_attributes

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
typedef struct DGtal::FrechetShortcut::Backpath::occulter_attributes DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::occulter_attributes
protected

Attributes of occulter points: angles min and max for which the point is an occulter

◆ occulter_list

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
typedef std::map<ConstIterator,occulter_attributes > DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::occulter_list
protected

Map between the point and their attributes if they are occulters

Definition at line 159 of file FrechetShortcut.h.

Constructor & Destructor Documentation

◆ Backpath() [1/3]

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::Backpath ( )

Default constructor

◆ Backpath() [2/3]

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::Backpath ( const FrechetShortcut< ConstIterator, Integer > *  s,
int  q 
)

Constructor

Parameters
sto a shortcut s
qq

◆ Backpath() [3/3]

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::Backpath ( const Backpath other)

Copy constructor

Parameters
othera backpath

◆ ~Backpath()

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::~Backpath ( )

Destructor

Member Function Documentation

◆ addNegativePoint()

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
void DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::addNegativePoint ( )

Updates the backpath when a negative poitn is added

◆ addPositivePoint()

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
void DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::addPositivePoint ( )

Updates the backpath when a positive point is added

◆ operator=()

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
Backpath& DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::operator= ( const Backpath other)

Assignement

Parameters
otheranother backpath
Returns
a reference on 'this'

◆ reset()

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
void DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::reset ( )

Resets the backpath (myFlag, myOcculters)

◆ updateBackPathFirstQuad()

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
void DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::updateBackPathFirstQuad ( int  d,
const ConstIterator  
)

General update procedure: call to addNegativePoint or addPositivePoint according to the point *myIt. Each octant is treated as if it was the first one, the chain code between *myIt-1 and *myIt is rotated accordingly.

◆ updateIntervals()

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
void DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::updateIntervals ( )

Updates the list of intervals

◆ updateOcculters()

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
void DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::updateOcculters ( )

Updates the list of occulters

Friends And Related Function Documentation

◆ FrechetShortcut< ConstIterator, Integer >

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
friend class FrechetShortcut< ConstIterator, Integer >
friend

Definition at line 159 of file FrechetShortcut.h.

Field Documentation

◆ myFlag

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
bool DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::myFlag

Current state myFlag=true if we are on a backpath, false otherwise

Definition at line 178 of file FrechetShortcut.h.

◆ myForbiddenIntervals

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
IntervalSet DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::myForbiddenIntervals

List of forbidden intervals: intervals of angle for which there exist a backpath of length greater than the error

Definition at line 186 of file FrechetShortcut.h.

◆ myIt

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
ConstIterator DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::myIt

pointer to the next point to be scanned: set to myEnd + 1

Definition at line 191 of file FrechetShortcut.h.

◆ myOcculters

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
occulter_list DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::myOcculters

Definition at line 180 of file FrechetShortcut.h.

◆ myQuad

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
int DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::myQuad

Octant of work

Definition at line 172 of file FrechetShortcut.h.

◆ myS

template<typename TIterator , typename TInteger = typename IteratorCirculatorTraits<TIterator>::Value::Coordinate>
const FrechetShortcut<ConstIterator,Integer>* DGtal::FrechetShortcut< TIterator, TInteger >::Backpath::myS
private

Pointer to the FrechetShortcut

Definition at line 142 of file FrechetShortcut.h.


The documentation for this class was generated from the following file: