28 #include "../common/WAssert.h"
30 #include "../graphicsEngine/WGraphicsEngine.h"
32 #include "WROIManager.h"
47 boost::shared_ptr< WRMBranch > newBranch = boost::shared_ptr< WRMBranch >(
new WRMBranch( shared_from_this() ) );
51 newBranch->addRoi( newRoi );
53 for( std::list< boost::shared_ptr< boost::function<
void( osg::ref_ptr< WROI > ) > > >::iterator iter =
m_addNotifiers.begin();
63 boost::shared_ptr< WRMBranch > branch;
64 for( std::list< boost::shared_ptr< WRMBranch > >::iterator iter =
m_branches.begin(); iter !=
m_branches.end(); ++iter )
66 if( ( *iter ).get()->contains( parentRoi ) )
72 branch->addRoi( newRoi );
74 for( std::list< boost::shared_ptr< boost::function<
void( osg::ref_ptr< WROI > ) > > >::iterator iter =
m_addNotifiers.begin();
85 for( std::list< boost::shared_ptr< WRMBranch > >::iterator iter =
m_branches.begin(); iter !=
m_branches.end(); ++iter )
87 ( *iter )->removeRoi( roi );
89 if( ( *iter )->empty() )
91 for( std::list< boost::shared_ptr< boost::function<
void( boost::shared_ptr< WRMBranch > ) > > >::iterator iter2
104 for( std::list< boost::shared_ptr< boost::function<
void( osg::ref_ptr< WROI > ) > > >::iterator iter
115 for( std::list< boost::shared_ptr< WRMBranch > >::iterator iter =
m_branches.begin(); iter !=
m_branches.end(); ++iter )
117 if( roi == ( *iter )->getFirstRoi() )
119 ( *iter )->removeAllRois();
122 if( ( *iter )->empty() )
124 for( std::list< boost::shared_ptr< boost::function<
void( boost::shared_ptr< WRMBranch > ) > > >::iterator iter2
129 ( **iter2 )( *iter );
140 boost::shared_ptr< WRMBranch> branch;
142 for( std::list< boost::shared_ptr< WRMBranch > >::iterator iter =
m_branches.begin(); iter !=
m_branches.end(); ++iter )
144 if( ( *iter )->contains( roi ) )
159 boost::unique_lock< boost::shared_mutex > lock;
167 boost::unique_lock< boost::shared_mutex > lock;
169 std::list< boost::shared_ptr< boost::function< void( osg::ref_ptr< WROI > ) > > >::iterator it;
180 boost::unique_lock< boost::shared_mutex > lock;
188 boost::unique_lock< boost::shared_mutex > lock;
190 std::list< boost::shared_ptr< boost::function< void( osg::ref_ptr< WROI > ) > > >::iterator it;
201 boost::unique_lock< boost::shared_mutex > lock;
209 boost::unique_lock< boost::shared_mutex > lock;
211 std::list< boost::shared_ptr< boost::function< void( boost::shared_ptr< WRMBranch > ) > > >::iterator it;
232 std::vector< osg::ref_ptr< WROI > > returnVec;
234 for( std::list< boost::shared_ptr< WRMBranch > >::iterator iter =
m_branches.begin(); iter !=
m_branches.end(); ++iter )
236 ( *iter )->getRois( returnVec );