]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/DataObject.h
Actors updated
[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     vtkProp* GetVTKActor( );
43     const vtkProp* GetVTKActor( ) const;
44
45   protected:
46     DataObject( );
47     virtual ~DataObject( );
48
49     virtual void _CreateVTKActor( ) const;
50
51   private:
52     // Purposely not implemented
53     DataObject( const Self& );
54     Self& operator=( const Self& );
55
56   protected:
57     ProcessObject*   m_Source;
58     mutable vtkProp* m_Actor;
59   };
60
61 } // ecapseman
62
63 #endif // __CPPLUGINS__DATAOBJECT__H__
64
65 // eof - $RCSfile$