DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
L1LengthEstimator.h
1 
17 #pragma once
18 
34 #if defined(L1LengthEstimator_RECURSES)
35 #error Recursive header files inclusion detected in L1LengthEstimator.h
36 #else // defined(L1LengthEstimator_RECURSES)
37 
38 #define L1LengthEstimator_RECURSES
39 
40 #if !defined L1LengthEstimator_h
41 
42 #define L1LengthEstimator_h
43 
45 // Inclusions
46 #include <iostream>
47 #include "DGtal/base/Common.h"
48 #include "DGtal/base/Circulator.h"
50 
51 namespace DGtal
52 {
53 
55  // template class L1LengthEstimator
66  template <typename TConstIterator>
68  {
69  // ----------------------- Standard services ------------------------------
70  public:
71 
72 
74  typedef TConstIterator ConstIterator;
75 
76  typedef double Quantity;
77 
78 
83 
84 
89 
90 
91  // ----------------------- Interface --------------------------------------
92  public:
93 
102  void init( const double h, const ConstIterator& itb, const ConstIterator& ite);
103 
104 
112  Quantity eval( ) const;
113 
114 
119  void selfDisplay ( std::ostream & out ) const;
120 
125  bool isValid() const;
126 
127  // ------------------------- Private Datas --------------------------------
128  private:
129 
131  double myH;
132 
136 
139 
140 
141  private:
142 
148  L1LengthEstimator ( const L1LengthEstimator & other );
149 
157 
158  // ------------------------- Internals ------------------------------------
159  private:
160 
161  }; // end of class L1LengthEstimator
162 
163 
170  template <typename T>
171  std::ostream&
172  operator<< ( std::ostream & out, const L1LengthEstimator<T> & object );
173 
174 } // namespace DGtal
175 
176 
178 // Includes inline functions.
179 #include "DGtal/geometry/curves/estimation/L1LengthEstimator.ih"
180 
181 // //
183 
184 #endif // !defined L1LengthEstimator_h
185 
186 #undef L1LengthEstimator_RECURSES
187 #endif // else defined(L1LengthEstimator_RECURSES)