OpenWalnut  1.5.0dev
Public Member Functions | Private Attributes | List of all members
WHierarchicalTreeFibers Class Reference

Class implements a hierarchical tree and provides helper functions for selection and navigation. More...

#include <WHierarchicalTreeFibers.h>

+ Inheritance diagram for WHierarchicalTreeFibers:
+ Collaboration diagram for WHierarchicalTreeFibers:

Public Member Functions

 WHierarchicalTreeFibers ()
 standard constructor More...
 
 ~WHierarchicalTreeFibers ()
 destructor More...
 
void addLeaf ()
 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...
 
void addCluster (size_t cluster1, size_t cluster2, size_t level, std::vector< size_t > leafes, float customData)
 adds a cluster to the set, it combines 2 already existing clusters More...
 
std::shared_ptr< std::vector< bool > > getOutputBitfield (size_t cluster)
 generates a bitfield where for every leaf in the selected cluster the value is true, false otherwise More...
 
std::shared_ptr< std::vector< bool > > getOutputBitfield (std::vector< size_t >clusters)
 generates a bitfield where for every leaf in the selected cluster the value is true, false otherwise More...
 
std::vector< size_t > getBestClustersFittingRoi (float ratio=0.9, size_t number=1)
 finds clusters that match a given ROI up to a certain percentage More...
 
float getRatio (size_t cluster)
 calculates the ratio of fibers in the roi for a given cluster More...
 
void setRoiBitField (std::shared_ptr< std::vector< bool > > bitfield)
 setter More...
 
- Public Member Functions inherited from WHierarchicalTree
 WHierarchicalTree ()
 standard constructor More...
 
virtual ~WHierarchicalTree ()
 destructor 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...
 

Private Attributes

std::shared_ptr< std::vector< bool > > m_roiSelection
 stores a pointer to the bitfield by the current roi setting More...
 

Additional Inherited Members

- Protected Attributes inherited from WHierarchicalTree
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...
 

Detailed Description

Class implements a hierarchical tree and provides helper functions for selection and navigation.

Definition at line 42 of file WHierarchicalTreeFibers.h.

Constructor & Destructor Documentation

◆ WHierarchicalTreeFibers()

WHierarchicalTreeFibers::WHierarchicalTreeFibers ( )

standard constructor

Definition at line 35 of file WHierarchicalTreeFibers.cpp.

◆ ~WHierarchicalTreeFibers()

WHierarchicalTreeFibers::~WHierarchicalTreeFibers ( )

destructor

Definition at line 40 of file WHierarchicalTreeFibers.cpp.

Member Function Documentation

◆ addCluster()

void WHierarchicalTreeFibers::addCluster ( size_t  cluster1,
size_t  cluster2,
size_t  level,
std::vector< size_t >  leafes,
float  customData 
)

adds a cluster to the set, it combines 2 already existing clusters

Parameters
cluster1first cluster to add
cluster2second cluster to add
levellevel of the new cluster
leafesvector of leafes the new cluster contains
customDatasome arbitrary data stored with the cluster

Definition at line 65 of file WHierarchicalTreeFibers.cpp.

References WHierarchicalTree::m_children, WHierarchicalTree::m_clusterCount, WHierarchicalTree::m_colors, WHierarchicalTree::m_containsLeafes, WHierarchicalTree::m_customData, WHierarchicalTree::m_leafesLocked, WHierarchicalTree::m_level, WHierarchicalTree::m_maxLevel, and WHierarchicalTree::m_parents.

Referenced by WMClusterDisplay::loadTreeAscii().

+ Here is the caller graph for this function:

◆ addLeaf()

void WHierarchicalTreeFibers::addLeaf ( )
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.

Implements WHierarchicalTree.

Definition at line 44 of file WHierarchicalTreeFibers.cpp.

References WHierarchicalTree::m_children, WHierarchicalTree::m_clusterCount, WHierarchicalTree::m_colors, WHierarchicalTree::m_containsLeafes, WHierarchicalTree::m_customData, WHierarchicalTree::m_leafCount, WHierarchicalTree::m_leafesLocked, WHierarchicalTree::m_level, and WHierarchicalTree::m_parents.

Referenced by WMClusterDisplay::loadTreeAscii().

+ Here is the caller graph for this function:

◆ getBestClustersFittingRoi()

std::vector< size_t > WHierarchicalTreeFibers::getBestClustersFittingRoi ( float  ratio = 0.9,
size_t  number = 1 
)

finds clusters that match a given ROI up to a certain percentage

Parameters
ratiovalue of [0,1] of how many leafs have to be in the ROI to activate the cluster
numbernumber of clusters to select, if more than given number matches the ratio criterion only the biggest clusters are returned
Returns
The indices of the chosen clusters.

Definition at line 134 of file WHierarchicalTreeFibers.cpp.

References WHierarchicalTree::getChildren(), WHierarchicalTree::getClusterCount(), WHierarchicalTree::getLevel(), and getRatio().

Referenced by WMClusterDisplay::handleRoiChanged().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getOutputBitfield() [1/2]

std::shared_ptr< std::vector< bool > > WHierarchicalTreeFibers::getOutputBitfield ( size_t  cluster)

generates a bitfield where for every leaf in the selected cluster the value is true, false otherwise

Parameters
cluster
Returns
shared pointer to the bitfield

Definition at line 86 of file WHierarchicalTreeFibers.cpp.

References WHierarchicalTree::m_clusterCount, WHierarchicalTree::m_containsLeafes, and WHierarchicalTree::m_leafCount.

Referenced by WMClusterDisplay::colorClusters(), WMClusterDisplay::handleBiggestClustersChanged(), WMClusterDisplay::handleRoiChanged(), WMClusterDisplay::handleSelectedClusterChanged(), and WMClusterDisplay::widgetClicked().

+ Here is the caller graph for this function:

◆ getOutputBitfield() [2/2]

std::shared_ptr< std::vector< bool > > WHierarchicalTreeFibers::getOutputBitfield ( std::vector< size_t >  clusters)

generates a bitfield where for every leaf in the selected cluster the value is true, false otherwise

Parameters
clusters
Returns
shared pointer to the bitfield

Definition at line 115 of file WHierarchicalTreeFibers.cpp.

References WHierarchicalTree::m_containsLeafes, and WHierarchicalTree::m_leafCount.

◆ getRatio()

float WHierarchicalTreeFibers::getRatio ( size_t  cluster)

calculates the ratio of fibers in the roi for a given cluster

Parameters
cluster
Returns
ratio

Definition at line 190 of file WHierarchicalTreeFibers.cpp.

References WHierarchicalTree::m_containsLeafes, and m_roiSelection.

Referenced by getBestClustersFittingRoi().

+ Here is the caller graph for this function:

◆ setRoiBitField()

void WHierarchicalTreeFibers::setRoiBitField ( std::shared_ptr< std::vector< bool > >  bitfield)
inline

setter

Parameters
bitfield

Definition at line 121 of file WHierarchicalTreeFibers.h.

References m_roiSelection.

Referenced by WMClusterDisplay::moduleMain().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_roiSelection

std::shared_ptr< std::vector<bool> > WHierarchicalTreeFibers::m_roiSelection
private

stores a pointer to the bitfield by the current roi setting

Definition at line 117 of file WHierarchicalTreeFibers.h.

Referenced by getRatio(), and setRoiBitField().


The documentation for this class was generated from the following files: