]> Creatis software - cpPlugins.git/blob - lib/cpInstances/Simple3DCurve.h
...
[cpPlugins.git] / lib / cpInstances / Simple3DCurve.h
1 #ifndef __cpInstances__Simple3DCurve__h__
2 #define __cpInstances__Simple3DCurve__h__
3
4 #include <cpInstances/cpInstancesSimple3DCurve_Export.h>
5 #include <cpPlugins/BaseObjects/DataObject.h>
6 #include <cpInstances/Simple3DCurve_Demanglers.h>
7 #include <itkProcessObject.h>
8 #include <vtkSmartPointer.h>
9
10 // -------------------------------------------------------------------------
11 class vtkPolyDataAlgorithm;
12
13 // -------------------------------------------------------------------------
14 namespace cpInstances
15 {
16   /**
17    */
18   class cpInstancesSimple3DCurve_EXPORT Simple3DCurve
19     : public cpPlugins::BaseObjects::DataObject
20   {
21   public:
22     typedef Simple3DCurve                      Self;
23     typedef cpPlugins::BaseObjects::DataObject Superclass;
24     typedef itk::SmartPointer< Self >          Pointer;
25     typedef itk::SmartPointer< const Self >    ConstPointer;
26
27   public:
28     itkNewMacro( Self );
29     itkTypeMacro( Simple3DCurve, cpPlugins::BaseObjects::DataObject );
30     cpPlugins_Id_Macro( Simple3DCurve, Object );
31     cpPlugins_Compatibility_Macro;
32
33   public:
34     virtual void SetVTK( vtkObjectBase* o ) cpPlugins_OVERRIDE;
35
36   protected:
37     Simple3DCurve( );
38     virtual ~Simple3DCurve( );
39
40     virtual void _UpdateVTK( ) const cpPlugins_OVERRIDE;
41
42     template< class _TCurve >
43     inline void _ITK_2_VTK( _TCurve* curve ) const;
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 // __cpInstances__Simple3DCurve__h__
57
58 // eof - $RCSfile$