summaryrefslogtreecommitdiff
path: root/boost/geometry/index/detail/rtree/rstar/redistribute_elements.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/geometry/index/detail/rtree/rstar/redistribute_elements.hpp')
-rw-r--r--boost/geometry/index/detail/rtree/rstar/redistribute_elements.hpp17
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);