27 #include "../kernel/WKernel.h"
28 #include "WFiberSelector.h"
29 #include "WROIManager.h"
33 m_size( fibers->size() ),
36 boost::shared_ptr< std::vector< float > > verts =
m_fibers->getVertices();
37 m_kdTree = boost::shared_ptr< WKdTree >(
new WKdTree( verts->size() / 3, &( ( *verts )[0] ) ) );
44 = boost::shared_ptr< boost::function< void() > >(
new boost::function< void() >( boost::bind( &
WFiberSelector::setDirty,
this ) ) );
47 boost::shared_ptr< boost::function< void( osg::ref_ptr< WROI > ) > >(
52 boost::shared_ptr< boost::function< void( osg::ref_ptr< WROI > ) > >(
57 boost::shared_ptr< boost::function< void( boost::shared_ptr< WRMBranch > ) > >(
58 new boost::function<
void( boost::shared_ptr< WRMBranch > ) > (
62 for(
size_t i = 0; i < rois.size(); ++i )
65 ( rois[i] )->getProperties()->getProperty(
"Dirty" )->toPropBool()->set(
true );
77 for( std::list< boost::shared_ptr< WSelectorBranch > >::iterator iter =
m_branches.begin(); iter !=
m_branches.end(); ++iter )
79 std::list< boost::shared_ptr< WSelectorRoi > > rois = ( *iter )->getROIs();
80 for( std::list< boost::shared_ptr< WSelectorRoi > >::iterator roiIter = rois.begin(); roiIter != rois.end(); ++roiIter )
91 boost::shared_ptr< WSelectorBranch > branch;
93 for( std::list< boost::shared_ptr< WSelectorBranch > >::iterator iter =
m_branches.begin(); iter !=
m_branches.end(); ++iter )
102 branch = boost::shared_ptr<WSelectorBranch>(
109 branch->addRoi( sroi );
118 for( std::list< boost::shared_ptr< WSelectorBranch > >::iterator iter =
m_branches.begin(); iter !=
m_branches.end(); ++iter )
120 ( *iter )->removeRoi( roi );
122 if( (*iter )->empty() )
133 for( std::list< boost::shared_ptr< WSelectorBranch > >::iterator iter =
m_branches.begin(); iter !=
m_branches.end(); ++iter )
135 if( branch == ( *iter )->getBranch() )
146 for( std::list< boost::shared_ptr< WSelectorBranch > >::iterator iter =
m_branches.begin(); iter !=
m_branches.end(); ++iter )
168 for( std::list< boost::shared_ptr< WSelectorBranch > >::iterator iter =
m_branches.begin(); iter !=
m_branches.end(); ++iter )
170 boost::shared_ptr< std::vector< bool > > bf = ( *iter )->getBitField();
172 for(
size_t i = 0; i <
m_size; ++i )
174 ( *m_workerBitfield )[i] = ( *m_workerBitfield )[i] | ( *bf )[i];
179 for(
size_t i = 0; i <
m_size; ++i )
181 ( *m_outputBitfield )[i] = ( *m_workerBitfield )[i];