DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CLocalCurveGeometricEstimator.h
1 
17 #pragma once
18 
31 #if defined(CLocalGeometricEstimator_RECURSES)
32 #error Recursive header files inclusion detected in CLocalGeometricEstimator.h
33 #else // defined(CLocalGeometricEstimator_RECURSES)
34 
35 #define CLocalGeometricEstimator_RECURSES
36 
37 #if !defined CLocalGeometricEstimator_h
38 
39 #define CLocalGeometricEstimator_h
40 
42 // Inclusions
43 #include <iostream>
44 #include "DGtal/base/Common.h"
45 #include "DGtal/base/CQuantity.h"
46 #include <boost/iterator/iterator_archetypes.hpp>
48 
49 namespace DGtal
50 {
51 
53  // class CLocalGeometricEstimator
95  template <typename T>
97  boost::DefaultConstructible<T>
98  {
99 
100  // ----------------------- Concept checks ------------------------------
101  public:
102 
103  typedef typename T::Quantity Quantity;
105 
106  typedef typename T::ConstIterator ConstIterator;
107  BOOST_CONCEPT_ASSERT(( boost_concepts::ReadableIteratorConcept< ConstIterator > ));
108  BOOST_CONCEPT_ASSERT(( boost_concepts::ForwardTraversalConcept< ConstIterator > ));
109 
110 
112  {
113  //init method
114  myX.init( myH, myItb, myIte );
115 
116  ConceptUtils::sameType( myQ, myX.eval( myItb ) );
118  }
119 
120  // ------------------------- Private Datas --------------------------------
121  private:
122  T myX;
123 
124  double myH;
127  boost::iterator_archetype<Quantity,
128  boost::iterator_archetypes::writable_iterator_t,
129  boost::incrementable_traversal_tag > myIto;
130 
131  // ------------------------- Internals ------------------------------------
132  private:
133 
134  }; // end of concept CLocalGeometricEstimator
135 
136 } // namespace DGtal
137 
138 // //
140 
141 #endif // !defined CLocalGeometricEstimator_h
142 
143 #undef CLocalGeometricEstimator_RECURSES
144 #endif // else defined(CLocalGeometricEstimator_RECURSES)