diff options
Diffstat (limited to 'boost/geometry/index/detail/rtree/rstar/redistribute_elements.hpp')
-rw-r--r-- | boost/geometry/index/detail/rtree/rstar/redistribute_elements.hpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/boost/geometry/index/detail/rtree/rstar/redistribute_elements.hpp b/boost/geometry/index/detail/rtree/rstar/redistribute_elements.hpp index db08ef3f7c..9dcb3db382 100644 --- a/boost/geometry/index/detail/rtree/rstar/redistribute_elements.hpp +++ b/boost/geometry/index/detail/rtree/rstar/redistribute_elements.hpp @@ -2,7 +2,7 @@ // // R-tree R*-tree split algorithm implementation // -// Copyright (c) 2011-2017 Adam Wulkiewicz, Lodz, Poland. +// Copyright (c) 2011-2022 Adam Wulkiewicz, Lodz, Poland. // // This file was modified by Oracle on 2019-2020. // Modifications copyright (c) 2019-2020 Oracle and/or its affiliates. @@ -55,11 +55,10 @@ public: bool operator()(Element const& e1, Element const& e2) const { - bounded_view_type bounded_ind1(rtree::element_indexable(e1, m_tr), m_strategy); - bounded_view_type bounded_ind2(rtree::element_indexable(e2, m_tr), m_strategy); - - return geometry::get<Corner, AxisIndex>(bounded_ind1) - < geometry::get<Corner, AxisIndex>(bounded_ind2); + indexable_type const& ind1 = rtree::element_indexable(e1, m_tr); + indexable_type const& ind2 = rtree::element_indexable(e2, m_tr); + return geometry::get<Corner, AxisIndex>(bounded_view_type(ind1, m_strategy)) + < geometry::get<Corner, AxisIndex>(bounded_view_type(ind2, m_strategy)); } private: @@ -133,7 +132,7 @@ struct choose_split_axis_and_index_for_corner // copy elements Elements elements_copy(elements); // MAY THROW, STRONG (alloc, copy) - + size_t const index_first = parameters.get_min_elements(); size_t const index_last = parameters.get_max_elements() - parameters.get_min_elements() + 2; @@ -168,7 +167,7 @@ struct choose_split_axis_and_index_for_corner translator, strategy); Box box2 = rtree::elements_box<Box>(elements_copy.begin() + i, elements_copy.end(), translator, strategy); - + sum_of_margins += index::detail::comparable_margin(box1) + index::detail::comparable_margin(box2); content_type ovl = index::detail::intersection_content(box1, box2, strategy); @@ -428,7 +427,7 @@ struct redistribute_elements<MembersHolder, rstar_tag> { typedef typename rtree::elements_type<Node>::type elements_type; typedef typename elements_type::value_type element_type; - + elements_type & elements1 = rtree::elements(n); elements_type & elements2 = rtree::elements(second_node); |