#include <KdTree.hpp>
Classes | |
class | BoundaryInformation |
Public Member Functions | |
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 |
m_aabb (std::move(n.m_aabb)) | |
m_child (n.child) | |
m_parent (n.parent) | |
m_splitAxis (n.m_splitAxis) | |
m_splitPosition (n.m_splitPosition) | |
m_treeLevel (n.m_treeLevel) | |
NodeBase () | |
NodeBase (std::size_t idx, const AABB< Dimension > &aabb, unsigned int treeLevel=0) | |
template<typename Derived > | |
NodeBase (const 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 () | |
Protected Member Functions | |
NodeBase (std::size_t idx, const AABB< Dimension > &aabb, SplitAxisType axis, PREC splitPos) | |
Protected Attributes | |
AABB< Dimension > | m_aabb |
std::size_t | m_idx = std::numeric_limits<std::size_t>::max() |
node index | |
DerivedNode * | m_parent = nullptr |
SplitAxisType | m_splitAxis = -1 |
PREC | m_splitPosition = 0.0 |
unsigned int | m_treeLevel = 0 |
Private Member Functions | |
ApproxMVBB_STATIC_ASSERT (Dimension<=std::numeric_limits< char >::max()) template< typename D | |
Private Attributes | |
unsigned int friend class | NodeBase |
all classes are friends (even the ones with other dimension, which results in compilation error |
Node stuff =======================================================================================
Definition at line 731 of file KdTree.hpp.
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::NodeBase | ( | ) | [inline] |
Definition at line 781 of file KdTree.hpp.
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::NodeBase | ( | std::size_t | idx, |
const AABB< Dimension > & | aabb, | ||
unsigned int | treeLevel = 0 |
||
) | [inline] |
Definition at line 783 of file KdTree.hpp.
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::~NodeBase | ( | ) | [inline] |
Definition at line 787 of file KdTree.hpp.
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::NodeBase | ( | const NodeBase< Derived, Dimension > & | n | ) | [inline] |
Copy from node Childs are not deep copied (since the node does not own the childs) Values of the child pointers n
are left uninitialized. The tree class is responsible for copying the childs accordingly.
Definition at line 795 of file KdTree.hpp.
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::NodeBase | ( | std::size_t | idx, |
const AABB< Dimension > & | aabb, | ||
SplitAxisType | axis, | ||
PREC | splitPos | ||
) | [inline, protected] |
Definition at line 887 of file KdTree.hpp.
AABB<Dimension>& ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::aabb | ( | ) | [inline] |
Definition at line 833 of file KdTree.hpp.
const AABB<Dimension>& ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::aabb | ( | ) | const [inline] |
Definition at line 836 of file KdTree.hpp.
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::ApproxMVBB_STATIC_ASSERT | ( | Dimension<=std::numeric_limits< char >:: | max() | ) | [private] |
std::size_t ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::getIdx | ( | ) | const [inline] |
Definition at line 855 of file KdTree.hpp.
unsigned int ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::getLevel | ( | ) | const [inline] |
Definition at line 877 of file KdTree.hpp.
SplitAxisType ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::getSplitAxis | ( | ) | const [inline] |
Definition at line 866 of file KdTree.hpp.
PREC ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::getSplitPosition | ( | ) | const [inline] |
Definition at line 869 of file KdTree.hpp.
PREC ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::getSplitRatio | ( | ) | const [inline] |
Definition at line 872 of file KdTree.hpp.
bool ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::hasChildren | ( | ) | const [inline] |
Definition at line 843 of file KdTree.hpp.
bool ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::hasLeftChildren | ( | ) | const [inline] |
Definition at line 840 of file KdTree.hpp.
bool ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::isLeaf | ( | ) | const [inline] |
Definition at line 847 of file KdTree.hpp.
DerivedNode* ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::leftNode | ( | ) | [inline] |
Definition at line 819 of file KdTree.hpp.
const DerivedNode* ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::leftNode | ( | ) | const [inline] |
Definition at line 822 of file KdTree.hpp.
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_aabb | ( | std:: | moven.m_aabb | ) |
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_child | ( | n. | child | ) |
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_parent | ( | n. | parent | ) | [inline] |
Definition at line 805 of file KdTree.hpp.
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_splitAxis | ( | n. | m_splitAxis | ) |
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_splitPosition | ( | n. | m_splitPosition | ) |
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_treeLevel | ( | n. | m_treeLevel | ) |
DerivedNode* ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::parent | ( | ) | [inline] |
Definition at line 816 of file KdTree.hpp.
const DerivedNode* ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::parent | ( | ) | const [inline] |
Definition at line 817 of file KdTree.hpp.
DerivedNode* ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::rightNode | ( | ) | [inline] |
Definition at line 826 of file KdTree.hpp.
const DerivedNode* ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::rightNode | ( | ) | const [inline] |
Definition at line 829 of file KdTree.hpp.
void ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::setChilds | ( | DerivedNode * | r, |
DerivedNode * | l | ||
) | [inline] |
Definition at line 811 of file KdTree.hpp.
void ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::setIdx | ( | std::size_t | i | ) | [inline] |
Definition at line 851 of file KdTree.hpp.
void ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::setLevel | ( | unsigned int | l | ) | const [inline] |
Definition at line 881 of file KdTree.hpp.
void ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::setSplitAxis | ( | SplitAxisType | splitAxis | ) | [inline] |
Definition at line 859 of file KdTree.hpp.
void ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::setSplitPosition | ( | PREC | splitPos | ) | [inline] |
Definition at line 862 of file KdTree.hpp.
AABB<Dimension> ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_aabb [protected] |
Definition at line 893 of file KdTree.hpp.
std::size_t ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_idx = std::numeric_limits<std::size_t>::max() [protected] |
node index
Definition at line 891 of file KdTree.hpp.
DerivedNode* ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_parent = nullptr [protected] |
Child Nodes The child nodes, these objects are not owned by this node and if it is not a leaf, both pointers are valid!
Definition at line 902 of file KdTree.hpp.
SplitAxisType ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_splitAxis = -1 [protected] |
-1 indicates leaf node
Definition at line 894 of file KdTree.hpp.
PREC ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_splitPosition = 0.0 [protected] |
Definition at line 895 of file KdTree.hpp.
unsigned int ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_treeLevel = 0 [protected] |
Definition at line 892 of file KdTree.hpp.
unsigned int friend class ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::NodeBase [private] |
all classes are friends (even the ones with other dimension, which results in compilation error
Definition at line 737 of file KdTree.hpp.