28 #include "../common/WAssert.h"
29 #include "../common/WLogger.h"
34 m_size( size ), m_pointArray( pointArray )
36 WAssert( size > 2,
"The current kD-tree implementation works only with at least 3 vertices." );
40 wlog::debug(
"KdTree" ) <<
" Start building KdTree";
42 for(
int i = 0; i < size; ++i )
45 int root = ( size - 1 ) / 2;
48 int rootLeft = ( root - 1 ) / 2;
51 int rootRight = ( size + root ) / 2;
90 int div = ( left + right ) / 2;
93 buildTree( left, div - 1, ( axis + 1 ) % 3 );
94 buildTree( div + 1, right, ( axis + 1 ) % 3 );
98 WThreadedRunner(), m_tree( tree ), m_pointArray( pointArray ), m_left( left ), m_right( right ), m_axis( axis )
113 int div = ( left + right ) / 2;
116 buildTree( left, div - 1, ( axis + 1 ) % 3 );
117 buildTree( div + 1, right, ( axis + 1 ) % 3 );