DGtal  0.9.3beta
DGtal::concepts::CForwardSegmentComputer< T > Struct Template Reference

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

Inheritance diagram for DGtal::concepts::CForwardSegmentComputer< T >:
[legend]
Collaboration diagram for DGtal::concepts::CForwardSegmentComputer< T >:
[legend]

Additional Inherited Members

- Public Types inherited from DGtal::concepts::CSegmentFactory< T >
typedef T::Self Self
 
typedef T::Reverse Reverse
 
- Public Types inherited from DGtal::concepts::CSegment< T >
typedef T::ConstIterator ConstIterator
 
- Public Member Functions inherited from DGtal::concepts::CIncrementalSegmentComputer< T >
 BOOST_CONCEPT_USAGE (CIncrementalSegmentComputer)
 
- Public Member Functions inherited from DGtal::concepts::CSegmentFactory< T >
 BOOST_STATIC_ASSERT ((boost::is_same< T, Self >::value))
 
 BOOST_CONCEPT_USAGE (CSegmentFactory)
 
- Public Member Functions inherited from DGtal::concepts::CSegment< T >
 BOOST_CONCEPT_USAGE (CSegment)
 

Detailed Description

template<typename T>
struct DGtal::concepts::CForwardSegmentComputer< T >

Aim: Defines the concept describing a forward segment computer. Like any model of CIncrementalSegmentComputer, it can control its own extension (in the direction that is relative to the underlying iterator) so that an implicit predicate P remains true. However, contrary to models of CIncrementalSegmentComputer, it garantees that P is also true for any subrange of the whole segment at any time. This extra constraint is necessary to be able to incrementally check whether or not the segment is maximal.

Description of concept 'CForwardSegmentComputer'

Refinement of CIncrementalSegmentComputer

Associated types :

Notation

Invariants

Contrary to models of CIncrementalSegmentComputer, models of CForwardSegmentComputer also garantee that for each iterator it from s.begin() to s.end(), the range [it, s.end()) is a segment such that P is true.

for ( ConstIterator it = s.begin(),
ConstIterator itEnd = s.end();
it != itEnd; ++it)
{
// [it, itEnd) is a segment:
bool flag = true;
while ( (s.end() != itEnd)&&(flag) ) { flag = s.extend(); }
ASSERT( flag );
}

Models

Notes

Template Parameters
Tthe type that should be a model of CForwardSegmentComputer.

Definition at line 101 of file CForwardSegmentComputer.h.


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