@@ -166,7 +166,6 @@ namespace geode
166166 template < typename ACTION >
167167 void closest_element_box_recursive ( const Point< dimension >& query,
168168 index_t & nearest_box,
169- Point< dimension >& nearest_point,
170169 double & distance,
171170 index_t node_index,
172171 index_t element_begin,
@@ -274,23 +273,19 @@ namespace geode
274273
275274 template < index_t dimension >
276275 template < typename EvalDistance >
277- std::tuple< index_t , Point< dimension >, double >
278- AABBTree< dimension >::closest_element_box(
279- const Point< dimension >& query, const EvalDistance& action ) const
276+ std::tuple< index_t , double > AABBTree< dimension >::closest_element_box(
277+ const Point< dimension >& query, const EvalDistance& action ) const
280278 {
281279 if ( nb_bboxes () == 0 )
282280 {
283- return std::make_tuple ( NO_ID, query, 0 );
281+ return std::make_tuple ( NO_ID, 0 );
284282 }
285283 auto nearest_box = impl_->closest_element_box_hint ( query );
286- double distance;
287- Point< dimension > nearest_point;
288- std::tie ( distance, nearest_point ) = action ( query, nearest_box );
289-
290- impl_->closest_element_box_recursive ( query, nearest_box, nearest_point,
291- distance, Impl::ROOT_INDEX, 0 , nb_bboxes (), action );
284+ auto distance = action ( query, nearest_box );
285+ impl_->closest_element_box_recursive ( query, nearest_box, distance,
286+ Impl::ROOT_INDEX, 0 , nb_bboxes (), action );
292287 OPENGEODE_ASSERT ( nearest_box != NO_ID, " No box found" );
293- return std::make_tuple ( nearest_box, nearest_point, distance );
288+ return std::make_tuple ( nearest_box, distance );
294289 }
295290
296291 template < index_t dimension >
@@ -390,7 +385,6 @@ namespace geode
390385 void AABBTree< dimension >::Impl::closest_element_box_recursive(
391386 const Point< dimension >& query,
392387 index_t & nearest_box,
393- Point< dimension >& nearest_point,
394388 double & distance,
395389 index_t node_index,
396390 index_t box_begin,
@@ -407,13 +401,10 @@ namespace geode
407401 {
408402 const auto cur_box = mapping_morton ( box_begin );
409403 Point< dimension > cur_nearest_point;
410- double cur_distance;
411- std::tie ( cur_distance, cur_nearest_point ) =
412- action ( query, cur_box );
404+ const auto cur_distance = action ( query, cur_box );
413405 if ( cur_distance < distance )
414406 {
415407 nearest_box = cur_box;
416- nearest_point = cur_nearest_point;
417408 distance = cur_distance;
418409 }
419410 return ;
@@ -431,30 +422,26 @@ namespace geode
431422 {
432423 if ( distance_left < distance )
433424 {
434- closest_element_box_recursive ( query, nearest_box,
435- nearest_point, distance, it.child_left , box_begin,
436- it.middle_box , action );
425+ closest_element_box_recursive ( query, nearest_box, distance,
426+ it.child_left , box_begin, it.middle_box , action );
437427 }
438428 if ( distance_right < distance )
439429 {
440- closest_element_box_recursive ( query, nearest_box,
441- nearest_point, distance, it.child_right , it.middle_box ,
442- box_end, action );
430+ closest_element_box_recursive ( query, nearest_box, distance,
431+ it.child_right , it.middle_box , box_end, action );
443432 }
444433 }
445434 else
446435 {
447436 if ( distance_right < distance )
448437 {
449- closest_element_box_recursive ( query, nearest_box,
450- nearest_point, distance, it.child_right , it.middle_box ,
451- box_end, action );
438+ closest_element_box_recursive ( query, nearest_box, distance,
439+ it.child_right , it.middle_box , box_end, action );
452440 }
453441 if ( distance_left < distance )
454442 {
455- closest_element_box_recursive ( query, nearest_box,
456- nearest_point, distance, it.child_left , box_begin,
457- it.middle_box , action );
443+ closest_element_box_recursive ( query, nearest_box, distance,
444+ it.child_left , box_begin, it.middle_box , action );
458445 }
459446 }
460447 }
0 commit comments