DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CDigitalOrientedShape.h
1 
17 #pragma once
18 
31 #if defined(CDigitalOrientedShape_RECURSES)
32 #error Recursive header files inclusion detected in CDigitalOrientedShape.h
33 #else // defined(CDigitalOrientedShape_RECURSES)
34 
35 #define CDigitalOrientedShape_RECURSES
36 
37 #if !defined CDigitalOrientedShape_h
38 
39 #define CDigitalOrientedShape_h
40 
42 // Inclusions
43 #include <iostream>
44 #include "DGtal/base/Common.h"
45 #include "DGtal/kernel/CCommutativeRing.h"
47 
48 namespace DGtal
49 {
50 
52  // class CDigitalOrientedShape
109  template <typename T>
111  {
112  // ----------------------- Concept checks ------------------------------
113  public:
114  // 1. define first provided types (i.e. inner types), like
115  typedef typename T::Point Point;
116 
117  // 2. then check the presence of data members, operators and methods with
119  {
120  ConceptUtils::sameType( myA, myX.orientation( p ));
121  }
122  // ------------------------- Private Datas --------------------------------
123  private:
124  T myX; // only if T is default constructible.
127 
128  // ------------------------- Internals ------------------------------------
129  private:
130 
131  }; // end of concept CDigitalOrientedShape
132 
133 } // namespace DGtal
134 
135 // //
137 
138 #endif // !defined CDigitalOrientedShape_h
139 
140 #undef CDigitalOrientedShape_RECURSES
141 #endif // else defined(CDigitalOrientedShape_RECURSES)