#ifndef __CPPLUGINS__DATAOBJECT__H__ #define __CPPLUGINS__DATAOBJECT__H__ #include #include #include // Some forward declarations // TODO: class vtkProp; namespace cpPlugins { // Some forward declarations class ProcessObject; /** */ class cpPlugins_EXPORT DataObject : public Object { public: typedef DataObject Self; typedef Object Superclass; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; public: itkNewMacro( Self ); itkTypeMacro( DataObject, Object ); cpPlugins_Id_Macro( DataObject, Object ); public: ProcessObject* GetSource( ); const ProcessObject* GetSource( ) const; void SetSource( ProcessObject* src ); void DisconnectFromPipeline( ); // VTK actors vtkProp* GetVTKActor( ); const vtkProp* GetVTKActor( ) const; protected: DataObject( ); virtual ~DataObject( ); virtual void _CreateVTKActor( ) const; private: // Purposely not implemented DataObject( const Self& ); Self& operator=( const Self& ); protected: ProcessObject* m_Source; // TODO: mutable vtkProp* m_Actor; mutable vtkSmartPointer< vtkProp > m_Actor; }; } // ecapseman #endif // __CPPLUGINS__DATAOBJECT__H__ // eof - $RCSfile$