MCPcopy Create free account
hub / github.com/LAStools/LAStools / overlap_rectangles

Method overlap_rectangles

LASlib/src/laskdtree.cpp:328–365  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

326}
327
328void LASkdtreeRectangles::overlap_rectangles(LASkdtreeRectanglesNode* node, I32 plane, LASkdtreeRectangle rectangle, my_index_set* overlap_set)
329{
330 if (node->list)
331 {
332 my_rectangle_list::iterator list_element = node->list->begin();
333 while (TRUE)
334 {
335 if (list_element == node->list->end())
336 {
337 break;
338 }
339
340 LASkdtreeRectangle overlap_candidate = (*list_element);
341
342 if (rectangle.overlap(overlap_candidate))
343 {
344 overlap_set->insert(overlap_candidate.idx);
345 }
346 list_element++;
347 }
348 }
349 else
350 {
351 // maybe recurse left
352
353 if (rectangle.min[plane] < node->split)
354 {
355 overlap_rectangles(node->left, (plane + 1) % 2, rectangle, overlap_set);
356 }
357
358 // maybe recurse right
359
360 if (node->split <= rectangle.max[plane])
361 {
362 overlap_rectangles(node->right, (plane + 1) % 2, rectangle, overlap_set);
363 }
364 }
365}
366
367void LASkdtreeRectangles::overlap_rectangles(LASkdtreeRectanglesNode* node, I32 plane, LASkdtreePoint point, my_index_set* overlap_set)
368{

Callers

nothing calls this directly

Calls 4

overlapMethod · 0.80
beginMethod · 0.45
endMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected