DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CanonicDigitalSurfaceEmbedder.h
1 
17 #pragma once
18 
31 #if defined(CanonicDigitalSurfaceEmbedder_RECURSES)
32 #error Recursive header files inclusion detected in CanonicDigitalSurfaceEmbedder.h
33 #else // defined(CanonicDigitalSurfaceEmbedder_RECURSES)
34 
35 #define CanonicDigitalSurfaceEmbedder_RECURSES
36 
37 #if !defined CanonicDigitalSurfaceEmbedder_h
38 
39 #define CanonicDigitalSurfaceEmbedder_h
40 
42 // Inclusions
43 #include <iostream>
44 #include "DGtal/base/Common.h"
45 #include "DGtal/topology/CCellularGridSpaceND.h"
47 
48 namespace DGtal
49 {
50 
52 // class CanonicDigitalSurfaceEmbedder
63  template <typename TDigitalSurface>
65  {
66  public:
68 
69  typedef TDigitalSurface Surface;
70  typedef typename Surface::KSpace KSpace;
72  typedef typename KSpace::SCell SCell;
73  typedef typename KSpace::Space Space;
74  typedef typename Space::RealPoint RealPoint;
75  typedef SCell Argument;
76  typedef RealPoint Value;
77 
78  typedef typename Space::Integer Integer;
79  typedef typename Space::Point Point;
80 
81  // ----------------------- Standard services ------------------------------
82  public:
87 
92 
96  CanonicDigitalSurfaceEmbedder( const Surface & aSurface );
97 
102  CanonicDigitalSurfaceEmbedder( const Self & other );
103 
109  Self & operator=( const Self & other );
110 
114  const Surface & surface() const;
115 
123  RealPoint embed( const SCell & cell ) const;
124 
132  RealPoint operator()( const SCell & cell ) const;
133 
134  // ----------------------- Interface --------------------------------------
135 public:
136 
141  void selfDisplay ( std::ostream & out ) const;
142 
147  bool isValid() const;
148 
149  // ------------------------- Protected Datas ------------------------------
150  protected:
152 
153  // ------------------------- Private Datas --------------------------------
154 private:
155 
156  // ------------------------- Hidden services ------------------------------
157 protected:
158 
159 
160  // ------------------------- Internals ------------------------------------
161 private:
162 
163 }; // end of class CanonicDigitalSurfaceEmbedder
164 
165 
172  template <typename TDigitalSurface>
173  std::ostream&
174  operator<< ( std::ostream & out, const CanonicDigitalSurfaceEmbedder<TDigitalSurface> & object );
175 
176 
177 } // namespace DGtal
178 
179 
181 // Includes inline functions.
182 #include "DGtal/kernel/CanonicDigitalSurfaceEmbedder.ih"
183 
184 
185 // //
187 
188 #endif // !defined CanonicDigitalSurfaceEmbedder_h
189 
190 #undef CanonicDigitalSurfaceEmbedder_RECURSES
191 #endif // else defined(CanonicDigitalSurfaceEmbedder_RECURSES)