DGtal  1.5.beta
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)
35 #define CEuclideanOrientedShape_RECURSES
36 
37 #if !defined CEuclideanOrientedShape_h
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  namespace concepts
51  {
53  // class CEuclideanOrientedShape
90  template <typename T>
92  {
93  // ----------------------- Concept checks ------------------------------
94  public:
95  // 1. define first provided types (i.e. inner types), like
96  typedef typename T::RealPoint RealPoint;
97 
98  // 2. then check the presence of data members, operators and methods with
100  {
101  ConceptUtils::sameType( myA, myX.orientation( p ));
102  }
103  // ------------------------- Private Datas --------------------------------
104  private:
105  T myX; // only if T is default constructible.
108 
109  // ------------------------- Internals ------------------------------------
110  private:
111 
112  }; // end of concept CEuclideanOrientedShape
113  }
114 } // namespace DGtal
115 
116 // //
118 
119 #endif // !defined CEuclideanOrientedShape_h
120 
121 #undef CEuclideanOrientedShape_RECURSES
122 #endif // else defined(CEuclideanOrientedShape_RECURSES)
void sameType(const T &, const T &)
Definition: ConceptUtils.h:117
DGtal is the top-level namespace which contains all DGtal functions and types.
Orientation
Definition: Common.h:141
Aim: characterizes models of digital oriented shapes. For example, models should provide an orientati...
PointVector< 3, double > RealPoint