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