1 #ifndef __CPPLUGINS__DATAOBJECT__H__
2 #define __CPPLUGINS__DATAOBJECT__H__
4 #include <cpPlugins/Object.h>
6 #include <vtkSmartPointer.h>
8 // Some forward declarations
9 // TODO: class vtkProp;
13 // Some forward declarations
18 class cpPlugins_EXPORT DataObject
22 typedef DataObject Self;
23 typedef Object Superclass;
24 typedef itk::SmartPointer< Self > Pointer;
25 typedef itk::SmartPointer< const Self > ConstPointer;
29 itkTypeMacro( DataObject, Object );
30 cpPlugins_Id_Macro( DataObject, Object );
33 ProcessObject* GetSource( );
34 const ProcessObject* GetSource( ) const;
35 void SetSource( ProcessObject* src );
37 void DisconnectFromPipeline( );
40 vtkProp* GetVTKActor( );
41 const vtkProp* GetVTKActor( ) const;
45 virtual ~DataObject( );
47 virtual void _CreateVTKActor( ) const;
50 // Purposely not implemented
51 DataObject( const Self& );
52 Self& operator=( const Self& );
55 ProcessObject* m_Source;
56 // TODO: mutable vtkProp* m_Actor;
57 mutable vtkSmartPointer< vtkProp > m_Actor;
62 #endif // __CPPLUGINS__DATAOBJECT__H__