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