Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
ApproxMVBB::KdTree::Tree< TTraits > Class Template Reference

#include <KdTree.hpp>

Inheritance diagram for ApproxMVBB::KdTree::Tree< TTraits >:
Inheritance graph
[legend]

Classes

struct  isKNNTraits
 
struct  isKNNTraits< KNNTraits< N, C > >
 
class  KNearestPrioQueue
 
struct  KNNTraits
 
struct  ParentInfo
 

Public Types

using Base = TreeBase< typename TTraits::BaseTraits >
 
using BaseTraits = typename TTraits::BaseTraits
 
using SplitHeuristicType = typename Traits::SplitHeuristicType
 
using Traits = TTraits
 

Public Member Functions

template<bool computeStatistics = true>
void build (const AABB< Dimension > &aabb, std::unique_ptr< NodeDataType > data, unsigned int maxTreeDepth=50, unsigned int maxLeafs=std::numeric_limits< unsigned int >::max())
 
template<bool computeStatistics = true, bool safetyCheck = true>
LeafNeighbourMapType buildLeafNeighbours (PREC minExtent)
 
template<bool computeStatistics = true, bool safetyCheck = true>
LeafNeighbourMapType buildLeafNeighboursAutomatic ()
 
template<typename TKNNTraits >
void getKNearestNeighbours (typename TKNNTraits::PrioQueue &kNearest) const
 
std::tuple< std::size_t, std::size_t, std::size_t, PREC, std::size_t, std::size_t, PREC, PREC, std::size_t, std::size_t, PREC > getStatistics ()
 
std::string getStatisticsString ()
 
template<typename... T>
void initSplitHeuristic (T &&...t)
 
Treeoperator= (const Tree &t)=delete
 
void resetTree ()
 
 Tree ()
 
 Tree (Tree &&tree)
 
 Tree (const Tree &tree)
 
template<typename T >
 Tree (const Tree< T > &tree)
 
template<typename TTree >
 Tree (const TTree &tree)
 
 ~Tree ()
 
- Public Member Functions inherited from ApproxMVBB::KdTree::TreeBase< TTraits::BaseTraits >
void build (NodeType *root, NodeMap &c, NodeToChildMap &links)
 
void cleanUp (T &&...t)
 
void enumerateNodes ()
 
const NodeType * getLeaf (const MatrixBase< Derived > &point) const
 
const NodeType * getLeaf (const std::size_t &leafIndex) const
 
const LeafContainerType & getLeafs ()
 
const NodeType * getLowestCommonAncestor (const NodeType *a, const NodeType *b)
 
const NodeType * getNode (const std::size_t &globalIndex) const
 
const NodeContainerType & getNodes ()
 
const NodeType * getRootNode ()
 
std::tuple< std::size_t, std::size_t > getStatistics ()
 
void resetTree ()
 
 TreeBase ()
 
 TreeBase (TreeBase &&t)
 
 TreeBase (const TreeBase &t)
 
 TreeBase (const TreeBase< T > &t)
 

Private Member Functions

void averageStatistics ()
 
void resetStatistics ()
 
template<typename NeighbourMap >
void safetyCheckNeighbours (const NeighbourMap &n, PREC minExtent)
 

Private Attributes

SplitHeuristicType m_heuristic
 
unsigned int m_maxLeafs = std::numeric_limits<unsigned int>::max()
 
unsigned int m_maxTreeDepth = 50
 
TreeStatistics m_statistics
 

Friends

template<typename T >
class Tree
 
template<typename T >
class TreeSimple
 
class XML
 

Additional Inherited Members

- Protected Member Functions inherited from ApproxMVBB::KdTree::TreeBase< TTraits::BaseTraits >
void copyFrom (const TreeBase< T > &tree)
 
 ~TreeBase ()
 Prohibit the use of this base polymophically. More...
 
- Protected Attributes inherited from ApproxMVBB::KdTree::TreeBase< TTraits::BaseTraits >
NodeContainerType m_leafs
 Only leaf nodes , continously index ordered: leafs[idx]->getIdx() < leafs[idx+1]->getIdx();. More...
 
NodeContainerType m_nodes
 All nodes, continously index ordered, with first element = m_root. More...
 
NodeType * m_root
 Root node, has index 0! More...
 

Detailed Description

template<typename TTraits = TreeTraits<>>
class ApproxMVBB::KdTree::Tree< TTraits >

Standart Class to build a kd-tree

Definition at line 721 of file KdTree.hpp.

Member Typedef Documentation

template<typename TTraits = TreeTraits<>>
using ApproxMVBB::KdTree::Tree< TTraits >::Base = TreeBase<typename TTraits::BaseTraits>

Definition at line 1792 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
using ApproxMVBB::KdTree::Tree< TTraits >::BaseTraits = typename TTraits::BaseTraits

Definition at line 1791 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
using ApproxMVBB::KdTree::Tree< TTraits >::SplitHeuristicType = typename Traits::SplitHeuristicType

Definition at line 1795 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
using ApproxMVBB::KdTree::Tree< TTraits >::Traits = TTraits

Definition at line 1790 of file KdTree.hpp.

Constructor & Destructor Documentation

template<typename TTraits = TreeTraits<>>
ApproxMVBB::KdTree::Tree< TTraits >::Tree ( )
inline

Definition at line 1797 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
ApproxMVBB::KdTree::Tree< TTraits >::~Tree ( )
inline

Definition at line 1798 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
ApproxMVBB::KdTree::Tree< TTraits >::Tree ( Tree< TTraits > &&  tree)
inline

Move constructor

Definition at line 1801 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
ApproxMVBB::KdTree::Tree< TTraits >::Tree ( const Tree< TTraits > &  tree)
inline

Copies the tree

Definition at line 1810 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
template<typename T >
ApproxMVBB::KdTree::Tree< TTraits >::Tree ( const Tree< T > &  tree)
inlineexplicit

Copies the tree with different traits

Definition at line 1817 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
template<typename TTree >
ApproxMVBB::KdTree::Tree< TTraits >::Tree ( const TTree< TTraits > &  tree)
inline

Copies the tree if the underlying NodeType has a function NodeType(const TTree::NodeType & n) This tree needs to be a friend of TTree::NodeType to successfully copy the nodes!

Definition at line 1826 of file KdTree.hpp.

Member Function Documentation

template<typename TTraits = TreeTraits<>>
void ApproxMVBB::KdTree::Tree< TTraits >::averageStatistics ( )
inlineprivate

Definition at line 2351 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
template<bool computeStatistics = true>
void ApproxMVBB::KdTree::Tree< TTraits >::build ( const AABB< Dimension > &  aabb,
std::unique_ptr< NodeDataType >  data,
unsigned int  maxTreeDepth = 50,
unsigned int  maxLeafs = std::numeric_limits<unsigned int>::max() 
)
inline

Builds a new Tree with the SplitHeurstic First node in m_nodes is always root! All following nodes are in breath first order, and continuously numbered and m_nodes[node->getIdx()] == node (index in sync with the list)

Definition at line 1843 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
template<bool computeStatistics = true, bool safetyCheck = true>
LeafNeighbourMapType ApproxMVBB::KdTree::Tree< TTraits >::buildLeafNeighbours ( PREC  minExtent)
inline

Definition at line 1966 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
template<bool computeStatistics = true, bool safetyCheck = true>
LeafNeighbourMapType ApproxMVBB::KdTree::Tree< TTraits >::buildLeafNeighboursAutomatic ( )
inline

Definition at line 1955 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
template<typename TKNNTraits >
void ApproxMVBB::KdTree::Tree< TTraits >::getKNearestNeighbours ( typename TKNNTraits::PrioQueue &  kNearest) const
inline

Definition at line 2158 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
std::tuple<std::size_t, std::size_t, std::size_t, PREC, std::size_t, std::size_t, PREC, PREC,std::size_t,std::size_t,PREC> ApproxMVBB::KdTree::Tree< TTraits >::getStatistics ( )
inline

============================================================================= Returns tuple with values (number of leafs, avg. leaf data size, min. leaf data size, max. leaf data size)

Definition at line 2295 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
std::string ApproxMVBB::KdTree::Tree< TTraits >::getStatisticsString ( )
inline

Definition at line 2311 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
template<typename... T>
void ApproxMVBB::KdTree::Tree< TTraits >::initSplitHeuristic ( T &&...  t)
inline

Definition at line 1949 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
Tree& ApproxMVBB::KdTree::Tree< TTraits >::operator= ( const Tree< TTraits > &  t)
delete
template<typename TTraits = TreeTraits<>>
void ApproxMVBB::KdTree::Tree< TTraits >::resetStatistics ( )
inlineprivate

Definition at line 2347 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
void ApproxMVBB::KdTree::Tree< TTraits >::resetTree ( )
inline

Definition at line 1832 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
template<typename NeighbourMap >
void ApproxMVBB::KdTree::Tree< TTraits >::safetyCheckNeighbours ( const NeighbourMap &  n,
PREC  minExtent 
)
inlineprivate

Safety check for neighbour list

Definition at line 2358 of file KdTree.hpp.

Friends And Related Function Documentation

template<typename TTraits = TreeTraits<>>
template<typename T >
friend class Tree
friend

Definition at line 1783 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
template<typename T >
friend class TreeSimple
friend

Definition at line 1786 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
friend class XML
friend

Definition at line 2334 of file KdTree.hpp.

Member Data Documentation

template<typename TTraits = TreeTraits<>>
SplitHeuristicType ApproxMVBB::KdTree::Tree< TTraits >::m_heuristic
private

Definition at line 2338 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
unsigned int ApproxMVBB::KdTree::Tree< TTraits >::m_maxLeafs = std::numeric_limits<unsigned int>::max()
private

Definition at line 2341 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
unsigned int ApproxMVBB::KdTree::Tree< TTraits >::m_maxTreeDepth = 50
private

Definition at line 2340 of file KdTree.hpp.

template<typename TTraits = TreeTraits<>>
TreeStatistics ApproxMVBB::KdTree::Tree< TTraits >::m_statistics
private

Statistics ========================

Definition at line 2344 of file KdTree.hpp.


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


asr_approx_mvbb
Author(s): Gassner Nikolai
autogenerated on Mon Jun 10 2019 12:38:09