#ifndef __CPPLUGINS__INTERFACE__DATAOBJECT__H__
#define __CPPLUGINS__INTERFACE__DATAOBJECT__H__
-#include <map>
-#include <string>
-#include <vtkDataObject.h>
-#include <vtkSmartPointer.h>
-#include <cpPlugins/cpPlugins_Export.h>
#include <cpPlugins/Interface/Object.h>
-#define ITK_MANUAL_INSTANTIATION
-#include <itkDataObject.h>
+#include <itkObject.h>
+#include <vtkSmartPointer.h>
+#include <vtkObject.h>
namespace cpPlugins
{
namespace Interface
{
+ // Some forward declarations
+ class ProcessObject;
+
/**
*/
- class cpPlugins_EXPORT DataObject
+ class cpPlugins_Interface_EXPORT DataObject
: public Object
{
public:
typedef itk::SmartPointer< const Self > ConstPointer;
public:
+ itkNewMacro( Self );
itkTypeMacro( DataObject, Object );
+ cpPlugins_Id_Macro( DataObject, BasicObject );
public:
- virtual itk::DataObject* GetITKDataObject( );
- virtual const itk::DataObject* GetITKDataObject( ) const;
- virtual void SetITKDataObject( itk::DataObject* o ) = 0;
+ ProcessObject* GetSource( );
+ const ProcessObject* GetSource( ) const;
+ void SetSource( ProcessObject* src );
+
+ void DisconnectPipeline( );
- virtual vtkDataObject* GetVTKDataObject( );
- virtual const vtkDataObject* GetVTKDataObject( ) const;
- virtual void SetVTKDataObject( vtkDataObject* o ) = 0;
+ template< class T >
+ inline T* GetITK( );
- Object* GetSource( );
- const Object* GetSource( ) const;
- void SetSource( Object* src );
+ template< class T >
+ inline const T* GetITK( ) const;
- void DisconnectPipeline( );
+ template< class T >
+ inline T* GetVTK( );
+
+ template< class T >
+ inline const T* GetVTK( ) const;
protected:
DataObject( );
Self& operator=( const Self& );
protected:
- itk::DataObject::Pointer m_ITKObject;
- vtkSmartPointer< vtkDataObject > m_VTKObject;
- Object::Pointer m_Source;
+ itk::Object::Pointer m_ITKObject;
+ vtkSmartPointer< vtkObject > m_VTKObject;
+ ProcessObject* m_Source;
};
} // ecapseman
} // ecapseman
+#include <cpPlugins/Interface/DataObject.hxx>
+
#endif // __CPPLUGINS__INTERFACE__DATAOBJECT__H__
// eof - $RCSfile$