30 #include "../kernel/WKernel.h"
31 #include "WFiberSelector.h"
32 #include "WROIManager.h"
36 m_size( fibers->size() ),
39 boost::shared_ptr< std::vector< float > > verts =
m_fibers->getVertices();
40 m_kdTree = boost::shared_ptr< WKdTree >(
new WKdTree( verts->size() / 3, &( ( *verts )[0] ) ) );
47 = boost::shared_ptr< boost::function< void() > >(
new boost::function< void() >( boost::bind( &
WFiberSelector::setDirty,
this ) ) );
50 boost::shared_ptr< boost::function< void( osg::ref_ptr< WROI > ) > >(
55 boost::shared_ptr< boost::function< void( osg::ref_ptr< WROI > ) > >(
60 boost::shared_ptr< boost::function< void( boost::shared_ptr< WRMBranch > ) > >(
61 new boost::function<
void( boost::shared_ptr< WRMBranch > ) > (
65 for(
size_t i = 0; i < rois.size(); ++i )
68 ( rois[i] )->getProperties()->getProperty(
"Dirty" )->toPropBool()->set(
true );
80 for( std::list< boost::shared_ptr< WSelectorBranch > >::iterator iter =
m_branches.begin(); iter !=
m_branches.end(); ++iter )
82 std::list< boost::shared_ptr< WSelectorRoi > > rois = ( *iter )->getROIs();
83 for( std::list< boost::shared_ptr< WSelectorRoi > >::iterator roiIter = rois.begin(); roiIter != rois.end(); ++roiIter )
94 boost::shared_ptr< WSelectorBranch > branch;
96 for( std::list< boost::shared_ptr< WSelectorBranch > >::iterator iter =
m_branches.begin(); iter !=
m_branches.end(); ++iter )
105 branch = boost::shared_ptr<WSelectorBranch>(
112 branch->addRoi( sroi );
121 for( std::list< boost::shared_ptr< WSelectorBranch > >::iterator iter =
m_branches.begin(); iter !=
m_branches.end(); ++iter )
123 ( *iter )->removeRoi( roi );
125 if( (*iter )->empty() )
136 for( std::list< boost::shared_ptr< WSelectorBranch > >::iterator iter =
m_branches.begin(); iter !=
m_branches.end(); ++iter )
138 if( branch == ( *iter )->getBranch() )
149 for( std::list< boost::shared_ptr< WSelectorBranch > >::iterator iter =
m_branches.begin(); iter !=
m_branches.end(); ++iter )
171 for( std::list< boost::shared_ptr< WSelectorBranch > >::iterator iter =
m_branches.begin(); iter !=
m_branches.end(); ++iter )
173 boost::shared_ptr< std::vector< bool > > bf = ( *iter )->getBitField();
175 for(
size_t i = 0; i <
m_size; ++i )
177 ( *m_workerBitfield )[i] = ( *m_workerBitfield )[i] | ( *bf )[i];
182 for(
size_t i = 0; i <
m_size; ++i )
184 ( *m_outputBitfield )[i] = ( *m_workerBitfield )[i];