#include <KdTree.hpp>
Public Types | |
using | Base = NodeBase< Node< TTraits >, TTraits::Dimension > |
using | Traits = TTraits |
Public Types inherited from ApproxMVBB::KdTree::NodeBase< Node< TTraits >, TTraits::Dimension > | |
using | BoundaryInfoType = BoundaryInformation |
using | DerivedNode = Node< TTraits > |
using | SplitAxisType = char |
Public Member Functions | |
void | cleanUp (bool data=true) |
NodeDataType * | data () |
const NodeDataType * | data () const |
const BoundaryInfoType & | getBoundaries () const |
BoundaryInfoType & | getBoundaries () |
template<typename NeighbourIdxMap > | |
void | getNeighbourLeafsIdx (NeighbourIdxMap &neigbourIdx, PREC minExtent) |
Node (std::size_t idx, const AABB< Dimension > &aabb, NodeDataType *data, unsigned int treeLevel=0) | |
template<typename Traits > | |
Node (const Node< Traits > &n) | |
Node (Node &&n) | |
void | setBoundaryInfo (const BoundaryInfoType &b) |
std::size_t | size () |
template<typename TSplitHeuristic > | |
bool | split (TSplitHeuristic &s, std::size_t startIdx=0) |
~Node () | |
Public Member Functions inherited from ApproxMVBB::KdTree::NodeBase< Node< TTraits >, TTraits::Dimension > | |
AABB< Dimension > & | aabb () |
const AABB< Dimension > & | aabb () const |
std::size_t | getIdx () const |
unsigned int | getLevel () const |
SplitAxisType | getSplitAxis () const |
PREC | getSplitPosition () const |
PREC | getSplitRatio () const |
bool | hasChildren () const |
bool | hasLeftChildren () const |
bool | isLeaf () const |
DerivedNode * | leftNode () |
const DerivedNode * | leftNode () const |
NodeBase () | |
NodeBase (std::size_t idx, const AABB< Dimension > &aabb, unsigned int treeLevel=0) | |
NodeBase (const NodeBase< Derived, Dimension > &n) | |
NodeBase (NodeBase< Derived, Dimension > &&n) | |
DerivedNode * | parent () |
const DerivedNode * | parent () const |
DerivedNode * | rightNode () |
const DerivedNode * | rightNode () const |
void | setChilds (DerivedNode *r, DerivedNode *l) |
void | setIdx (std::size_t i) |
void | setLevel (unsigned int l) const |
void | setSplitAxis (SplitAxisType splitAxis) |
void | setSplitPosition (PREC splitPos) |
~NodeBase () | |
Private Attributes | |
BoundaryInfoType | m_bound |
NodeDataType * | m_data = nullptr |
Friends | |
template<typename T > | |
class | Node |
template<typename T , typename PD > | |
class | NodeSimple |
template<typename T > | |
class | Tree |
template<typename T > | |
class | TreeBase |
Additional Inherited Members | |
Protected Member Functions inherited from ApproxMVBB::KdTree::NodeBase< Node< TTraits >, TTraits::Dimension > | |
NodeBase (std::size_t idx, const AABB< Dimension > &aabb, SplitAxisType axis, PREC splitPos) | |
Protected Attributes inherited from ApproxMVBB::KdTree::NodeBase< Node< TTraits >, TTraits::Dimension > | |
AABB< Dimension > | m_aabb |
std::array< DerivedNode *, 2 > | m_child |
std::size_t | m_idx |
node index More... | |
DerivedNode * | m_parent |
SplitAxisType | m_splitAxis |
-1 indicates leaf node More... | |
PREC | m_splitPosition |
unsigned int | m_treeLevel |
Forward declaration
Definition at line 906 of file KdTree.hpp.
using ApproxMVBB::KdTree::Node< TTraits >::Base = NodeBase<Node<TTraits>,TTraits::Dimension> |
Definition at line 1020 of file KdTree.hpp.
using ApproxMVBB::KdTree::Node< TTraits >::Traits = TTraits |
Definition at line 1019 of file KdTree.hpp.
|
inline |
Definition at line 1050 of file KdTree.hpp.
|
inline |
Definition at line 1054 of file KdTree.hpp.
|
inline |
Copy from node childs are not deep copied (since the node does not own the childs) the child pointers have the same values as the node n
. The tree class is responsible for copying the childs accordingly.
Definition at line 1064 of file KdTree.hpp.
|
inline |
Move from node
Definition at line 1071 of file KdTree.hpp.
|
inline |
Definition at line 1232 of file KdTree.hpp.
|
inline |
Definition at line 1084 of file KdTree.hpp.
|
inline |
Definition at line 1087 of file KdTree.hpp.
|
inline |
Definition at line 1077 of file KdTree.hpp.
|
inline |
Definition at line 1078 of file KdTree.hpp.
|
inline |
Definition at line 1141 of file KdTree.hpp.
|
inline |
Definition at line 1080 of file KdTree.hpp.
|
inline |
Definition at line 1239 of file KdTree.hpp.
|
inline |
Splits the node into two new nodes by the splitting position The ownership of the left and right nodes is the caller of this function! If startIdx
, which specifies the start numbering for the left child , right child is startIdx+1, is zero then we number according to a complete binary tree, left = 2*m_idx +1 and right 2*m_idx + 2
Definition at line 1097 of file KdTree.hpp.
Node Friends
Definition at line 1039 of file KdTree.hpp.
Definition at line 1041 of file KdTree.hpp.
Tree Access
Definition at line 1033 of file KdTree.hpp.
Definition at line 1035 of file KdTree.hpp.
|
private |
Boundary information which is empty for non-leaf nodes Pointer which point to the subtrees min/max for each dimension
Definition at line 1250 of file KdTree.hpp.
|
private |
Definition at line 1245 of file KdTree.hpp.