Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension > Class Template Reference

#include <KdTree.hpp>

Classes

class  BoundaryInformation
 

Public Types

using BoundaryInfoType = BoundaryInformation
 
using DerivedNode = TDerivedNode
 
using SplitAxisType = char
 

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
 
DerivedNodeleftNode ()
 
const DerivedNodeleftNode () const
 
 NodeBase ()
 
 NodeBase (std::size_t idx, const AABB< Dimension > &aabb, unsigned int treeLevel=0)
 
template<typename Derived >
 NodeBase (const NodeBase< Derived, Dimension > &n)
 
template<typename Derived >
 NodeBase (NodeBase< Derived, Dimension > &&n)
 
DerivedNodeparent ()
 
const DerivedNodeparent () const
 
DerivedNoderightNode ()
 
const DerivedNoderightNode () 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::array< DerivedNode *, 2 > m_child {{nullptr,nullptr}}
 
std::size_t m_idx = std::numeric_limits<std::size_t>::max()
 node index More...
 
DerivedNodem_parent = nullptr
 
SplitAxisType m_splitAxis = -1
 -1 indicates leaf node More...
 
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 More...
 

Detailed Description

template<typename TDerivedNode, unsigned int Dimension>
class ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >

Node stuff =======================================================================================

Definition at line 731 of file KdTree.hpp.

Member Typedef Documentation

template<typename TDerivedNode, unsigned int Dimension>
using ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::BoundaryInfoType = BoundaryInformation

Definition at line 779 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
using ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::DerivedNode = TDerivedNode

Definition at line 741 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
using ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::SplitAxisType = char

Definition at line 742 of file KdTree.hpp.

Constructor & Destructor Documentation

template<typename TDerivedNode, unsigned int Dimension>
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::NodeBase ( )
inline

Definition at line 781 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
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.

template<typename TDerivedNode, unsigned int Dimension>
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::~NodeBase ( )
inline

Definition at line 787 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
template<typename Derived >
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.

template<typename TDerivedNode, unsigned int Dimension>
template<typename Derived >
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::NodeBase ( NodeBase< Derived, Dimension > &&  n)
inline

Move from node

Definition at line 802 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::NodeBase ( std::size_t  idx,
const AABB< Dimension > &  aabb,
SplitAxisType  axis,
PREC  splitPos 
)
inlineprotected

Definition at line 887 of file KdTree.hpp.

Member Function Documentation

template<typename TDerivedNode, unsigned int Dimension>
AABB<Dimension>& ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::aabb ( )
inline

Definition at line 833 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
const AABB<Dimension>& ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::aabb ( ) const
inline

Definition at line 836 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::ApproxMVBB_STATIC_ASSERT ( Dimension<=std::numeric_limits< char >  ::max())
private
template<typename TDerivedNode, unsigned int Dimension>
std::size_t ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::getIdx ( ) const
inline

Definition at line 855 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
unsigned int ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::getLevel ( ) const
inline

Definition at line 877 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
SplitAxisType ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::getSplitAxis ( ) const
inline

Definition at line 866 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
PREC ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::getSplitPosition ( ) const
inline

Definition at line 869 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
PREC ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::getSplitRatio ( ) const
inline

Definition at line 872 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
bool ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::hasChildren ( ) const
inline

Definition at line 843 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
bool ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::hasLeftChildren ( ) const
inline

Definition at line 840 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
bool ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::isLeaf ( ) const
inline

Definition at line 847 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
DerivedNode* ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::leftNode ( )
inline

Definition at line 819 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
const DerivedNode* ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::leftNode ( ) const
inline

Definition at line 822 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
DerivedNode* ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::parent ( )
inline

Definition at line 816 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
const DerivedNode* ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::parent ( ) const
inline

Definition at line 817 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
DerivedNode* ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::rightNode ( )
inline

Definition at line 826 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
const DerivedNode* ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::rightNode ( ) const
inline

Definition at line 829 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
void ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::setChilds ( DerivedNode r,
DerivedNode l 
)
inline

Definition at line 811 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
void ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::setIdx ( std::size_t  i)
inline

Definition at line 851 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
void ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::setLevel ( unsigned int  l) const
inline

Definition at line 881 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
void ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::setSplitAxis ( SplitAxisType  splitAxis)
inline

Definition at line 859 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
void ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::setSplitPosition ( PREC  splitPos)
inline

Definition at line 862 of file KdTree.hpp.

Member Data Documentation

template<typename TDerivedNode, unsigned int Dimension>
AABB<Dimension> ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_aabb
protected

Definition at line 893 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
std::array<DerivedNode *,2> ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_child {{nullptr,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 901 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
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.

template<typename TDerivedNode, unsigned int Dimension>
DerivedNode* ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_parent = nullptr
protected

Definition at line 902 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
SplitAxisType ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_splitAxis = -1
protected

-1 indicates leaf node

Definition at line 894 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
PREC ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_splitPosition = 0.0
protected

Definition at line 895 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
unsigned int ApproxMVBB::KdTree::NodeBase< TDerivedNode, Dimension >::m_treeLevel = 0
protected

Definition at line 892 of file KdTree.hpp.

template<typename TDerivedNode, unsigned int Dimension>
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.


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