#ifndef __cpPlugins__Pipeline__Widget__h__ #define __cpPlugins__Pipeline__Widget__h__ #include #include // ------------------------------------------------------------------------- namespace cpPlugins { namespace Pipeline { /** */ class cpPlugins_EXPORT Widget : public ProcessObject { public: typedef Widget Self; typedef ProcessObject Superclass; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; public: itkTypeMacro( Widget, ProcessObject ); cpPlugins_Id_Macro( Widget, Object ); public: virtual void AddInteractor( vtkRenderWindowInteractor* i ) override; virtual bool IsInteractive( ) override; virtual void EnabledOn( ); virtual void EnabledOff( ); virtual void Clear( ) = 0; virtual void SetEnabled( bool v ) = 0; virtual bool GetEnabled( ) const = 0; protected: Widget( ); virtual ~Widget( ); private: // Purposely not implemented Widget( const Self& ); Self& operator=( const Self& ); protected: typedef vtkSmartPointer< vtkRenderWindowInteractor > _TInteractor; struct _TInteractorCmp { bool operator()( const _TInteractor& a, const _TInteractor& b ) const { return( a.GetPointer( ) < b.GetPointer( ) ); } }; std::set< _TInteractor, _TInteractorCmp > m_Interactors; }; } // ecapseman } // ecapseman #endif // __cpPlugins__Pipeline__Widget__h__ // eof - $RCSfile$