]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Image.h
1f2e51e0830d7ff251878322f509ba289f1cb9e5
[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     virtual void _CreateVTKActor( ) const ITK_OVERRIDE;
35
36     template< unsigned int D >
37       inline bool _ITK_2_VTK_0( itk::LightObject* o );
38
39     template< class P, unsigned int D >
40       inline bool _ITK_2_VTK_1( itk::LightObject* o );
41
42     template< class T >
43       inline bool _ITK_2_VTK_2( itk::LightObject* o );
44
45   private:
46     // Purposely not implemented
47     Image( const Self& );
48     Self& operator=( const Self& );
49
50   protected:
51     itk::ProcessObject::Pointer m_ITKvVTK;
52   };
53
54 } // ecapseman
55
56 #include <cpPlugins/Image.hxx>
57
58 #endif // __CPPLUGINS__IMAGE__H__
59
60 // eof - $RCSfile$