28 #include "WSelectorBranch.h"
32 m_size( fibers->size() ),
36 m_bitField = boost::shared_ptr< std::vector<bool> >(
new std::vector<bool>(
m_size, false ) );
39 boost::shared_ptr< boost::function< void() > >(
new boost::function< void() >( boost::bind( &
WSelectorBranch::setDirty,
this ) ) );
43 boost::shared_ptr< boost::function< void() > >(
new boost::function< void() >( boost::bind( &
WSelectorBranch::setDirty,
this ) ) );
51 for( std::list< boost::shared_ptr< WSelectorRoi > >::iterator roiIter =
m_rois.begin(); roiIter !=
m_rois.end(); ++roiIter )
71 if(
m_branch->getProperties()->getProperty(
"Bundle color" )->toPropColor()->changed() )
79 for( std::list< boost::shared_ptr< WSelectorRoi > >::iterator iter =
m_rois.begin(); iter !=
m_rois.end(); ++iter )
81 if( ( *iter )->getRoi() == roi )
92 bool atLeastOneActive =
false;
94 for( std::list< boost::shared_ptr< WSelectorRoi > >::iterator iter =
m_rois.begin(); iter !=
m_rois.end(); ++iter )
96 if( ( *iter )->getRoi()->active() )
98 atLeastOneActive =
true;
102 if( atLeastOneActive )
106 for( std::list< boost::shared_ptr< WSelectorRoi > >::iterator iter =
m_rois.begin(); iter !=
m_rois.end(); ++iter )
108 if( ( *iter )->getRoi()->active() )
110 boost::shared_ptr< std::vector<bool> > bf = ( *iter )->getBitField();
111 bool isnot = ( *iter )->getRoi()->isNot();
114 for(
size_t i = 0 ; i <
m_size ; ++i )
116 ( *m_workerBitfield )[i] = ( *m_workerBitfield )[i] & ( *bf )[i];
121 for(
size_t i = 0 ; i <
m_size ; ++i )
123 ( *m_workerBitfield )[i] = ( *m_workerBitfield )[i] & !( *bf )[i];
131 for(
size_t i = 0 ; i <
m_size ; ++i )
133 ( *m_workerBitfield )[i] = !( *m_workerBitfield )[i];
147 WColor color =
m_branch->getProperties()->getProperty(
"Bundle color" )->toPropColor()->get(
true );
149 boost::shared_ptr<std::vector<float> > array =
m_fibers->getColorScheme(
"Custom Color" )->getColor();
151 boost::shared_ptr< std::vector< size_t > > startIndexes =
m_fibers->getLineStartIndexes();
152 boost::shared_ptr< std::vector< size_t > > pointsPerLine =
m_fibers->getLineLengths();
154 for(
size_t i = 0; i <
m_size; ++i )
158 size_t idx = ( *startIndexes )[i] * 3;
159 for(
size_t k = 0; k < ( *pointsPerLine )[i]; ++k )
161 ( *array )[idx++] = color[0];
162 ( *array )[idx++] = color[1];
163 ( *array )[idx++] = color[2];