DGtal  1.4.beta
CSurfelLocalEstimator.h
1 
17 #pragma once
18 
31 #if defined(CSurfelLocalEstimator_RECURSES)
32 #error Recursive header files inclusion detected in CSurfelLocalEstimator.h
33 #else // defined(CSurfelLocalEstimator_RECURSES)
35 #define CSurfelLocalEstimator_RECURSES
36 
37 #if !defined CSurfelLocalEstimator_h
39 #define CSurfelLocalEstimator_h
40 
42 // Inclusions
43 #include <iostream>
44 #include <boost/iterator/iterator_archetypes.hpp>
45 #include "DGtal/base/Common.h"
46 #include "DGtal/base/CQuantity.h"
48 
49 // @since 0.8 In DGtal::concepts
50 namespace DGtal {
51  namespace concepts {
52 
54  // class CSurfelLocalEstimator
105  template <typename T>
108  {
109 
110  // ----------------------- Concept checks ------------------------------
111  public:
112 
113  typedef typename T::Quantity Quantity;
115  typedef typename T::Surfel Surfel;
116 
118  {
119  //init method
120  myX.init( myH, myItb, myIte );
121 
122  ConceptUtils::sameType( myQ, myX.eval( myItb ) );
125  }
127  {
129  }
130 
131  // ------------------------- Private Datas --------------------------------
132  private:
133  T myX;
134 
135  double myH;
137  boost::iterator_archetype<Surfel,
138  boost::iterator_archetypes::readable_iterator_t,
139  boost::forward_traversal_tag > myItb, myIte;
140  boost::iterator_archetype<Quantity,
141  boost::iterator_archetypes::writable_iterator_t,
142  boost::incrementable_traversal_tag > myIto;
143 
144  // ------------------------- Internals ------------------------------------
145  private:
146 
147  }; // end of concept CSurfelLocalEstimator
148 
149 } // namespace concepts
150 } // namespace DGtal
151 
152 // //
154 
155 #endif // !defined CSurfelLocalEstimator_h
156 
157 #undef CSurfelLocalEstimator_RECURSES
158 #endif // else defined(CSurfelLocalEstimator_RECURSES)
void sameType(const T &, const T &)
Definition: ConceptUtils.h:117
DGtal is the top-level namespace which contains all DGtal functions and types.
Aim: defines the concept of quantity in DGtal.
Definition: CQuantity.h:93
Aim: This concept describes an object that can process a range of surfels (that are supposed to belon...
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_CONCEPT_ASSERT((CQuantity< Quantity >))
boost::iterator_archetype< Surfel, boost::iterator_archetypes::readable_iterator_t, boost::forward_traversal_tag > myIte
Go to http://www.sgi.com/tech/stl/Assignable.html.
Definition: Boost.dox:32
Go to http://www.sgi.com/tech/stl/CopyConstructible.html.
Definition: Boost.dox:34
Go to http://www.sgi.com/tech/stl/DefaultConstructible.html.
Definition: Boost.dox:30