]> Creatis software - cpPlugins.git/blob - plugins/Extensions/Simple3DCurve.h
...
[cpPlugins.git] / plugins / Extensions / Simple3DCurve.h
1 #ifndef __cpPluginsExtensions__Simple3DCurve__h__
2 #define __cpPluginsExtensions__Simple3DCurve__h__
3
4 #include <cpPluginsExtensions_Export.h>
5 #include <cpPlugins/BaseObjects/DataObject.h>
6 #include <vtkSmartPointer.h>
7 #include <Extensions/Simple3DCurve_Demanglers.h>
8
9 // -------------------------------------------------------------------------
10 class vtkPolyDataAlgorithm;
11
12 // -------------------------------------------------------------------------
13 namespace cpPluginsExtensions
14 {
15   /**
16    */
17   class cpPluginsExtensions_EXPORT Simple3DCurve
18     : public cpPlugins::BaseObjects::DataObject
19   {
20   public:
21     typedef Simple3DCurve                      Self;
22     typedef cpPlugins::BaseObjects::DataObject Superclass;
23     typedef itk::SmartPointer< Self >          Pointer;
24     typedef itk::SmartPointer< const Self >    ConstPointer;
25
26   public:
27     itkNewMacro( Self );
28     itkTypeMacro(
29       Simple3DCurve, cpPlugins::BaseObjects::DataObject
30       );
31     cpPlugins_Id_Macro( Simple3DCurve, Object );
32     cpPlugins_Compatibility_Macro;
33
34   public:
35     virtual void SetITK( itk::LightObject* o ) cpPlugins_OVERRIDE;
36     virtual void SetVTK( vtkObjectBase* o ) cpPlugins_OVERRIDE;
37
38   protected:
39     Simple3DCurve( );
40     virtual ~Simple3DCurve( );
41
42     template< class _TSimple3DCurve >
43     inline void _ITK_2_VTK( _TSimple3DCurve* curve );
44
45   private:
46     // Purposely not implemented
47     Simple3DCurve( const Self& );
48     Self& operator=( const Self& );
49
50   protected:
51     vtkSmartPointer< vtkPolyDataAlgorithm > m_ITKvVTK;
52   };
53
54 } // ecapseman
55
56 #endif // __cpPluginsExtensions__Simple3DCurve__h__
57
58 // eof - $RCSfile$