DGtal  1.2.beta
Public Types | Public Member Functions | Private Attributes
DGtal::concepts::CSurfelLocalEstimator< T > Struct Template Reference

Aim: This concept describes an object that can process a range of surfels (that are supposed to belong to some (abstract) surface) so as to return one estimated quantity for each element of the range (or a given subrange). More...

#include <DGtal/geometry/surfaces/estimation/CSurfelLocalEstimator.h>

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

Public Types

typedef T::Quantity Quantity
 
typedef T::Surfel Surfel
 

Public Member Functions

 BOOST_CONCEPT_ASSERT ((CQuantity< Quantity >))
 
 BOOST_CONCEPT_USAGE (CSurfelLocalEstimator)
 
void check_const_constraints () const
 

Private Attributes

myX
 
double myH
 
Quantity myQ
 
boost::iterator_archetype< Surfel, boost::iterator_archetypes::readable_iterator_t, boost::forward_traversal_tag > myItb
 
boost::iterator_archetype< Surfel, boost::iterator_archetypes::readable_iterator_t, boost::forward_traversal_tag > myIte
 
boost::iterator_archetype< Quantity, boost::iterator_archetypes::writable_iterator_t, boost::incrementable_traversal_tag > myIto
 

Detailed Description

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

Aim: This concept describes an object that can process a range of surfels (that are supposed to belong to some (abstract) surface) so as to return one estimated quantity for each element of the range (or a given subrange).

Description of concept 'CSurfelLocalEstimator'

It is rather general in the sense that it does not impose a type for the shape under study. It may be a digital surface, a point predicate that defines implicitly a digital shape, an implicit function, etc. This concept has refinements specifying some cases.

Refinement of

Associated types

Notation

Definitions

Valid expressions and semantics

Name Expression Return type Precondition Semantics Complexity
Initialization x.init( h, itb, ite ) void h > 0 Grid step and range initialization in [itb,ite) model dependent
Evaluation x.eval( it ) Quantity Estimation of the quantity at it, which must belong to [itb,ite) model dependent
Evaluation ito = x.eval( itb2, ite2, ito ) a model of output iterator Estimation for each element of [itb2, ite2), which must be a subrange of or the whole range [itb,ite) model dependent
gridstep accessor x.h() double Accessor to the gridstep value O(1)

Invariants

Models

Notes

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

Definition at line 106 of file CSurfelLocalEstimator.h.

Member Typedef Documentation

◆ Quantity

template<typename T >
typedef T::Quantity DGtal::concepts::CSurfelLocalEstimator< T >::Quantity

Definition at line 113 of file CSurfelLocalEstimator.h.

◆ Surfel

template<typename T >
typedef T::Surfel DGtal::concepts::CSurfelLocalEstimator< T >::Surfel

Definition at line 115 of file CSurfelLocalEstimator.h.

Member Function Documentation

◆ BOOST_CONCEPT_ASSERT()

template<typename T >
DGtal::concepts::CSurfelLocalEstimator< T >::BOOST_CONCEPT_ASSERT ( (CQuantity< Quantity >)  )

◆ BOOST_CONCEPT_USAGE()

template<typename T >
DGtal::concepts::CSurfelLocalEstimator< T >::BOOST_CONCEPT_USAGE ( CSurfelLocalEstimator< T >  )
inline

Definition at line 117 of file CSurfelLocalEstimator.h.

References DGtal::concepts::CSurfelLocalEstimator< T >::check_const_constraints(), DGtal::concepts::CSurfelLocalEstimator< T >::myH, DGtal::concepts::CSurfelLocalEstimator< T >::myItb, DGtal::concepts::CSurfelLocalEstimator< T >::myIte, DGtal::concepts::CSurfelLocalEstimator< T >::myIto, DGtal::concepts::CSurfelLocalEstimator< T >::myQ, DGtal::concepts::CSurfelLocalEstimator< T >::myX, and DGtal::concepts::ConceptUtils::sameType().

118  {
119  //init method
120  myX.init( myH, myItb, myIte );
121 
122  ConceptUtils::sameType( myQ, myX.eval( myItb ) );
125  }
boost::iterator_archetype< Quantity, boost::iterator_archetypes::writable_iterator_t, boost::incrementable_traversal_tag > myIto
boost::iterator_archetype< Surfel, boost::iterator_archetypes::readable_iterator_t, boost::forward_traversal_tag > myItb
boost::iterator_archetype< Surfel, boost::iterator_archetypes::readable_iterator_t, boost::forward_traversal_tag > myIte
void sameType(const T &, const T &)
Definition: ConceptUtils.h:117

◆ check_const_constraints()

template<typename T >
void DGtal::concepts::CSurfelLocalEstimator< T >::check_const_constraints ( ) const
inline

Field Documentation

◆ myH

template<typename T >
double DGtal::concepts::CSurfelLocalEstimator< T >::myH
private

◆ myItb

template<typename T >
boost::iterator_archetype<Surfel, boost::iterator_archetypes::readable_iterator_t, boost::forward_traversal_tag > DGtal::concepts::CSurfelLocalEstimator< T >::myItb
private

◆ myIte

template<typename T >
boost::iterator_archetype<Surfel, boost::iterator_archetypes::readable_iterator_t, boost::forward_traversal_tag > DGtal::concepts::CSurfelLocalEstimator< T >::myIte
private

◆ myIto

template<typename T >
boost::iterator_archetype<Quantity, boost::iterator_archetypes::writable_iterator_t, boost::incrementable_traversal_tag > DGtal::concepts::CSurfelLocalEstimator< T >::myIto
private

◆ myQ

template<typename T >
Quantity DGtal::concepts::CSurfelLocalEstimator< T >::myQ
private

◆ myX

template<typename T >
T DGtal::concepts::CSurfelLocalEstimator< T >::myX
private

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