1 #ifndef __CPPLUGINS__INTERFACE__DATAOBJECT__H__
2 #define __CPPLUGINS__INTERFACE__DATAOBJECT__H__
4 #include <cpPlugins/Interface/Object.h>
7 #include <vtkSmartPointer.h>
14 // Some forward declarations
19 class cpPlugins_Interface_EXPORT DataObject
23 typedef DataObject Self;
24 typedef Object Superclass;
25 typedef itk::SmartPointer< Self > Pointer;
26 typedef itk::SmartPointer< const Self > ConstPointer;
29 itkTypeMacro( DataObject, Object );
30 cpPlugins_Id_Macro( DataObject, "BasicObject" );
33 ProcessObject* GetSource( );
34 const ProcessObject* GetSource( ) const;
35 void SetSource( ProcessObject* src );
37 void DisconnectPipeline( );
43 inline const T* GetITK( ) const;
49 inline const T* GetVTK( ) const;
53 virtual ~DataObject( );
56 // Purposely not implemented
57 DataObject( const Self& );
58 Self& operator=( const Self& );
61 itk::Object::Pointer m_ITKObject;
62 vtkSmartPointer< vtkObject > m_VTKObject;
63 ProcessObject* m_Source;
70 #include <cpPlugins/Interface/DataObject.hxx>
72 #endif // __CPPLUGINS__INTERFACE__DATAOBJECT__H__