#include <KdTree.hpp>
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) |
Tree & | operator= (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... | |
Standart Class to build a kd-tree
Definition at line 721 of file KdTree.hpp.
using ApproxMVBB::KdTree::Tree< TTraits >::Base = TreeBase<typename TTraits::BaseTraits> |
Definition at line 1792 of file KdTree.hpp.
using ApproxMVBB::KdTree::Tree< TTraits >::BaseTraits = typename TTraits::BaseTraits |
Definition at line 1791 of file KdTree.hpp.
using ApproxMVBB::KdTree::Tree< TTraits >::SplitHeuristicType = typename Traits::SplitHeuristicType |
Definition at line 1795 of file KdTree.hpp.
using ApproxMVBB::KdTree::Tree< TTraits >::Traits = TTraits |
Definition at line 1790 of file KdTree.hpp.
|
inline |
Definition at line 1797 of file KdTree.hpp.
|
inline |
Definition at line 1798 of file KdTree.hpp.
|
inline |
Move constructor
Definition at line 1801 of file KdTree.hpp.
|
inline |
Copies the tree
Definition at line 1810 of file KdTree.hpp.
|
inlineexplicit |
Copies the tree with different traits
Definition at line 1817 of file KdTree.hpp.
|
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.
|
inlineprivate |
Definition at line 2351 of file KdTree.hpp.
|
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.
|
inline |
Definition at line 1966 of file KdTree.hpp.
|
inline |
Definition at line 1955 of file KdTree.hpp.
|
inline |
Definition at line 2158 of file KdTree.hpp.
|
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.
|
inline |
Definition at line 2311 of file KdTree.hpp.
|
inline |
Definition at line 1949 of file KdTree.hpp.
|
delete |
|
inlineprivate |
Definition at line 2347 of file KdTree.hpp.
|
inline |
Definition at line 1832 of file KdTree.hpp.
|
inlineprivate |
Safety check for neighbour list
Definition at line 2358 of file KdTree.hpp.
Definition at line 1783 of file KdTree.hpp.
Definition at line 1786 of file KdTree.hpp.
|
friend |
Definition at line 2334 of file KdTree.hpp.
|
private |
Definition at line 2338 of file KdTree.hpp.
|
private |
Definition at line 2341 of file KdTree.hpp.
|
private |
Definition at line 2340 of file KdTree.hpp.
|
private |
Statistics ========================
Definition at line 2344 of file KdTree.hpp.