DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
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 namespace DGtal
50 {
51 
53 // class CDigitalSurfaceEmbedder
94 template <typename T>
96 {
97  // ----------------------- Concept checks ------------------------------
98 public:
99  typedef typename T::KSpace KSpace;
100  typedef typename T::Surface Surface;
101  typedef typename T::SCell SCell;
102  typedef typename T::RealPoint RealPoint;
103  typedef typename T::Argument Argument;
104  typedef typename T::Value Value;
105 
106  // Already checked in CSCellEmbedder
107  // BOOST_CONCEPT_ASSERT(( CCellularGridSpaceND< KSpace > ));
108  // BOOST_STATIC_ASSERT(( ConceptUtils::SameType< SCell, typename KSpace::SCell >::value ));
109  // BOOST_STATIC_ASSERT(( ConceptUtils::SameType< SCell, Argument >::value ));
110  // BOOST_STATIC_ASSERT(( ConceptUtils::SameType< RealPoint, typename KSpace::RealPoint >::value ));
111  // BOOST_STATIC_ASSERT(( ConceptUtils::SameType< RealPoint, Value >::value ));
113  {
115  }
116 
118  { // operator()
119  // ConceptUtils::sameType( myRP, myX( myP ) );
120  ConceptUtils::sameType( mySurface, myX.surface() );
121  }
122  // ------------------------- Private Datas --------------------------------
123 private:
124  T myX; // do not require T to be default constructible.
125  // SCell myP;
126  // RealPoint myRP;
128 
129  // ------------------------- Internals ------------------------------------
130 private:
131 
132 }; // end of concept CDigitalSurfaceEmbedder
133 
134 } // namespace DGtal
135 
136 // //
138 
139 #endif // !defined CDigitalSurfaceEmbedder_h
140 
141 #undef CDigitalSurfaceEmbedder_RECURSES
142 #endif // else defined(CDigitalSurfaceEmbedder_RECURSES)