28 #ifndef __LBKDTREE_HPP 29 #define __LBKDTREE_HPP 39 #include <unordered_set> 41 #include <boost/shared_ptr.hpp> 70 boost::shared_ptr<LBPointArray<float> >
m_values;
73 boost::shared_ptr<LBPointArray<unsigned char> >
m_splits;
84 unsigned int current_dim,
85 float split_value,
unsigned int split_index,
86 std::list<unsigned int>& critical_indices_left,
87 std::list<unsigned int>& critical_indices_right);
91 unsigned int current_dim,
92 float split_value,
unsigned int split_index,
93 std::unordered_set<unsigned int>& critical_indices_left,
94 std::unordered_set<unsigned int>& critical_indices_right);
100 int size,
int max_tree_depth,
int position,
int current_depth);
109 #endif // !__LBKDTREE_HPP 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 ctpl::thread_pool * pool
boost::shared_ptr< LBPointArray< unsigned char > > getKdTreeSplits()
boost::shared_ptr< LBPointArray< float > > m_values
void generateKdTree(LBPointArray< float > &vertices)
static int st_num_threads
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 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 int st_depth_threads
void generateKdTreeArray(LBPointArray< float > &V, LBPointArray< unsigned int > *sorted_indices, int max_dim)
Private.
boost::shared_ptr< LBPointArray< float > > getKdTreeValues()
boost::shared_ptr< LBPointArray< unsigned char > > m_splits
LBKdTree(LBPointArray< float > &vertices, int num_threads=8)
Public.
static void test(int id, LBPointArray< float > *sorted_indices)
The LBKdTree class implements a left-balanced array-based index kd-tree. Left-Balanced: minimum memor...