diff options
Diffstat (limited to 'boost/geometry/index/detail/rtree/visitors/insert.hpp')
-rw-r--r-- | boost/geometry/index/detail/rtree/visitors/insert.hpp | 20 |
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) |