DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CImplicitFunctionDiff1.h
1 
17 #pragma once
18 
31 #if defined(CImplicitFunctionDiff1_RECURSES)
32 #error Recursive header files inclusion detected in CImplicitFunctionDiff1.h
33 #else // defined(CImplicitFunctionDiff1_RECURSES)
34 
35 #define CImplicitFunctionDiff1_RECURSES
36 
37 #if !defined CImplicitFunctionDiff1_h
38 
39 #define CImplicitFunctionDiff1_h
40 
42 // Inclusions
43 #include <iostream>
44 #include "DGtal/base/Common.h"
45 #include "DGtal/shapes/implicit/CImplicitFunction.h"
47 
48 namespace DGtal
49 {
50 
52  // class CImplicitFunctionDiff1
111  template <typename T>
113  {
114  // ----------------------- Concept checks ------------------------------
115  public:
116  // 1. define first provided types (i.e. inner types), like
117  typedef typename T::RealPoint RealPoint;
118  typedef typename T::RealVector RealVector;
119 
121  {
122  // check const methods.
124  }
126  {
127  // const method dummyConst should take parameter myA of type A and return
128  // something of type B
129  ConceptUtils::sameType( myB, myX.gradient( myA ) );
130  }
131  // ------------------------- Private Datas --------------------------------
132  private:
133  T myX; // do not require T to be default constructible.
136 
137  }; // end of concept CImplicitFunctionDiff1
138 
139 } // namespace DGtal
140 
141 // //
143 
144 #endif // !defined CImplicitFunctionDiff1_h
145 
146 #undef CImplicitFunctionDiff1_RECURSES
147 #endif // else defined(CImplicitFunctionDiff1_RECURSES)