DGtal  0.9.2
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/base/ConstAlias.h"
46 #include "DGtal/kernel/NumberTraits.h"
47 #include "DGtal/shapes/implicit/CImplicitFunction.h"
49 
50 namespace DGtal
51 {
52 
54 
67  template < typename TDigitalSurface,
68  typename TNormalVectorEstimator,
69  typename TEmbedder >
71  {
72 
73  public:
74  typedef TDigitalSurface DigitalSurface;
75  typedef TNormalVectorEstimator NormalVectorEstimator;
76  typedef TEmbedder Embedder;
78  typedef typename DigitalSurface::KSpace::Point Point;
79  typedef typename DigitalSurface::KSpace::Space::RealPoint RealPoint;
80  typedef typename DigitalSurface::KSpace::Space::RealVector RealVector;
81  typedef typename NormalVectorEstimator::Quantity Quantity;
82 
93 
98 
99  // ----------------------- Interface --------------------------------------
100  public:
101 
102 
110  RealPoint embed( const Point & p ) const;
111 
119  RealPoint embedSurfel( const ConstIterator & it ) const;
120 
130  void embedSurfel( const ConstIterator & surfelIt, RealPoint & x, RealVector & grad ) const;
131 
132 
133  // ----------------------- Interface --------------------------------------
134  public:
135 
140  void selfDisplay ( std::ostream & out ) const;
141 
146  bool isValid() const;
147 
148  // ------------------------- Protected Datas ------------------------------
149  private:
150  // ------------------------- Private Datas --------------------------------
151  private:
152 
154  const DigitalSurface& mySurface;
156  const NormalVectorEstimator& myPtrFct;
158  const Embedder& myPtrEmbedder;
159 
160  // ------------------------- Hidden services ------------------------------
161  protected:
163 
164  private:
165 
166  }; // end of class NormalVectorEstimatorLinearCellEmbedder
167 
168 
175  template < typename TDigitalSurface, typename TNormalVectorEstimator, typename TEmbedder >
176  std::ostream&
177  operator<< ( std::ostream & out,
179 
180 } // namespace DGtal
181 
182 
184 // Includes inline functions.
185 #include "DGtal/geometry/surfaces/estimation/NormalVectorEstimatorLinearCellEmbedder.ih"
186 
187 // //
189 
190 #endif // !defined NormalVectorEstimatorLinearCellEmbedder_h
191 
192 #undef NormalVectorEstimatorLinearCellEmbedder_RECURSES
193 #endif // else defined(NormalVectorEstimatorLinearCellEmbedder_RECURSES)
RealPoint embed(const Point &p) const
Aim: model of cellular embedder for normal vector estimators on digital surface, (default constructib...
DigitalSurfaceContainer::SurfelConstIterator ConstIterator
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
Definition: ConstAlias.h:186
RealPoint embedSurfel(const ConstIterator &it) const
const NormalVectorEstimator & myPtrFct
A pointer on the normal vector estimator.
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
void selfDisplay(std::ostream &out) const
DGtal is the top-level namespace which contains all DGtal functions and types.
const DigitalSurface & mySurface
A pointer on the digital surface.
const Embedder & myPtrEmbedder
A pointer on the digital embedder.