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