DGtal  1.3.beta
DigitalSurfaceEmbedderWithNormalVectorEstimator.h
1 
17 #pragma once
18 
31 #if defined(DigitalSurfaceEmbedderWithNormalVectorEstimator_RECURSES)
32 #error Recursive header files inclusion detected in DigitalSurfaceEmbedderWithNormalVectorEstimator.h
33 #else // defined(DigitalSurfaceEmbedderWithNormalVectorEstimator_RECURSES)
34 
35 #define DigitalSurfaceEmbedderWithNormalVectorEstimator_RECURSES
36 
37 #if !defined DigitalSurfaceEmbedderWithNormalVectorEstimator_h
38 
39 #define DigitalSurfaceEmbedderWithNormalVectorEstimator_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/topology/CDigitalSurfaceEmbedder.h"
49 
50 namespace DGtal
51 {
52 
53  // Forward declaration.
54  template < typename TDigitalSurfaceEmbedder,
55  typename TNormalVectorEstimator >
57 
59 
72  template < typename TDigitalSurfaceEmbedder,
73  typename TNormalVectorEstimator >
75  {
76  public:
78  < TDigitalSurfaceEmbedder, TNormalVectorEstimator > Self;
80 
81  typedef TDigitalSurfaceEmbedder DigitalSurfaceEmbedder;
82  typedef TNormalVectorEstimator NormalVectorEstimator;
83 
88  typedef typename DigitalSurfaceEmbedder::Argument Argument;
90 
91  typedef typename KSpace::Space Space;
92  typedef typename Space::RealVector RealVector;
93  typedef typename NormalVectorEstimator::Quantity Quantity;
94  typedef typename NormalVectorEstimator::DigitalSurface NVESurface;
95 
98 
100 
101 
106 
112  Self & operator=( const Self & other );
113 
121  ConstAlias<NormalVectorEstimator> anEstimator );
122 
128  ( const Self & other );
129 
134 
135  // ----------------------- Interface --------------------------------------
136  public:
137 
145  RealPoint operator()( const SCell & scell ) const;
146 
150  const Surface & surface() const;
151 
155  const KSpace & space() const
156  {
157  return myDSEmbedder->space();
158  }
159 
164  GradientMap gradientMap() const;
165 
171  RealVector gradient( const SCell & scell ) const;
172 
173  // ----------------------- Interface --------------------------------------
174  public:
175 
181  void selfDisplay ( std::ostream & out ) const;
182 
187  bool isValid() const;
188 
189  // ------------------------- Protected Datas ------------------------------
190  private:
191  // ------------------------- Private Datas --------------------------------
192  private:
193 
198 
199  // ------------------------- Hidden services ------------------------------
200  protected:
201 
202  }; // end of class DigitalSurfaceEmbedderWithNormalVectorEstimator
203 
215  template < typename TDigitalSurfaceEmbedder,
216  typename TNormalVectorEstimator >
218  {
219  public:
222 
223  typedef TDigitalSurfaceEmbedder DigitalSurfaceEmbedder;
224  typedef TNormalVectorEstimator NormalVectorEstimator;
225 
227  typedef typename Embedder::SCell Argument;
228  typedef typename Embedder::RealVector Value;
229 
232 
235 
237  Self & operator=( const Self & other );
238 
244  ( const Self & other );
245 
251  ( ConstAlias<Embedder> embedder );
252 
258  Value operator()( const Argument & arg ) const;
259 
260  protected:
263 
264  private:
265 
266  };
267 
274  template < typename TDigitalSurfaceEmbedder, typename TNormalVectorEstimator >
275  std::ostream&
276  operator<< ( std::ostream & out,
278 
279 } // namespace DGtal
280 
281 
283 // Includes inline functions.
284 #include "DGtal/geometry/surfaces/estimation/DigitalSurfaceEmbedderWithNormalVectorEstimator.ih"
285 
286 // //
288 
289 #endif // !defined DigitalSurfaceEmbedderWithNormalVectorEstimator_h
290 
291 #undef DigitalSurfaceEmbedderWithNormalVectorEstimator_RECURSES
292 #endif // else defined(DigitalSurfaceEmbedderWithNormalVectorEstimator_RECURSES)
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::RealPoint
DigitalSurfaceEmbedder::RealPoint RealPoint
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:87
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap::myEmbedder
const Embedder * myEmbedder
The digital surface embedder with normal vector estimator.
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:262
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::Surface
DigitalSurfaceEmbedder::Surface Surface
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:85
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::Argument
DigitalSurfaceEmbedder::Argument Argument
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:88
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::operator()
RealPoint operator()(const SCell &scell) const
DGtal::ConstAlias
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
Definition: ConstAlias.h:186
DGtal::concepts::CDigitalSurfaceEmbedder
Aim: A digital surface embedder is a specialized mapping from signed cells to Euclidean points....
Definition: CDigitalSurfaceEmbedder.h:96
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::selfDisplay
void selfDisplay(std::ostream &out) const
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap::DigitalSurfaceEmbedder
TDigitalSurfaceEmbedder DigitalSurfaceEmbedder
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:223
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap::operator()
Value operator()(const Argument &arg) const
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::DigitalSurfaceEmbedderWithNormalVectorEstimator
DigitalSurfaceEmbedderWithNormalVectorEstimator()
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::myDSEmbedder
const DigitalSurfaceEmbedder * myDSEmbedder
A pointer on the digital surface.
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:195
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap::DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap
DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap()
Default constructor. The object is not valid.
SCell
Z3i::SCell SCell
Definition: fullConvexityShortestPaths3D.cpp:83
DGtal::SignedKhalimskyCell
Represents a signed cell in a cellular grid space by its Khalimsky coordinates and a boolean value.
Definition: KhalimskySpaceND.h:208
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap::Value
Embedder::RealVector Value
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:228
Surface
SH3::DigitalSurface Surface
Definition: exampleMaximalSegmentSliceEstimation.cpp:45
DGtal::operator<<
std::ostream & operator<<(std::ostream &out, const ATu0v1< TKSpace, TLinearAlgebra > &object)
DGtal::SpaceND
Definition: SpaceND.h:95
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::GradientMap
DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap< DigitalSurfaceEmbedder, NormalVectorEstimator > GradientMap
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:99
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::space
const KSpace & space() const
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:155
KSpace
Z3i::KSpace KSpace
Definition: testArithmeticalDSSComputerOnSurfels.cpp:48
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::myEstimator
const NormalVectorEstimator * myEstimator
A pointer on the normal vector estimator.
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:197
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap::NormalVectorEstimator
TNormalVectorEstimator NormalVectorEstimator
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:224
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::Self
DigitalSurfaceEmbedderWithNormalVectorEstimator< TDigitalSurfaceEmbedder, TNormalVectorEstimator > Self
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:78
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::Quantity
NormalVectorEstimator::Quantity Quantity
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:93
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::DigitalSurfaceEmbedder
TDigitalSurfaceEmbedder DigitalSurfaceEmbedder
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:81
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap::operator=
Self & operator=(const Self &other)
Assignment.
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::Value
DigitalSurfaceEmbedder::Value Value
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:89
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:56
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator
Aim: Combines a digital surface embedder with a normal vector estimator to get a model of CDigitalSur...
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:74
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap::Embedder
DigitalSurfaceEmbedderWithNormalVectorEstimator< DigitalSurfaceEmbedder, NormalVectorEstimator > Embedder
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:226
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::gradientMap
GradientMap gradientMap() const
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::operator=
Self & operator=(const Self &other)
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::gradient
RealVector gradient(const SCell &scell) const
DGtal::concepts::ConceptUtils::SameType
Definition: ConceptUtils.h:106
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::NormalVectorEstimator
TNormalVectorEstimator NormalVectorEstimator
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:82
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::NVESurface
NormalVectorEstimator::DigitalSurface NVESurface
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:94
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::RealVector
Space::RealVector RealVector
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:92
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::KSpace
DigitalSurfaceEmbedder::KSpace KSpace
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:84
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::~DigitalSurfaceEmbedderWithNormalVectorEstimator
~DigitalSurfaceEmbedderWithNormalVectorEstimator()
DGtal::PointVector
Aim: Implements basic operations that will be used in Point and Vector classes.
Definition: PointVector.h:165
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CDigitalSurfaceEmbedder< TDigitalSurfaceEmbedder >))
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::BOOST_STATIC_ASSERT
BOOST_STATIC_ASSERT((concepts::ConceptUtils::SameType< RealVector, Quantity >::value))
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::SCell
DigitalSurfaceEmbedder::SCell SCell
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:86
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::surface
const Surface & surface() const
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CDigitalSurfaceEmbedder< TDigitalSurfaceEmbedder >))
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::isValid
bool isValid() const
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap::~DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap
~DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap()
Destructor. Does nothing.
RealPoint
Z2i::RealPoint RealPoint
Definition: testAstroid2D.cpp:46
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap::Argument
Embedder::SCell Argument
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:227
Value
double Value
Definition: testSimpleRandomAccessRangeFromPoint.cpp:38
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap::Self
DigitalSurfaceEmbedderWithNormalVectorEstimatorGradientMap< TDigitalSurfaceEmbedder, TNormalVectorEstimator > Self
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:220
DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator::Space
KSpace::Space Space
Definition: DigitalSurfaceEmbedderWithNormalVectorEstimator.h:91