1 #ifndef __CPPLUGINS__DATAOBJECT__H__
2 #define __CPPLUGINS__DATAOBJECT__H__
4 #include <cpPlugins/Object.h>
6 #include <vtkSmartPointer.h>
10 // Some forward declarations
15 class cpPlugins_EXPORT DataObject
19 typedef DataObject Self;
20 typedef Object Superclass;
21 typedef itk::SmartPointer< Self > Pointer;
22 typedef itk::SmartPointer< const Self > ConstPointer;
26 itkTypeMacro( DataObject, Object );
27 cpPlugins_Id_Macro( DataObject, Object );
30 ProcessObject* GetSource( );
31 const ProcessObject* GetSource( ) const;
32 void SetSource( ProcessObject* src );
34 void DisconnectFromPipeline( );
37 vtkProp* GetVTKActor( );
38 const vtkProp* GetVTKActor( ) const;
42 virtual ~DataObject( );
44 virtual void _CreateVTKActor( ) const;
47 // Purposely not implemented
48 DataObject( const Self& );
49 Self& operator=( const Self& );
52 ProcessObject* m_Source;
53 mutable vtkSmartPointer< vtkProp > m_Actor;
58 #endif // __CPPLUGINS__DATAOBJECT__H__