#include <KdTree.hpp>
Classes | |
struct | isKNNTraits< KNNTraits< N, C > > |
class | KNearestPrioQueue |
struct | KNNTraits |
struct | ParentInfo |
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) |
Tree & | operator= (const Tree &t) |
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 () | |
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 | |
class | Tree |
class | TreeSimple |
class | XML |
Standart Class to build a kd-tree
Definition at line 1779 of file KdTree.hpp.
ApproxMVBB::KdTree::Tree< TTraits >::Tree | ( | ) | [inline] |
Definition at line 1797 of file KdTree.hpp.
ApproxMVBB::KdTree::Tree< TTraits >::~Tree | ( | ) | [inline] |
Definition at line 1798 of file KdTree.hpp.
ApproxMVBB::KdTree::Tree< TTraits >::Tree | ( | Tree< TTraits > && | tree | ) | [inline] |
Move constructor
Definition at line 1801 of file KdTree.hpp.
ApproxMVBB::KdTree::Tree< TTraits >::Tree | ( | const Tree< TTraits > & | tree | ) | [inline] |
Copies the tree
Definition at line 1810 of file KdTree.hpp.
ApproxMVBB::KdTree::Tree< TTraits >::Tree | ( | const Tree< T > & | tree | ) | [inline, explicit] |
Copies the tree with different traits
Definition at line 1817 of file KdTree.hpp.
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.
void ApproxMVBB::KdTree::Tree< TTraits >::averageStatistics | ( | ) | [inline, private] |
Definition at line 2351 of file KdTree.hpp.
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.
LeafNeighbourMapType ApproxMVBB::KdTree::Tree< TTraits >::buildLeafNeighbours | ( | PREC | minExtent | ) | [inline] |
Definition at line 1966 of file KdTree.hpp.
LeafNeighbourMapType ApproxMVBB::KdTree::Tree< TTraits >::buildLeafNeighboursAutomatic | ( | ) | [inline] |
Definition at line 1955 of file KdTree.hpp.
void ApproxMVBB::KdTree::Tree< TTraits >::getKNearestNeighbours | ( | typename TKNNTraits::PrioQueue & | kNearest | ) | const [inline] |
Definition at line 2158 of file KdTree.hpp.
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)
Reimplemented from ApproxMVBB::KdTree::TreeBase< TTraits::BaseTraits >.
Definition at line 2295 of file KdTree.hpp.
std::string ApproxMVBB::KdTree::Tree< TTraits >::getStatisticsString | ( | ) | [inline] |
Definition at line 2311 of file KdTree.hpp.
void ApproxMVBB::KdTree::Tree< TTraits >::initSplitHeuristic | ( | T &&... | t | ) | [inline] |
Definition at line 1949 of file KdTree.hpp.
Tree& ApproxMVBB::KdTree::Tree< TTraits >::operator= | ( | const Tree< TTraits > & | t | ) |
void ApproxMVBB::KdTree::Tree< TTraits >::resetStatistics | ( | ) | [inline, private] |
Definition at line 2347 of file KdTree.hpp.
void ApproxMVBB::KdTree::Tree< TTraits >::resetTree | ( | ) | [inline] |
Reimplemented from ApproxMVBB::KdTree::TreeBase< TTraits::BaseTraits >.
Definition at line 1832 of file KdTree.hpp.
void ApproxMVBB::KdTree::Tree< TTraits >::safetyCheckNeighbours | ( | const NeighbourMap & | n, |
PREC | minExtent | ||
) | [inline, private] |
Safety check for neighbour list
Definition at line 2358 of file KdTree.hpp.
friend class Tree [friend] |
Definition at line 1783 of file KdTree.hpp.
friend class TreeSimple [friend] |
Definition at line 1786 of file KdTree.hpp.
friend class XML [friend] |
Reimplemented from ApproxMVBB::KdTree::TreeBase< TTraits::BaseTraits >.
Definition at line 2334 of file KdTree.hpp.
SplitHeuristicType ApproxMVBB::KdTree::Tree< TTraits >::m_heuristic [private] |
Definition at line 2338 of file KdTree.hpp.
unsigned int ApproxMVBB::KdTree::Tree< TTraits >::m_maxLeafs = std::numeric_limits<unsigned int>::max() [private] |
Definition at line 2341 of file KdTree.hpp.
unsigned int ApproxMVBB::KdTree::Tree< TTraits >::m_maxTreeDepth = 50 [private] |
Definition at line 2340 of file KdTree.hpp.
TreeStatistics ApproxMVBB::KdTree::Tree< TTraits >::m_statistics [private] |
Statistics ========================
Definition at line 2344 of file KdTree.hpp.