DGtal 1.4.0
Loading...
Searching...
No Matches
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)
35#define NormalVectorEstimatorLinearCellEmbedder_RECURSES
36
37#if !defined NormalVectorEstimatorLinearCellEmbedder_h
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
50namespace 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
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
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)
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
Definition ConstAlias.h:187
DigitalSurfaceContainer::SurfelConstIterator ConstIterator
Aim: model of cellular embedder for normal vector estimators on digital surface, (default constructib...
NormalVectorEstimatorLinearCellEmbedder(ConstAlias< DigitalSurface > digSurf, ConstAlias< NormalVectorEstimator > estimator, ConstAlias< Embedder > e)
RealPoint embed(const Point &p) const
const Embedder & myPtrEmbedder
A pointer on the digital embedder.
const DigitalSurface & mySurface
A pointer on the digital surface.
void embedSurfel(const ConstIterator &surfelIt, RealPoint &x, RealVector &grad) const
const NormalVectorEstimator & myPtrFct
A pointer on the normal vector estimator.
void selfDisplay(std::ostream &out) const
RealPoint embedSurfel(const ConstIterator &it) const
DGtal is the top-level namespace which contains all DGtal functions and types.
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)