DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
testImplicitFunctionModels.cpp
1 
30 
31 #include <iostream>
32 #include "DGtal/base/Common.h"
33 #include "DGtal/shapes/implicit/ImplicitBall.h"
34 #include "DGtal/shapes/implicit/ImplicitNorm1Ball.h"
35 #include "DGtal/shapes/implicit/ImplicitHyperCube.h"
36 #include "DGtal/shapes/implicit/ImplicitRoundedHyperCube.h"
37 #include "DGtal/shapes/implicit/ImplicitPolynomial3Shape.h"
38 #include "DGtal/shapes/implicit/CImplicitFunction.h"
39 #include "DGtal/shapes/implicit/CImplicitFunctionDiff1.h"
40 #include "DGtal/helpers/StdDefs.h"
41 
43 
44 using namespace std;
45 using namespace DGtal;
46 
48 // Functions for testing class ImplicitFunctionModels.
50 
51 
52 
56 bool testImplicitFunctionModels()
57 {
58  typedef ImplicitBall<Z2i::Space> _ImplicitBall2D;
59  typedef ImplicitBall<Z3i::Space> _ImplicitBall3D;
60  typedef ImplicitNorm1Ball<Z2i::Space> _ImplicitNorm1Ball2D;
61  typedef ImplicitNorm1Ball<Z3i::Space> _ImplicitNorm1Ball3D;
62  typedef ImplicitHyperCube<Z2i::Space> _ImplicitHyperCube2D;
63  typedef ImplicitHyperCube<Z3i::Space> _ImplicitHyperCube3D;
64  typedef ImplicitRoundedHyperCube<Z2i::Space> _ImplicitRoundedHyperCube2D;
65  typedef ImplicitRoundedHyperCube<Z3i::Space> _ImplicitRoundedHyperCube3D;
66  typedef ImplicitPolynomial3Shape<Z3i::Space> _ImplicitPolynomial3Shape;
67  BOOST_CONCEPT_ASSERT(( CImplicitFunction< _ImplicitBall2D > ));
68  BOOST_CONCEPT_ASSERT(( CImplicitFunction< _ImplicitBall3D > ));
69  BOOST_CONCEPT_ASSERT(( CImplicitFunction< _ImplicitNorm1Ball2D > ));
70  BOOST_CONCEPT_ASSERT(( CImplicitFunction< _ImplicitNorm1Ball3D > ));
71  BOOST_CONCEPT_ASSERT(( CImplicitFunction< _ImplicitRoundedHyperCube2D > ));
72  BOOST_CONCEPT_ASSERT(( CImplicitFunction< _ImplicitRoundedHyperCube3D > ));
73  BOOST_CONCEPT_ASSERT(( CImplicitFunction< _ImplicitPolynomial3Shape > ));
74  //BOOST_CONCEPT_ASSERT(( CImplicitFunctionDiff1< _ImplicitBall2D > ));
76  return true;
77 }
78 
80 // Standard services - public :
81 
82 int main( int /*argc*/, char** /*argv*/ )
83 {
84  trace.beginBlock ( "Testing class ImplicitFunctionModels" );
85  bool res = testImplicitFunctionModels(); // && ... other tests
86  trace.emphase() << ( res ? "Passed." : "Error." ) << endl;
87  trace.endBlock();
88  return res ? 0 : 1;
89 }
90 // //