DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
NormalVectorEstimatorLinearCellEmbedder.h
1 
17 #pragma once
18 
31 #if defined(NormalVectorEstimatorLinearCellEmbedder_RECURSES)
32 #error Recursive header files inclusion detected in NormalVectorEstimatorLinearCellEmbedder.h
33 #else // defined(NormalVectorEstimatorLinearCellEmbedder_RECURSES)
34 
35 #define NormalVectorEstimatorLinearCellEmbedder_RECURSES
36 
37 #if !defined NormalVectorEstimatorLinearCellEmbedder_h
38 
39 #define NormalVectorEstimatorLinearCellEmbedder_h
40 
42 // Inclusions
43 #include <iostream>
44 #include "DGtal/base/Common.h"
45 #include "DGtal/kernel/NumberTraits.h"
46 #include "DGtal/shapes/implicit/CImplicitFunction.h"
48 
49 namespace DGtal
50 {
51 
53 
66  template < typename TDigitalSurface,
67  typename TNormalVectorEstimator,
68  typename TEmbedder >
70  {
71 
72  public:
73  typedef TDigitalSurface DigitalSurface;
74  typedef TNormalVectorEstimator NormalVectorEstimator;
75  typedef TEmbedder Embedder;
77  typedef typename DigitalSurface::KSpace::Point Point;
78  typedef typename DigitalSurface::KSpace::Space::RealPoint RealPoint;
79  typedef typename DigitalSurface::KSpace::Space::RealVector RealVector;
80  typedef typename NormalVectorEstimator::Quantity Quantity;
81 
90  const NormalVectorEstimator & estimator,
91  const Embedder & e );
92 
97 
98  // ----------------------- Interface --------------------------------------
99  public:
100 
101 
109  RealPoint embed( const Point & p ) const;
110 
118  RealPoint embedSurfel( const ConstIterator & it ) const;
119 
129  void embedSurfel( const ConstIterator & surfelIt, RealPoint & x, RealVector & grad ) const;
130 
131 
132  // ----------------------- Interface --------------------------------------
133  public:
134 
139  void selfDisplay ( std::ostream & out ) const;
140 
145  bool isValid() const;
146 
147  // ------------------------- Protected Datas ------------------------------
148  private:
149  // ------------------------- Private Datas --------------------------------
150  private:
151 
158 
159  // ------------------------- Hidden services ------------------------------
160  protected:
162 
163  private:
164 
165  }; // end of class NormalVectorEstimatorLinearCellEmbedder
166 
167 
174  template < typename TDigitalSurface, typename TNormalVectorEstimator, typename TEmbedder >
175  std::ostream&
176  operator<< ( std::ostream & out,
178 
179 } // namespace DGtal
180 
181 
183 // Includes inline functions.
184 #include "DGtal/geometry/surfaces/estimation/NormalVectorEstimatorLinearCellEmbedder.ih"
185 
186 // //
188 
189 #endif // !defined NormalVectorEstimatorLinearCellEmbedder_h
190 
191 #undef NormalVectorEstimatorLinearCellEmbedder_RECURSES
192 #endif // else defined(NormalVectorEstimatorLinearCellEmbedder_RECURSES)