DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
DSSLengthEstimator.h
1 
17 #pragma once
18 
39 #if defined(DSSLengthEstimator_RECURSES)
40 #error Recursive header files inclusion detected in DSSLengthEstimator.h
41 #else // defined(DSSLengthEstimator_RECURSES)
42 
43 #define DSSLengthEstimator_RECURSES
44 
45 #if !defined DSSLengthEstimator_h
46 
47 #define DSSLengthEstimator_h
48 
50 // Inclusions
51 #include <iostream>
52 #include "DGtal/base/Common.h"
53 #include "DGtal/geometry/curves/GreedyDecomposition.h"
54 #include "DGtal/geometry/curves/ArithmeticalDSS.h"
55 
57 
58 namespace DGtal
59 {
60 
62  // template class DSSLengthEstimator
74  template <typename TConstIterator>
76  {
77  // ----------------------- Standard services ------------------------------
78  public:
79 
80 
82  typedef TConstIterator ConstIterator;
83 
84  typedef double Quantity;
85 
87  typedef typename DSSComputer::Point Point;
88  typedef typename DSSComputer::Vector Vector;
89 
94 
95 
100 
101 
102  // ----------------------- Interface --------------------------------------
103  public:
104 
113  void init( const double h, const ConstIterator& itb, const ConstIterator& ite, const bool& isClosed);
114 
115 
123  Quantity eval( ) const;
124 
125 
130  void selfDisplay ( std::ostream & out ) const;
131 
136  bool isValid() const;
137 
138  // ------------------------- Private Datas --------------------------------
139  private:
140 
142  double myH;
143 
145  std::vector<Point> myRep;
146 
149 
150  private:
151 
157  DSSLengthEstimator ( const DSSLengthEstimator & other );
158 
166 
167  // ------------------------- Internals ------------------------------------
168  private:
169 
170  }; // end of class DSSLengthEstimator
171 
172 
179  template <typename T>
180  std::ostream&
181  operator<< ( std::ostream & out, const DSSLengthEstimator<T> & object );
182 
183 } // namespace DGtal
184 
185 
187 // Includes inline functions.
188 #include "DGtal/geometry/curves/estimation/DSSLengthEstimator.ih"
189 
190 // //
192 
193 #endif // !defined DSSLengthEstimator_h
194 
195 #undef DSSLengthEstimator_RECURSES
196 #endif // else defined(DSSLengthEstimator_RECURSES)