]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/DataObject.h
0abc4a4defe3ab9c909453e56026654cff1455c1
[cpPlugins.git] / lib / cpPlugins / DataObject.h
1 #ifndef __CPPLUGINS__DATAOBJECT__H__
2 #define __CPPLUGINS__DATAOBJECT__H__
3
4 #include <cpPlugins/Object.h>
5
6 // Some forward declarations
7 class vtkProp;
8
9 namespace cpPlugins
10 {
11   // Some forward declarations
12   class ProcessObject;
13   class DataObjectVisualizationQtDialog;
14
15   /**
16    */
17   class cpPlugins_EXPORT DataObject
18     : public Object
19   {
20   public:
21     typedef DataObject                      Self;
22     typedef Object                          Superclass;
23     typedef itk::SmartPointer< Self >       Pointer;
24     typedef itk::SmartPointer< const Self > ConstPointer;
25
26   public:
27     itkNewMacro( Self );
28     itkTypeMacro( DataObject, Object );
29     cpPlugins_Id_Macro( DataObject, Object );
30
31   public:
32     ProcessObject* GetSource( );
33     const ProcessObject* GetSource( ) const;
34     void SetSource( ProcessObject* src );
35
36     void DisconnectFromPipeline( );
37
38     // Qt dialog creation
39     virtual DataObjectVisualizationQtDialog* CreateQtDialog( );
40
41     // VTK actors
42     virtual vtkProp* CreateVTKActor( );
43
44   protected:
45     DataObject( );
46     virtual ~DataObject( );
47
48   private:
49     // Purposely not implemented
50     DataObject( const Self& );
51     Self& operator=( const Self& );
52
53   protected:
54     ProcessObject* m_Source;
55   };
56
57 } // ecapseman
58
59 #endif // __CPPLUGINS__DATAOBJECT__H__
60
61 // eof - $RCSfile$