The LBKdTree class implements a left-balanced array-based index kd-tree. Left-Balanced: minimum memory Array-Based: Good for GPU - Usage. More...
#include <LBKdTree.hpp>
| Public Member Functions | |
| void | generateKdTree (LBPointArray< float > &vertices) | 
| boost::shared_ptr< LBPointArray< unsigned char > > | getKdTreeSplits () | 
| boost::shared_ptr< LBPointArray< float > > | getKdTreeValues () | 
| LBKdTree (LBPointArray< float > &vertices, int num_threads=8) | |
| Public.  More... | |
| ~LBKdTree () | |
| Private Member Functions | |
| void | generateKdTreeArray (LBPointArray< float > &V, LBPointArray< unsigned int > *sorted_indices, int max_dim) | 
| Private.  More... | |
| Static Private Member Functions | |
| static void | fillCriticalIndices (const LBPointArray< float > &V, LBPointArray< unsigned int > &sorted_indices, unsigned int current_dim, float split_value, unsigned int split_index, std::list< unsigned int > &critical_indices_left, std::list< unsigned int > &critical_indices_right) | 
| static void | fillCriticalIndicesSet (const LBPointArray< float > &V, LBPointArray< unsigned int > &sorted_indices, unsigned int current_dim, float split_value, unsigned int split_index, std::unordered_set< unsigned int > &critical_indices_left, std::unordered_set< unsigned int > &critical_indices_right) | 
| static void | generateKdTreeRecursive (int id, LBPointArray< float > &V, LBPointArray< unsigned int > *sorted_indices, int current_dim, int max_dim, LBPointArray< float > *values, LBPointArray< unsigned char > *splits, int size, int max_tree_depth, int position, int current_depth) | 
| static void | test (int id, LBPointArray< float > *sorted_indices) | 
| Private Attributes | |
| boost::shared_ptr< LBPointArray< unsigned char > > | m_splits | 
| boost::shared_ptr< LBPointArray< float > > | m_values | 
| Static Private Attributes | |
| static ctpl::thread_pool * | pool | 
| static int | st_depth_threads = 3 | 
| static int | st_num_threads = 8 | 
The LBKdTree class implements a left-balanced array-based index kd-tree. Left-Balanced: minimum memory Array-Based: Good for GPU - Usage.
Definition at line 51 of file LBKdTree.hpp.
| lvr2::LBKdTree::LBKdTree | ( | LBPointArray< float > & | vertices, | 
| int | num_threads = 8 | ||
| ) | 
Public.
Definition at line 45 of file LBKdTree.cpp.
| lvr2::LBKdTree::~LBKdTree | ( | ) | 
Definition at line 54 of file LBKdTree.cpp.
| 
 | staticprivate | 
Definition at line 154 of file LBKdTree.cpp.
| 
 | staticprivate | 
Definition at line 183 of file LBKdTree.cpp.
| void lvr2::LBKdTree::generateKdTree | ( | LBPointArray< float > & | vertices | ) | 
Definition at line 61 of file LBKdTree.cpp.
| 
 | private | 
Private.
Definition at line 97 of file LBKdTree.cpp.
| 
 | staticprivate | 
split sorted_indices
Definition at line 213 of file LBKdTree.cpp.
| boost::shared_ptr< LBPointArray< unsigned char > > lvr2::LBKdTree::getKdTreeSplits | ( | ) | 
Definition at line 91 of file LBKdTree.cpp.
| boost::shared_ptr< LBPointArray< float > > lvr2::LBKdTree::getKdTreeValues | ( | ) | 
Definition at line 87 of file LBKdTree.cpp.
| 
 | staticprivate | 
| 
 | private | 
Definition at line 73 of file LBKdTree.hpp.
| 
 | private | 
Definition at line 70 of file LBKdTree.hpp.
| 
 | staticprivate | 
Definition at line 80 of file LBKdTree.hpp.
| 
 | staticprivate | 
Definition at line 78 of file LBKdTree.hpp.
| 
 | staticprivate | 
Definition at line 77 of file LBKdTree.hpp.