31 #include <boost/enable_shared_from_this.hpp>
33 #include "WRMBranch.h"
40 class WROIManager:
public boost::enable_shared_from_this< WROIManager >
58 boost::shared_ptr< WRMBranch >
addBranch();
66 void addRoi( osg::ref_ptr< WROI > newRoi );
75 void addRoi( osg::ref_ptr< WROI > newRoi, osg::ref_ptr< WROI > parentRoi );
83 void addRoi( osg::ref_ptr< WROI > newRoi, boost::shared_ptr< WRMBranch > toBranch );
90 void removeRoi( osg::ref_ptr< WROI > roi );
105 boost::shared_ptr< WRMBranch>
getBranch( osg::ref_ptr< WROI > roi );
117 bool dirty(
bool reset =
false );
124 void addAddNotifier( boost::shared_ptr< boost::function<
void( osg::ref_ptr< WROI > ) > > notifier );
131 void removeAddNotifier( boost::shared_ptr< boost::function<
void( osg::ref_ptr< WROI > ) > > notifier );
139 void addRemoveNotifier( boost::shared_ptr< boost::function<
void( osg::ref_ptr< WROI > ) > > notifier );
146 void removeRemoveNotifier( boost::shared_ptr< boost::function<
void( osg::ref_ptr< WROI > ) > > notifier );
153 void addRemoveBranchNotifier( boost::shared_ptr< boost::function<
void( boost::shared_ptr< WRMBranch > ) > > notifier );
184 typedef std::vector< osg::ref_ptr< WROI > >
ROIs;
195 typedef std::vector< boost::shared_ptr< WRMBranch > >
Branches;
218 std::list< boost::shared_ptr< boost::function< void( osg::ref_ptr< WROI > ) > > >
m_addNotifiers;
223 std::list< boost::shared_ptr< boost::function< void( osg::ref_ptr< WROI > ) > > >
m_removeNotifiers;
259 #endif // WROIMANAGER_H