31 #include <boost/enable_shared_from_this.hpp>
33 #include "WRMBranch.h"
35 #include "WExportKernel.h"
40 class OWKERNEL_EXPORT
WROIManager:
public boost::enable_shared_from_this< WROIManager >
59 void addRoi( osg::ref_ptr< WROI > newRoi );
68 void addRoi( osg::ref_ptr< WROI > newRoi, osg::ref_ptr< WROI > parentRoi );
75 void removeRoi( osg::ref_ptr< WROI > roi );
82 void removeBranch( osg::ref_ptr< WROI > roi );
90 boost::shared_ptr< WRMBranch> getBranch( osg::ref_ptr< WROI > roi );
102 bool dirty(
bool reset =
false );
109 void addAddNotifier( boost::shared_ptr< boost::function<
void( osg::ref_ptr< WROI > ) > > notifier );
116 void removeAddNotifier( boost::shared_ptr< boost::function<
void( osg::ref_ptr< WROI > ) > > notifier );
124 void addRemoveNotifier( boost::shared_ptr< boost::function<
void( osg::ref_ptr< WROI > ) > > notifier );
131 void removeRemoveNotifier( boost::shared_ptr< boost::function<
void( osg::ref_ptr< WROI > ) > > notifier );
138 void addRemoveBranchNotifier( boost::shared_ptr< boost::function<
void( boost::shared_ptr< WRMBranch > ) > > notifier );
145 void removeRemoveBranchNotifier( boost::shared_ptr< boost::function<
void( boost::shared_ptr< WRMBranch > ) > > notifier );
151 void setSelectedRoi( osg::ref_ptr< WROI > roi );
158 osg::ref_ptr< WROI > getSelectedRoi();
164 boost::shared_ptr< WProperties > getProperties();
170 std::vector< osg::ref_ptr< WROI > > getRois();
186 std::list< boost::shared_ptr< boost::function< void( osg::ref_ptr< WROI > ) > > > m_addNotifiers;
191 std::list< boost::shared_ptr< boost::function< void( osg::ref_ptr< WROI > ) > > > m_removeNotifiers;
196 std::list< boost::shared_ptr< boost::function< void( boost::shared_ptr< WRMBranch > ) > > > m_removeBranchNotifiers;
227 #endif // WROIMANAGER_H