32 #include "WHierarchicalTreeFibers.h"
55 std::pair<size_t, size_t>tmp2;
58 m_colors.push_back( WColor( 0.3, 0.3, 0.3, 1.0 ) );
74 m_colors.push_back( WColor( 0.3, 0.3, 0.3, 1.0 ) );
76 std::pair<size_t, size_t>childs( cluster1, cluster2 );
87 boost::shared_ptr< std::vector< bool > > bf;
91 bf = boost::shared_ptr< std::vector< bool > >(
new std::vector< bool >(
m_leafCount, false ) );
92 ( *bf )[cluster] =
true;
101 bf = boost::shared_ptr< std::vector< bool > >(
new std::vector< bool >(
m_leafCount, false ) );
104 for(
size_t i = 0; i < fibers.size(); ++i )
106 ( *bf )[fibers[i]] =
true;
116 boost::shared_ptr< std::vector< bool > > bf;
119 bf = boost::shared_ptr< std::vector< bool > >(
new std::vector< bool >(
m_leafCount, false ) );
121 for(
size_t k = 0; k < clusters.size(); ++k )
123 size_t cluster = clusters[k];
125 for(
size_t i = 0; i < fibers.size(); ++i )
127 ( *bf )[fibers[i]] =
true;
139 std::list<size_t>candidateList;
141 std::queue<size_t>worklist;
144 while( !worklist.empty() )
146 size_t current = worklist.front();
151 candidateList.push_back( current );
157 std::pair<size_t, size_t> children =
getChildren( current );
158 if(
getLevel( children.first ) > 0 )
160 worklist.push( children.first );
162 if(
getLevel( children.second ) > 0 )
164 worklist.push( children.second );
169 candidateList.sort(
compSize(
this ) );
171 std::vector<size_t>returnList;
173 std::list<size_t>::iterator it;
174 for( it = candidateList.begin(); it != candidateList.end(); ++it )
176 size_t current = *it;
177 returnList.push_back( current );
193 size_t countFibersInCluster = fibersInCluster.size();
194 size_t fibersFromClusterActive = 0;
196 for(
size_t i = 0; i < countFibersInCluster; ++i )
200 ++fibersFromClusterActive;
203 return static_cast<float>( fibersFromClusterActive ) / static_cast<float>( countFibersInCluster );