summaryrefslogtreecommitdiff
path: root/boost/geometry/index/detail/rtree/visitors/insert.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/geometry/index/detail/rtree/visitors/insert.hpp')
-rw-r--r--boost/geometry/index/detail/rtree/visitors/insert.hpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/boost/geometry/index/detail/rtree/visitors/insert.hpp b/boost/geometry/index/detail/rtree/visitors/insert.hpp
index 87d5bbbcca..3c9501f370 100644
--- a/boost/geometry/index/detail/rtree/visitors/insert.hpp
+++ b/boost/geometry/index/detail/rtree/visitors/insert.hpp
@@ -4,6 +4,10 @@
//
// Copyright (c) 2011-2015 Adam Wulkiewicz, Lodz, Poland.
//
+// This file was modified by Oracle on 2019.
+// Modifications copyright (c) 2019 Oracle and/or its affiliates.
+// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
+//
// Use, modification and distribution is subject to the Boost Software License,
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
@@ -16,6 +20,7 @@
#include <boost/geometry/algorithms/detail/expand_by_epsilon.hpp>
#include <boost/geometry/util/condition.hpp>
+#include <boost/geometry/index/detail/algorithms/bounds.hpp>
#include <boost/geometry/index/detail/algorithms/content.hpp>
namespace boost { namespace geometry { namespace index {
@@ -43,7 +48,7 @@ public:
template <typename Indexable>
static inline size_t apply(internal_node & n,
Indexable const& indexable,
- parameters_type const& /*parameters*/,
+ parameters_type const& parameters,
size_t /*node_relative_level*/)
{
children_type & children = rtree::elements(n);
@@ -65,7 +70,8 @@ public:
// expanded child node's box
Box box_exp(ch_i.first);
- geometry::expand(box_exp, indexable);
+ index::detail::expand(box_exp, indexable,
+ index::detail::get_strategy(parameters));
// areas difference
content_type content = index::detail::content(box_exp);
@@ -274,7 +280,9 @@ protected:
// NOTE: This is actually only needed because conditionally the bounding
// object may be expanded below. Otherwise the indexable could be
// directly used instead
- index::detail::bounds(rtree::element_indexable(m_element, m_translator), m_element_bounds);
+ index::detail::bounds(rtree::element_indexable(m_element, m_translator),
+ m_element_bounds,
+ index::detail::get_strategy(m_parameters));
#ifdef BOOST_GEOMETRY_INDEX_EXPERIMENTAL_ENLARGE_BY_EPSILON
// Enlarge it in case if it's not bounding geometry type.
@@ -300,10 +308,10 @@ protected:
apply(n, rtree::element_indexable(m_element, m_translator), m_parameters, m_leafs_level - m_traverse_data.current_level);
// expand the node to contain value
- geometry::expand(
+ index::detail::expand(
rtree::elements(n)[choosen_node_index].first,
- m_element_bounds
- /*rtree::element_indexable(m_element, m_translator)*/);
+ m_element_bounds,
+ index::detail::get_strategy(m_parameters));
// next traversing step
traverse_apply_visitor(visitor, n, choosen_node_index); // MAY THROW (V, E: alloc, copy, N:alloc)