DGtal  1.4.beta
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

  • Surfel : the type of elements of the surface
  • Quantity : the type of the (geometric) quantity that is estimated, must be a model of CQuantity.

Notation

  • X : A type that is a model of CSurfelLocalEstimator
  • x : object of type X
  • h : double
  • itb, ite, it,itb2, ite2 : instances of a model of forward iterators having Surfel as value type.
  • ito : an instance of a model of output iterator having Quantity as value type

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.

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

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

◆ check_const_constraints()

Field Documentation

◆ myH

◆ 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

◆ myX


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