#ifndef __CPPLUGINS__INTERFACE__DATAOBJECT__H__ #define __CPPLUGINS__INTERFACE__DATAOBJECT__H__ #include #include #include #include #include #include #define ITK_MANUAL_INSTANTIATION #include namespace cpPlugins { namespace Interface { /** */ class cpPlugins_Interface_EXPORT DataObject : public Object { public: typedef DataObject Self; typedef Object Superclass; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; public: itkTypeMacro( DataObject, Object ); public: /* TODO virtual itk::DataObject* GetITKDataObject( ); virtual const itk::DataObject* GetITKDataObject( ) const; virtual vtkDataObject* GetVTKDataObject( ); virtual const vtkDataObject* GetVTKDataObject( ) const; */ Object* GetSource( ); const Object* GetSource( ) const; void SetSource( Object* src ); void DisconnectPipeline( ); protected: DataObject( ); virtual ~DataObject( ); private: // Purposely not implemented DataObject( const Self& ); Self& operator=( const Self& ); protected: itk::DataObject::Pointer m_ITKObject; vtkSmartPointer< vtkDataObject > m_VTKObject; Object::Pointer m_Source; }; } // ecapseman } // ecapseman #endif // __CPPLUGINS__INTERFACE__DATAOBJECT__H__ // eof - $RCSfile$