OpenWalnut
1.5.0dev
|
base class for hierarchical tree implementations More...
#include <WHierarchicalTree.h>
Public Member Functions | |
WHierarchicalTree () | |
standard constructor More... | |
virtual | ~WHierarchicalTree () |
destructor More... | |
virtual void | addLeaf ()=0 |
A leaf is at the very bottom of the tree, it represents a single fiber or voxel, for several purposes a leaf also counts as a cluster. More... | |
size_t | getLeafCount () const |
getter More... | |
size_t | getClusterCount () const |
getter More... | |
size_t | getMaxLevel () const |
getter More... | |
size_t | getLevel (size_t cluster) const |
getter More... | |
size_t | getParent (size_t cluster) const |
getter More... | |
float | getCustomData (size_t cluster) const |
getter More... | |
void | setColor (WColor color, size_t cluster) |
setter sets the color for a single cluster More... | |
WColor | getColor (size_t cluster) const |
getter More... | |
std::pair< size_t, size_t > | getChildren (size_t cluster) const |
getter More... | |
std::vector< size_t > | getLeafesForCluster (size_t cluster) const |
getter More... | |
size_t | size (size_t cluster) const |
getter More... | |
bool | isLeaf (size_t cluster) const |
checks if a cluster is a leaf or a cluster More... | |
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 More... | |
std::vector< size_t > | findXBiggestClusters (size_t cluster, size_t number=10) const |
finds the X biggest clusters for a given cluster More... | |
void | colorCluster (size_t cluster, WColor color) |
sets the color for a selected cluster and all sub clusters More... | |
Protected Attributes | |
size_t | m_clusterCount |
overall number of cluster, counts both leafes ( clusters of size one ) and real clusters More... | |
size_t | m_leafCount |
number of leaf nodes More... | |
size_t | m_maxLevel |
the maximum level, naturally the level of the root node More... | |
bool | m_leafesLocked |
to enforce valid datastructures there will be no leaf with an id higher than a cluster, thus when the first cluster is inserted, no leafes may be added More... | |
std::vector< size_t > | m_level |
vector that stores the level of each cluster, the level is the maximum of the levels of the child clusters +1 More... | |
std::vector< size_t > | m_parents |
vector that stores the parent cluster for each cluster More... | |
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 More... | |
std::vector< float > | m_customData |
custom data for each cluster, this may some energy or similarity level generated by the clustering algorithm or something completely different More... | |
std::vector< WColor > | m_colors |
a color value for each cluster More... | |
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 selection of leafes for nodes at higher levels More... | |
base class for hierarchical tree implementations
Definition at line 41 of file WHierarchicalTree.h.
WHierarchicalTree::WHierarchicalTree | ( | ) |
standard constructor
Definition at line 30 of file WHierarchicalTree.cpp.
|
virtual |
destructor
Definition at line 38 of file WHierarchicalTree.cpp.
|
pure virtual |
A leaf is at the very bottom of the tree, it represents a single fiber or voxel, for several purposes a leaf also counts as a cluster.
Implemented in WHierarchicalTreeVoxels, and WHierarchicalTreeFibers.
void WHierarchicalTree::colorCluster | ( | size_t | cluster, |
WColor | color | ||
) |
sets the color for a selected cluster and all sub clusters
cluster | |
color |
Definition at line 182 of file WHierarchicalTree.cpp.
References m_children, m_colors, m_containsLeafes, and size().
Referenced by WMClusterDisplay::colorClusters(), WMClusterDisplay::handleBiggestClustersChanged(), WMClusterDisplay::handleRoiChanged(), WMClusterDisplayVoxels::updateAll(), and WMClusterDisplayVoxels::updateWidgets().
std::vector< size_t > WHierarchicalTree::downXLevelsFromTop | ( | size_t | level, |
bool | hideOutliers = false |
||
) | const |
returns a number of clusters at a certain level down from top cluster
level | how many levels to go down |
hideOutliers | true if clusters of size 1 should be ignored |
Definition at line 125 of file WHierarchicalTree.cpp.
References m_children, m_clusterCount, m_containsLeafes, m_maxLevel, and size().
Referenced by WMClusterDisplayVoxels::updateAll().
std::vector< size_t > WHierarchicalTree::findXBiggestClusters | ( | size_t | cluster, |
size_t | number = 10 |
||
) | const |
finds the X biggest clusters for a given cluster
cluster | |
number | of sub clusters |
Definition at line 42 of file WHierarchicalTree.cpp.
References m_children, m_containsLeafes, and size().
Referenced by WMClusterDisplay::handleBiggestClustersChanged(), and WMClusterDisplayVoxels::updateAll().
|
inline |
getter
cluster |
Definition at line 256 of file WHierarchicalTree.h.
References m_children, and m_level.
Referenced by WMClusterDisplay::colorClusters(), WHierarchicalTreeFibers::getBestClustersFittingRoi(), WDendrogramGeode::getClickClusterRecursive(), WDendrogramGeode::getClickClusterRecursive2(), WMClusterDisplay::handleOffsetChanged(), WMClusterDisplayVoxels::initColors(), WDendrogramGeode::layoutLevel(), WDendrogramGeode::layoutValue(), and WMClusterDisplay::updateWidgets().
|
inline |
getter
Definition at line 228 of file WHierarchicalTree.h.
References m_clusterCount.
Referenced by WMClusterDisplay::colorClusters(), WHierarchicalTreeFibers::getBestClustersFittingRoi(), WMClusterDisplay::handleBiggestClustersChanged(), WMClusterDisplay::handleRoiChanged(), WMClusterDisplayVoxels::loadClustering(), WMClusterDisplay::loadTreeAscii(), WMClusterDisplay::moduleMain(), WMClusterDisplayVoxels::setPropertyBoundaries(), WMClusterDisplayVoxels::updateAll(), WMClusterDisplay::updateWidgets(), and WMClusterDisplayVoxels::updateWidgets().
|
inline |
getter
cluster |
Definition at line 284 of file WHierarchicalTree.h.
References m_colors.
Referenced by WDendrogramGeode::layoutLevel(), and WDendrogramGeode::layoutValue().
|
inline |
getter
cluster |
Definition at line 269 of file WHierarchicalTree.h.
References m_customData.
Referenced by WMClusterDisplay::createLabel(), WHierarchicalTreeVoxels::findClustersForValue(), WDendrogramGeode::getClickClusterRecursive2(), WDendrogramGeode::layoutValue(), compValue::operator()(), and WMClusterDisplayVoxels::setButtonLabels().
|
inline |
getter
Definition at line 223 of file WHierarchicalTree.h.
References m_leafCount.
Referenced by WMClusterDisplay::loadTreeAscii(), WMClusterDisplay::moduleMain(), and WMClusterDisplayVoxels::setPropertyBoundaries().
|
inline |
getter
cluster |
Definition at line 294 of file WHierarchicalTree.h.
References m_containsLeafes.
Referenced by WMClusterDisplay::colorClusters(), WHierarchicalTreeVoxels::getVoxelsForCluster(), WMClusterDisplay::handleBiggestClustersChanged(), WMClusterDisplay::handleRoiChanged(), and size().
|
inline |
getter
cluster |
Definition at line 238 of file WHierarchicalTree.h.
References m_level.
Referenced by WMClusterDisplay::colorClusters(), WDendrogramGeode::create(), WHierarchicalTreeFibers::getBestClustersFittingRoi(), WDendrogramGeode::getClickClusterRecursive(), WDendrogramGeode::getClickClusterRecursive2(), WDendrogramGeode::getClickedCluster(), WMClusterDisplay::handleOffsetChanged(), WMClusterDisplay::handleSelectedClusterChanged(), WDendrogramGeode::layoutLevel(), WDendrogramGeode::layoutValue(), WMClusterDisplay::moduleMain(), WMClusterDisplayVoxels::setButtonLabels(), WMClusterDisplay::updateWidgets(), and WMClusterDisplay::widgetClicked().
|
inline |
getter
Definition at line 233 of file WHierarchicalTree.h.
References m_maxLevel.
Referenced by WMClusterDisplay::handleSelectedClusterChanged(), WMClusterDisplay::moduleMain(), WMClusterDisplayVoxels::setPropertyBoundaries(), WMClusterDisplay::updateWidgets(), and WMClusterDisplay::widgetClicked().
|
inline |
getter
cluster | the cluster in question |
Definition at line 243 of file WHierarchicalTree.h.
References m_level, m_maxLevel, and m_parents.
Referenced by WMClusterDisplay::handleOffsetChanged(), and WMClusterDisplay::updateWidgets().
|
inline |
checks if a cluster is a leaf or a cluster
cluster |
Definition at line 289 of file WHierarchicalTree.h.
References m_leafCount.
|
inline |
setter sets the color for a single cluster
color | |
cluster |
Definition at line 279 of file WHierarchicalTree.h.
References m_colors.
|
inline |
getter
cluster |
Definition at line 274 of file WHierarchicalTree.h.
References getLeafesForCluster().
Referenced by WHierarchicalTreeVoxels::addCluster(), colorCluster(), WMClusterDisplay::colorClusters(), WDendrogramGeode::create(), WMClusterDisplay::createLabel(), downXLevelsFromTop(), WHierarchicalTreeVoxels::findClustersForBranchLength(), WHierarchicalTreeVoxels::findClustersForValue(), findXBiggestClusters(), WDendrogramGeode::getClickClusterRecursive(), WDendrogramGeode::getClickClusterRecursive2(), WDendrogramGeode::getClickedCluster(), WMClusterDisplay::handleBiggestClustersChanged(), WMClusterDisplay::handleOffsetChanged(), WMClusterDisplay::handleSelectedClusterChanged(), WMClusterDisplayVoxels::initColors(), WDendrogramGeode::layoutLevel(), WDendrogramGeode::layoutValue(), compSize::operator()(), and WMClusterDisplayVoxels::setButtonLabels().
|
protected |
vector that stores the 2 children of each cluster, contains an empty pair for leafes
Definition at line 201 of file WHierarchicalTree.h.
Referenced by WHierarchicalTreeVoxels::addCluster(), WHierarchicalTreeFibers::addCluster(), WHierarchicalTreeFibers::addLeaf(), WHierarchicalTreeVoxels::addLeaf(), colorCluster(), downXLevelsFromTop(), WHierarchicalTreeVoxels::findClustersForBranchLength(), WHierarchicalTreeVoxels::findClustersForValue(), findXBiggestClusters(), WHierarchicalTreeVoxels::findXClusters(), and getChildren().
|
protected |
overall number of cluster, counts both leafes ( clusters of size one ) and real clusters
Definition at line 170 of file WHierarchicalTree.h.
Referenced by WHierarchicalTreeVoxels::addCluster(), WHierarchicalTreeFibers::addCluster(), WHierarchicalTreeFibers::addLeaf(), WHierarchicalTreeVoxels::addLeaf(), downXLevelsFromTop(), WHierarchicalTreeVoxels::findClustersForBranchLength(), WHierarchicalTreeVoxels::findClustersForValue(), getClusterCount(), and WHierarchicalTreeFibers::getOutputBitfield().
|
protected |
a color value for each cluster
Definition at line 212 of file WHierarchicalTree.h.
Referenced by WHierarchicalTreeVoxels::addCluster(), WHierarchicalTreeFibers::addCluster(), WHierarchicalTreeFibers::addLeaf(), WHierarchicalTreeVoxels::addLeaf(), colorCluster(), getColor(), and setColor().
|
protected |
vector that stores the leaf id's for each cluster, this is quite memory intensive but speeds up selection of leafes for nodes at higher levels
Definition at line 218 of file WHierarchicalTree.h.
Referenced by WHierarchicalTreeVoxels::addCluster(), WHierarchicalTreeFibers::addCluster(), WHierarchicalTreeFibers::addLeaf(), WHierarchicalTreeVoxels::addLeaf(), colorCluster(), downXLevelsFromTop(), WHierarchicalTreeVoxels::findClustersForBranchLength(), WHierarchicalTreeVoxels::findClustersForValue(), findXBiggestClusters(), getLeafesForCluster(), WHierarchicalTreeFibers::getOutputBitfield(), and WHierarchicalTreeFibers::getRatio().
|
protected |
custom data for each cluster, this may some energy or similarity level generated by the clustering algorithm or something completely different
Definition at line 207 of file WHierarchicalTree.h.
Referenced by WHierarchicalTreeVoxels::addCluster(), WHierarchicalTreeFibers::addCluster(), WHierarchicalTreeFibers::addLeaf(), WHierarchicalTreeVoxels::addLeaf(), WHierarchicalTreeVoxels::findClustersForBranchLength(), WHierarchicalTreeVoxels::findXClusters(), and getCustomData().
|
protected |
number of leaf nodes
Definition at line 175 of file WHierarchicalTree.h.
Referenced by WHierarchicalTreeFibers::addLeaf(), WHierarchicalTreeVoxels::addLeaf(), WHierarchicalTreeVoxels::findClustersForBranchLength(), getLeafCount(), WHierarchicalTreeFibers::getOutputBitfield(), and isLeaf().
|
protected |
to enforce valid datastructures there will be no leaf with an id higher than a cluster, thus when the first cluster is inserted, no leafes may be added
Definition at line 186 of file WHierarchicalTree.h.
Referenced by WHierarchicalTreeVoxels::addCluster(), WHierarchicalTreeFibers::addCluster(), WHierarchicalTreeFibers::addLeaf(), and WHierarchicalTreeVoxels::addLeaf().
|
protected |
vector that stores the level of each cluster, the level is the maximum of the levels of the child clusters +1
Definition at line 191 of file WHierarchicalTree.h.
Referenced by WHierarchicalTreeVoxels::addCluster(), WHierarchicalTreeFibers::addCluster(), WHierarchicalTreeFibers::addLeaf(), WHierarchicalTreeVoxels::addLeaf(), getChildren(), getLevel(), and getParent().
|
protected |
the maximum level, naturally the level of the root node
Definition at line 180 of file WHierarchicalTree.h.
Referenced by WHierarchicalTreeVoxels::addCluster(), WHierarchicalTreeFibers::addCluster(), downXLevelsFromTop(), getMaxLevel(), and getParent().
|
protected |
vector that stores the parent cluster for each cluster
Definition at line 196 of file WHierarchicalTree.h.
Referenced by WHierarchicalTreeVoxels::addCluster(), WHierarchicalTreeFibers::addCluster(), WHierarchicalTreeFibers::addLeaf(), WHierarchicalTreeVoxels::addLeaf(), WHierarchicalTreeVoxels::findClustersForBranchLength(), and getParent().