28 #include "WHierarchicalTree.h"
34 m_leafesLocked( false )
52 std::list<size_t>worklist;
53 worklist.push_back( cluster );
55 while( worklist.size() < number )
57 size_t current = worklist.front();
63 worklist.push_back( left );
64 worklist.push_back( right );
68 worklist.push_back( current );
79 size_t current = worklist.front();
85 size_t last = worklist.back();
90 worklist.push_back( left );
95 last = worklist.back();
100 worklist.pop_front();
102 if( worklist.size() == number )
106 worklist.push_back( right );
113 std::vector<size_t>returnVector;
114 std::list<size_t>::iterator it;
115 for( it = worklist.begin(); it != worklist.end(); ++it )
117 size_t current = *it;
119 returnVector.push_back( current );
132 std::vector< size_t > returnVector;
134 std::list< size_t > worklist;
137 for(
size_t i = 0; i < level; ++i )
139 std::list<size_t>newChildList;
140 while( !worklist.empty() )
142 size_t current = worklist.front();
143 worklist.pop_front();
153 newChildList.push_back( left );
157 newChildList.push_back( right );
162 newChildList.push_back( left );
163 newChildList.push_back( right );
167 worklist = newChildList;
172 std::list<size_t>::iterator it;
173 for( it = worklist.begin(); it != worklist.end(); ++it )
175 size_t current = *it;
176 returnVector.push_back( current );
size_t size(size_t cluster) const
getter
std::vector< WColor > m_colors
a color value for each cluster
size_t m_clusterCount
overall number of cluster, counts both leafes ( clusters of size one ) and real clusters
std::vector< std::pair< size_t, size_t > > m_children
vector that stores the 2 children of each cluster, contains an empty pair for leafes
std::vector< size_t > downXLevelsFromTop(size_t level, bool hideOutliers=false) const
returns a number of clusters at a certain level down from top cluster
void colorCluster(size_t cluster, WColor color)
sets the color for a selected cluster and all sub clusters
size_t m_maxLevel
the maximum level, naturally the level of the root node
std::vector< size_t > findXBiggestClusters(size_t cluster, size_t number=10) const
finds the X biggest clusters for a given cluster
virtual ~WHierarchicalTree()
destructor
std::vector< std::vector< size_t > > m_containsLeafes
vector that stores the leaf id's for each cluster, this is quite memory intensive but speeds up selec...
WHierarchicalTree()
standard constructor
implements a compare operator for clusters, depending on leaf count