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.