DGtal  0.9.2
CDigitalSurfaceEmbedder.h
1 
17 #pragma once
18 
31 #if defined(CDigitalSurfaceEmbedder_RECURSES)
32 #error Recursive header files inclusion detected in CDigitalSurfaceEmbedder.h
33 #else // defined(CDigitalSurfaceEmbedder_RECURSES)
34 
35 #define CDigitalSurfaceEmbedder_RECURSES
36 
37 #if !defined CDigitalSurfaceEmbedder_h
38 
39 #define CDigitalSurfaceEmbedder_h
40 
42 // Inclusions
43 #include <iostream>
44 #include "DGtal/base/Common.h"
45 #include "DGtal/base/CUnaryFunctor.h"
46 #include "DGtal/topology/CSCellEmbedder.h"
48 
49 // @since 0.8 In DGtal::concepts
50 namespace DGtal {
51  namespace concepts {
52 
54 // class CDigitalSurfaceEmbedder
95 template <typename T>
97 {
98  // ----------------------- Concept checks ------------------------------
99 public:
100  typedef typename T::KSpace KSpace;
101  typedef typename T::Surface Surface;
102  typedef typename T::SCell SCell;
103  typedef typename T::RealPoint RealPoint;
104  typedef typename T::Argument Argument;
105  typedef typename T::Value Value;
106 
107  // Already checked in CSCellEmbedder
108  // BOOST_CONCEPT_ASSERT(( CCellularGridSpaceND< KSpace > ));
109  // BOOST_STATIC_ASSERT(( ConceptUtils::SameType< SCell, typename KSpace::SCell >::value ));
110  // BOOST_STATIC_ASSERT(( ConceptUtils::SameType< SCell, Argument >::value ));
111  // BOOST_STATIC_ASSERT(( ConceptUtils::SameType< RealPoint, typename KSpace::RealPoint >::value ));
112  // BOOST_STATIC_ASSERT(( ConceptUtils::SameType< RealPoint, Value >::value ));
114  {
116  }
117 
119  { // operator()
120  // ConceptUtils::sameType( myRP, myX( myP ) );
121  ConceptUtils::sameType( mySurface, myX.surface() );
122  }
123  // ------------------------- Private Datas --------------------------------
124 private:
125  T myX; // do not require T to be default constructible.
126  // SCell myP;
127  // RealPoint myRP;
128  Surface mySurface;
129 
130  // ------------------------- Internals ------------------------------------
131 private:
132 
133 }; // end of concept CDigitalSurfaceEmbedder
134 
135 } // namespace concepts
136 } // namespace DGtal
137 
138 // //
140 
141 #endif // !defined CDigitalSurfaceEmbedder_h
142 
143 #undef CDigitalSurfaceEmbedder_RECURSES
144 #endif // else defined(CDigitalSurfaceEmbedder_RECURSES)
void sameType(const T &t1, const T &t2)
Aim: A cell embedder is a mapping from signed cells to Euclidean points. It adds inner types to funct...
DGtal is the top-level namespace which contains all DGtal functions and types.
Aim: A digital surface embedder is a specialized mapping from signed cells to Euclidean points...