DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CanonicCellEmbedder.h
1 
17 #pragma once
18 
31 #if defined(CanonicCellEmbedder_RECURSES)
32 #error Recursive header files inclusion detected in CanonicCellEmbedder.h
33 #else // defined(CanonicCellEmbedder_RECURSES)
34 
35 #define CanonicCellEmbedder_RECURSES
36 
37 #if !defined CanonicCellEmbedder_h
38 
39 #define CanonicCellEmbedder_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 CanonicCellEmbedder
63  template <typename TKSpace>
65  {
66  public:
69 
70  typedef TKSpace KSpace;
71  typedef typename KSpace::Cell Cell;
72  typedef typename KSpace::Space Space;
73  typedef typename Space::RealPoint RealPoint;
74  typedef Cell Argument;
75  typedef RealPoint Value;
76 
77  typedef typename Space::Integer Integer;
78  typedef typename Space::Point Point;
79 
80  // ----------------------- Standard services ------------------------------
81  public:
86 
91 
95  CanonicCellEmbedder( const KSpace & aKSpace );
96 
101  CanonicCellEmbedder( const Self & other );
102 
108  Self & operator=( const Self & other );
109 
113  const KSpace & space() const;
114 
122  RealPoint embed( const Cell & cell ) const;
123 
131  RealPoint operator()( const Cell & cell ) const;
132 
133  // ----------------------- Interface --------------------------------------
134 public:
135 
140  void selfDisplay ( std::ostream & out ) const;
141 
146  bool isValid() const;
147 
148  // ------------------------- Protected Datas ------------------------------
149  protected:
150  const KSpace* myKSpace;
151 
152  // ------------------------- Private Datas --------------------------------
153 private:
154 
155  // ------------------------- Hidden services ------------------------------
156 protected:
157 
158 
159  // ------------------------- Internals ------------------------------------
160 private:
161 
162 }; // end of class CanonicCellEmbedder
163 
164 
171  template <typename TKSpace>
172  std::ostream&
173  operator<< ( std::ostream & out, const CanonicCellEmbedder<TKSpace> & object );
174 
175 
176 } // namespace DGtal
177 
178 
180 // Includes inline functions.
181 #include "DGtal/kernel/CanonicCellEmbedder.ih"
182 
183 
184 // //
186 
187 #endif // !defined CanonicCellEmbedder_h
188 
189 #undef CanonicCellEmbedder_RECURSES
190 #endif // else defined(CanonicCellEmbedder_RECURSES)