1 #ifndef __cpPlugins__BaseObjects__DataObject__h__
2 #define __cpPlugins__BaseObjects__DataObject__h__
4 #include <cpPlugins/BaseObjects/Object.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 virtual bool IsCompatible( const Self* other ) const;
32 ProcessObject* GetSource( );
33 const ProcessObject* GetSource( ) const;
34 void SetSource( ProcessObject* src );
36 void DisconnectFromPipeline( );
40 virtual ~DataObject( );
42 template< class _TType >
43 inline bool _DisconnectVTK( );
46 // Purposely not implemented
47 DataObject( const Self& );
48 Self& operator=( const Self& );
51 ProcessObject* m_Source;
58 #endif // __cpPlugins__BaseObjects__DataObject__h__