X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FInterface%2FDataObject.h;h=cc8d8bfe60a66ce81cfce5f54d988a45f06b5912;hb=2361f4f97631e09d88d8a5510a369817dcaa19db;hp=9a8901e0c54e8c7f030fc5c2f4a41fd791ec83ed;hpb=cf8ebcdb1e31f332e74569b2be5dfb5f5100df07;p=cpPlugins.git diff --git a/lib/cpPlugins/Interface/DataObject.h b/lib/cpPlugins/Interface/DataObject.h index 9a8901e..cc8d8bf 100644 --- a/lib/cpPlugins/Interface/DataObject.h +++ b/lib/cpPlugins/Interface/DataObject.h @@ -3,39 +3,60 @@ #include #include -#include +#include +#include +#include #include +#define ITK_MANUAL_INSTANTIATION +#include + namespace cpPlugins { namespace Interface { - class ProcessObject; - /** */ - class DataObject + class cpPlugins_EXPORT DataObject : public Object { public: - typedef DataObject Self; - typedef Object Superclass; + typedef DataObject Self; + typedef Object Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; public: - DataObject( ); - virtual ~DataObject( ); + itkTypeMacro( DataObject, Object ); - virtual std::string GetClassName( ) const; + public: + virtual itk::DataObject* GetITKDataObject( ); + virtual const itk::DataObject* GetITKDataObject( ) const; + virtual void SetITKDataObject( itk::DataObject* o ) = 0; - itk::DataObject* GetDataObject( ) const; - virtual void SetDataObject( itk::DataObject* src ); + virtual vtkDataObject* GetVTKDataObject( ); + virtual const vtkDataObject* GetVTKDataObject( ) const; + virtual void SetVTKDataObject( vtkDataObject* o ) = 0; + + Object* GetSource( ); + const Object* GetSource( ) const; + void SetSource( Object* src ); + + void DisconnectPipeline( ); + + protected: + DataObject( ); + virtual ~DataObject( ); - ProcessObject* GetSource( ) const; - void SetSource( ProcessObject* src ); + private: + // Purposely not implemented + DataObject( const Self& ); + Self& operator=( const Self& ); protected: - itk::DataObject::Pointer m_DataObject; - ProcessObject* m_Source; + itk::DataObject::Pointer m_ITKObject; + vtkSmartPointer< vtkDataObject > m_VTKObject; + Object::Pointer m_Source; }; } // ecapseman