]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Interface/ImplicitFunction.h
6b9c7ee0c98fee15ccc646871f67963bb6a4940c
[cpPlugins.git] / lib / cpPlugins / Interface / ImplicitFunction.h
1 #ifndef __CPPLUGINS__INTERFACE__IMPLICITFUNCTION__H__
2 #define __CPPLUGINS__INTERFACE__IMPLICITFUNCTION__H__
3
4 #include <cpPlugins/Interface/cpPlugins_Interface_Export.h>
5 #include <cpPlugins/Interface/DataObject.h>
6
7 #include <itkSpatialObject.h>
8
9 #include <vtkSmartPointer.h>
10 #include <vtkImplicitFunction.h>
11
12 namespace cpPlugins
13 {
14   namespace Interface
15   {
16     /**
17      */
18     class cpPlugins_Interface_EXPORT ImplicitFunction
19       : public DataObject
20     {
21     public:
22       typedef ImplicitFunction                Self;
23       typedef DataObject                      Superclass;
24       typedef itk::SmartPointer< Self >       Pointer;
25       typedef itk::SmartPointer< const Self > ConstPointer;
26
27     public:
28       itkNewMacro( Self );
29       itkTypeMacro( ImplicitFunction, DataObject );
30
31     public:
32       template< class F >
33         inline F* GetITKImplicitFunction( );
34
35       template< class F >
36         inline const F* GetITKImplicitFunction( ) const;
37
38       template< class F >
39         inline F* GetVTKImplicitFunction( );
40
41       template< class F >
42         inline const F* GetVTKImplicitFunction( ) const;
43
44       virtual vtkImplicitFunction* GetVTKImplicitFunction( );
45       virtual const vtkImplicitFunction* GetVTKImplicitFunction( ) const;
46
47       void SetFunction( vtkImplicitFunction* function );
48
49       void SetFunctionToBox( );
50       void SetFunctionToCone( );
51       void SetFunctionToCylinder( );
52       void SetFunctionToImplicitBoolean( );
53       void SetFunctionToImplicitDataSet( );
54       void SetFunctionToImplicitHalo( );
55       void SetFunctionToImplicitPolyDataDistance( );
56       void SetFunctionToImplicitSelectionLoop( );
57       void SetFunctionToImplicitSum( );
58       void SetFunctionToImplicitVolume( );
59       void SetFunctionToImplicitWindowFunction( );
60       void SetFunctionToPerlinNoise( );
61       void SetFunctionToPlane( );
62       void SetFunctionToPlanes( );
63       void SetFunctionToPlanesIntersection( );
64       void SetFunctionToPolyPlane( );
65       void SetFunctionToQuadric( );
66       void SetFunctionToSphere( );
67       void SetFunctionToSuperquadric( );
68
69     protected:
70       ImplicitFunction( );
71       virtual ~ImplicitFunction( );
72
73     private:
74       // Purposely not implemented
75       ImplicitFunction( const Self& );
76       Self& operator=( const Self& );
77     };
78
79   } // ecapseman
80
81 } // ecapseman
82
83 #endif // __CPPLUGINS__INTERFACE__IMPLICITFUNCTION__H__
84
85 // eof - $RCSfile$