summaryrefslogtreecommitdiff
path: root/boost/geometry/index/detail/rtree/rstar/insert.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/geometry/index/detail/rtree/rstar/insert.hpp')
-rw-r--r--boost/geometry/index/detail/rtree/rstar/insert.hpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/boost/geometry/index/detail/rtree/rstar/insert.hpp b/boost/geometry/index/detail/rtree/rstar/insert.hpp
index ce92140872..127290194f 100644
--- a/boost/geometry/index/detail/rtree/rstar/insert.hpp
+++ b/boost/geometry/index/detail/rtree/rstar/insert.hpp
@@ -2,7 +2,7 @@
//
// R-tree R*-tree insert algorithm implementation
//
-// Copyright (c) 2011-2014 Adam Wulkiewicz, Lodz, Poland.
+// Copyright (c) 2011-2015 Adam Wulkiewicz, Lodz, Poland.
//
// Use, modification and distribution is subject to the Boost Software License,
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -231,16 +231,28 @@ struct level_insert_base
}
template <typename Node>
- inline void recalculate_aabb_if_necessary(Node &n) const
+ inline void recalculate_aabb_if_necessary(Node const& n) const
{
if ( !result_elements.empty() && !base::m_traverse_data.current_is_root() )
{
// calulate node's new box
- base::m_traverse_data.current_element().first =
- elements_box<Box>(rtree::elements(n).begin(), rtree::elements(n).end(), base::m_translator);
+ recalculate_aabb(n);
}
}
+ template <typename Node>
+ inline void recalculate_aabb(Node const& n) const
+ {
+ base::m_traverse_data.current_element().first =
+ elements_box<Box>(rtree::elements(n).begin(), rtree::elements(n).end(), base::m_translator);
+ }
+
+ inline void recalculate_aabb(leaf const& n) const
+ {
+ base::m_traverse_data.current_element().first =
+ values_box<Box>(rtree::elements(n).begin(), rtree::elements(n).end(), base::m_translator);
+ }
+
size_type result_relative_level;
result_elements_type result_elements;
};