DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CEuclideanOrientedShape.h
1 
17 #pragma once
18 
31 #if defined(CEuclideanOrientedShape_RECURSES)
32 #error Recursive header files inclusion detected in CEuclideanOrientedShape.h
33 #else // defined(CEuclideanOrientedShape_RECURSES)
34 
35 #define CEuclideanOrientedShape_RECURSES
36 
37 #if !defined CEuclideanOrientedShape_h
38 
39 #define CEuclideanOrientedShape_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 CEuclideanOrientedShape
108  template <typename T>
110  {
111  // ----------------------- Concept checks ------------------------------
112  public:
113  // 1. define first provided types (i.e. inner types), like
114  typedef typename T::RealPoint RealPoint;
115 
116  // 2. then check the presence of data members, operators and methods with
118  {
119  ConceptUtils::sameType( myA, myX.orientation( p ));
120  }
121  // ------------------------- Private Datas --------------------------------
122  private:
123  T myX; // only if T is default constructible.
126 
127  // ------------------------- Internals ------------------------------------
128  private:
129 
130  }; // end of concept CEuclideanOrientedShape
131 
132 } // namespace DGtal
133 
134 // //
136 
137 #endif // !defined CEuclideanOrientedShape_h
138 
139 #undef CEuclideanOrientedShape_RECURSES
140 #endif // else defined(CEuclideanOrientedShape_RECURSES)