DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
DigitalTopology.h
1 
17 #pragma once
18 
31 #if defined(DigitalTopology_RECURSES)
32 #error Recursive header files inclusion detected in DigitalTopology.h
33 #else // defined(DigitalTopology_RECURSES)
34 
35 #define DigitalTopology_RECURSES
36 
37 #if !defined DigitalTopology_h
38 
39 #define DigitalTopology_h
40 
42 // Inclusions
43 #include <iostream>
44 #include "DGtal/base/Common.h"
45 #include "DGtal/topology/CAdjacency.h"
47 
48 namespace DGtal
49 {
50 
56  JORDAN_DT = 2 };
57 
59  // template class DigitalTopology
93  template <typename TForegroundAdjacency, typename TBackgroundAdjacency>
95  {
96  // ----------------------- Standard services ------------------------------
97  public:
98  typedef TForegroundAdjacency ForegroundAdjacency;
99  typedef TBackgroundAdjacency BackgroundAdjacency;
100  typedef typename ForegroundAdjacency::Point Point;
101  // should be the same as Point.
102  typedef typename BackgroundAdjacency::Point BackPoint;
103 
106 
112 
113 
126  DigitalTopology( const ForegroundAdjacency & aKappa,
127  const BackgroundAdjacency & aLambda,
129 
134 
139  DigitalTopology ( const DigitalTopology & other );
140 
141 
145  const ForegroundAdjacency & kappa() const;
146 
150  const BackgroundAdjacency & lambda() const;
151 
157 
163 
164  // ----------------------- Interface --------------------------------------
165  public:
166 
171  void selfDisplay ( std::ostream & out ) const;
172 
177  bool isValid() const;
178 
179  // ------------------------- Protected Datas ------------------------------
180  private:
181  // ------------------------- Private Datas --------------------------------
182  private:
188 
194 
200 
201  // ------------------------- Hidden services ------------------------------
202  protected:
203 
208  DigitalTopology();
209 
210  private:
211 
218  DigitalTopology & operator= ( const DigitalTopology & other );
219 
220  // ------------------------- Internals ------------------------------------
221  private:
222 
223  }; // end of class DigitalTopology
224 
225 
232  template <typename TForegroundAdjacency, typename TBackgroundAdjacency>
233  std::ostream&
234  operator<< ( std::ostream & out,
236 
237 } // namespace DGtal
238 
239 
241 // Includes inline functions.
242 #include "DGtal/topology/DigitalTopology.ih"
243 
244 // //
246 
247 #endif // !defined DigitalTopology_h
248 
249 #undef DigitalTopology_RECURSES
250 #endif // else defined(DigitalTopology_RECURSES)