DGtal  0.9.2
CNormalVectorEstimator.h
1 
17 #pragma once
18 
31 #if defined(CNormalVectorEstimator_RECURSES)
32 #error Recursive header files inclusion detected in CNormalVectorEstimator.h
33 #else // defined(CNormalVectorEstimator_RECURSES)
34 
35 #define CNormalVectorEstimator_RECURSES
36 
37 #if !defined CNormalVectorEstimator_h
38 
39 #define CNormalVectorEstimator_h
40 
42 // Inclusions
43 #include <iostream>
44 #include <boost/concept_archetype.hpp>
45 #include "DGtal/base/Common.h"
46 #include "DGtal/topology/CCellularGridSpaceND.h"
48 
49 // @since 0.8 In DGtal::concepts
50 namespace DGtal {
51  namespace concepts {
52 
54 // class CNormalVectorEstimator
93 template <typename T>
95 {
96  // ----------------------- Concept checks ------------------------------
97 public:
98  typedef typename T::Surface Surface;
99  typedef typename T::SCell SCell;
100  typedef typename T::ConstIterator ConstIterator;
101  typedef typename T::Quantity Quantity;
102 
106 
108  {
109  ConceptUtils::sameType( mySurface, myX.surface() );
111  ConceptUtils::sameType( myOutIt, myX.evalAll( myOutIt ) );
113  }
115  {
116  }
117  // ------------------------- Private Datas --------------------------------
118 private:
119  T myX; // do not require T to be default constructible.
120  Surface mySurface;
121  SCell mySCell;
122  Quantity myQuantity;
123  boost::output_iterator_archetype<Quantity> myOutIt;
124 
125  // ------------------------- Internals ------------------------------------
126 private:
127 
128 }; // end of concept CNormalVectorEstimator
129 
130 } // namespace concepts
131 } // namespace DGtal
132 
133 // //
135 
136 #endif // !defined CNormalVectorEstimator_h
137 
138 #undef CNormalVectorEstimator_RECURSES
139 #endif // else defined(CNormalVectorEstimator_RECURSES)
void sameType(const T &t1, const T &t2)
BOOST_CONCEPT_ASSERT((concepts::CCellularGridSpaceND< typename Surface::KSpace >))
DGtal is the top-level namespace which contains all DGtal functions and types.
boost::output_iterator_archetype< Quantity > myOutIt
Go to http://www.sgi.com/tech/stl/InputIterator.html.
Definition: Boost.dox:36
Aim: This concept describes a cellular grid space in nD. In these spaces obtained by cartesian produc...
Aim: Represents the concept of estimator of normal vector along digital surfaces. ...
BOOST_STATIC_ASSERT((ConceptUtils::SameType< SCell, typename Surface::SCell >::value))