diff --git a/include/boost/geometry/extensions/index/algorithms/comparable_distance_centroid.hpp b/include/boost/geometry/extensions/index/algorithms/comparable_distance_centroid.hpp index 36620535b..983452848 100644 --- a/include/boost/geometry/extensions/index/algorithms/comparable_distance_centroid.hpp +++ b/include/boost/geometry/extensions/index/algorithms/comparable_distance_centroid.hpp @@ -44,8 +44,8 @@ struct sum_for_indexable_dimension::type point_coord_t; - typedef typename index::traits::coordinate_type::type indexable_coord_t; + typedef typename index::detail::traits::coordinate_type::type point_coord_t; + typedef typename index::detail::traits::coordinate_type::type indexable_coord_t; point_coord_t pt_c = geometry::get(pt); indexable_coord_t ind_c_min = geometry::get(i); @@ -69,9 +69,9 @@ comparable_distance_centroid(Point const& pt, Indexable const& i) return detail::sum_for_indexable< Point, Indexable, - typename index::traits::tag::type, + typename index::detail::traits::tag::type, detail::comparable_distance_centroid_tag, - index::traits::dimension::value + index::detail::traits::dimension::value >::apply(pt, i); } diff --git a/include/boost/geometry/extensions/index/algorithms/comparable_distance_far.hpp b/include/boost/geometry/extensions/index/algorithms/comparable_distance_far.hpp index 30fb83e74..dbedd9cd0 100644 --- a/include/boost/geometry/extensions/index/algorithms/comparable_distance_far.hpp +++ b/include/boost/geometry/extensions/index/algorithms/comparable_distance_far.hpp @@ -32,8 +32,8 @@ struct sum_for_indexable_dimension::type point_coord_t; - typedef typename index::traits::coordinate_type::type indexable_coord_t; + typedef typename index::detail::traits::coordinate_type::type point_coord_t; + typedef typename index::detail::traits::coordinate_type::type indexable_coord_t; point_coord_t pt_c = geometry::get(pt); indexable_coord_t ind_c_min = geometry::get(i); @@ -59,9 +59,9 @@ comparable_distance_far(Point const& pt, Indexable const& i) return detail::sum_for_indexable< Point, Indexable, - typename index::traits::tag::type, + typename index::detail::traits::tag::type, detail::comparable_distance_far_tag, - index::traits::dimension::value + index::detail::traits::dimension::value >::apply(pt, i); } diff --git a/include/boost/geometry/extensions/index/algorithms/comparable_distance_near.hpp b/include/boost/geometry/extensions/index/algorithms/comparable_distance_near.hpp index 8b809d41d..6ed71bcb5 100644 --- a/include/boost/geometry/extensions/index/algorithms/comparable_distance_near.hpp +++ b/include/boost/geometry/extensions/index/algorithms/comparable_distance_near.hpp @@ -43,8 +43,8 @@ struct sum_for_indexable_dimension::type point_coord_t; - typedef typename index::traits::coordinate_type::type indexable_coord_t; + typedef typename index::detail::traits::coordinate_type::type point_coord_t; + typedef typename index::detail::traits::coordinate_type::type indexable_coord_t; point_coord_t pt_c = geometry::get(pt); indexable_coord_t ind_c_min = geometry::get(i); @@ -70,9 +70,9 @@ comparable_distance_near(Point const& pt, Indexable const& i) return detail::sum_for_indexable< Point, Indexable, - typename index::traits::tag::type, + typename index::detail::traits::tag::type, detail::comparable_distance_near_tag, - index::traits::dimension::value + index::detail::traits::dimension::value >::apply(pt, i); } diff --git a/include/boost/geometry/extensions/index/algorithms/content.hpp b/include/boost/geometry/extensions/index/algorithms/content.hpp index 12c9471f0..bec29b3f9 100644 --- a/include/boost/geometry/extensions/index/algorithms/content.hpp +++ b/include/boost/geometry/extensions/index/algorithms/content.hpp @@ -17,7 +17,7 @@ template struct default_content_result { typedef typename select_most_precise< - typename traits::coordinate_type::type, + typename detail::traits::coordinate_type::type, long double >::type type; }; @@ -33,7 +33,7 @@ struct content_for_each_dimension static inline typename default_content_result::type apply(Box const& b) { return content_for_each_dimension::apply(b) * - ( index::get(b) - index::get(b) ); + ( detail::get(b) - detail::get(b) ); } }; @@ -42,7 +42,7 @@ struct content_for_each_dimension { static inline typename default_area_result::type apply(Box const& b) { - return index::get(b) - index::get(b); + return detail::get(b) - detail::get(b); } }; @@ -70,7 +70,7 @@ struct content { static typename default_content_result::type apply(Indexable const& b) { - return detail::content_for_each_dimension::value>::apply(b); + return detail::content_for_each_dimension::value>::apply(b); } }; @@ -79,7 +79,7 @@ struct content template typename default_content_result::type content(Indexable const& b) { - return dispatch::content::type>::apply(b); + return dispatch::content::type>::apply(b); } }}} // namespace boost::geometry::index diff --git a/include/boost/geometry/extensions/index/algorithms/is_valid.hpp b/include/boost/geometry/extensions/index/algorithms/is_valid.hpp index 4468b3684..42c55282c 100644 --- a/include/boost/geometry/extensions/index/algorithms/is_valid.hpp +++ b/include/boost/geometry/extensions/index/algorithms/is_valid.hpp @@ -19,14 +19,14 @@ template struct is_valid_box { BOOST_MPL_ASSERT_MSG( - (0 < Dimension && Dimension <= index::traits::dimension::value), + (0 < Dimension && Dimension <= detail::traits::dimension::value), INVALID_DIMENSION_PARAMETER, (is_valid_box)); static inline bool apply(Box const& b) { return is_valid_box::apply(b) && - ( index::get(b) <= index::get(b) ); + ( detail::get(b) <= detail::get(b) ); } }; @@ -35,7 +35,7 @@ struct is_valid_box { static inline bool apply(Box const& b) { - return index::get(b) <= index::get(b); + return detail::get(b) <= detail::get(b); } }; @@ -66,7 +66,7 @@ struct is_valid { static inline bool apply(Indexable const& b) { - return detail::is_valid_box::value>::apply(b); + return detail::is_valid_box::value>::apply(b); } }; @@ -75,7 +75,7 @@ struct is_valid template inline bool is_valid(Indexable const& b) { - return dispatch::is_valid::type>::apply(b); + return dispatch::is_valid::type>::apply(b); } }}} // namespace boost::geometry::index diff --git a/include/boost/geometry/extensions/index/algorithms/margin.hpp b/include/boost/geometry/extensions/index/algorithms/margin.hpp index aee9c4dc7..45d33817f 100644 --- a/include/boost/geometry/extensions/index/algorithms/margin.hpp +++ b/include/boost/geometry/extensions/index/algorithms/margin.hpp @@ -72,12 +72,12 @@ template struct margin_for_each_dimension { BOOST_STATIC_ASSERT(0 < CurrentDimension); - BOOST_STATIC_ASSERT(CurrentDimension <= traits::dimension::value); + BOOST_STATIC_ASSERT(CurrentDimension <= detail::traits::dimension::value); static inline typename default_margin_result::type apply(Box const& b) { return margin_for_each_dimension::apply(b) + - margin_for_each_edge::value>::apply(b); + margin_for_each_edge::value>::apply(b); } }; @@ -86,7 +86,7 @@ struct margin_for_each_dimension { static inline typename default_margin_result::type apply(Box const& b) { - return margin_for_each_edge::value>::apply(b); + return margin_for_each_edge::value>::apply(b); } }; @@ -95,7 +95,7 @@ struct margin_for_each_dimension template typename default_margin_result::type margin(Box const& b) { - return 2 * detail::margin_for_each_dimension::value>::apply(b); + return 2 * detail::margin_for_each_dimension::value>::apply(b); } }}} // namespace boost::geometry::index diff --git a/include/boost/geometry/extensions/index/indexable.hpp b/include/boost/geometry/extensions/index/detail/indexable.hpp similarity index 92% rename from include/boost/geometry/extensions/index/indexable.hpp rename to include/boost/geometry/extensions/index/detail/indexable.hpp index 1729c3699..b3a10452f 100644 --- a/include/boost/geometry/extensions/index/indexable.hpp +++ b/include/boost/geometry/extensions/index/detail/indexable.hpp @@ -8,10 +8,10 @@ // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) -#ifndef BOOST_GEOMETRY_EXTENSIONS_INDEX_INDEXABLE_HPP -#define BOOST_GEOMETRY_EXTENSIONS_INDEX_INDEXABLE_HPP +#ifndef BOOST_GEOMETRY_EXTENSIONS_INDEX_DETAIL_INDEXABLE_HPP +#define BOOST_GEOMETRY_EXTENSIONS_INDEX_DETAIL_INDEXABLE_HPP -namespace boost { namespace geometry { namespace index { +namespace boost { namespace geometry { namespace index { namespace detail { namespace dispatch { @@ -172,6 +172,6 @@ struct default_box_type > type; }; -}}} // namespace boost::geometry::index +}}}} // namespace boost::geometry::index::detail -#endif // BOOST_GEOMETRY_EXTENSIONS_INDEX_INDEXABLE_HPP +#endif // BOOST_GEOMETRY_EXTENSIONS_INDEX_DETAIL_INDEXABLE_HPP diff --git a/include/boost/geometry/extensions/index/detail/rtree/linear/redistribute_elements.hpp b/include/boost/geometry/extensions/index/detail/rtree/linear/redistribute_elements.hpp index 7581b557b..1fd7f3255 100644 --- a/include/boost/geometry/extensions/index/detail/rtree/linear/redistribute_elements.hpp +++ b/include/boost/geometry/extensions/index/detail/rtree/linear/redistribute_elements.hpp @@ -45,7 +45,7 @@ struct find_greatest_normalized_separation { typedef typename Elements::value_type element_type; typedef typename rtree::element_indexable_type::type indexable_type; - typedef typename index::traits::coordinate_type::type coordinate_type; + typedef typename index::detail::traits::coordinate_type::type coordinate_type; static inline void apply(Elements const& elements, Parameters const& parameters, @@ -59,15 +59,15 @@ struct find_greatest_normalized_separation BOOST_GEOMETRY_INDEX_ASSERT(2 <= elements_count, "unexpected number of elements"); // find the lowest low, highest high - coordinate_type lowest_low = index::get(rtree::element_indexable(elements[0], translator)); - coordinate_type highest_high = index::get(rtree::element_indexable(elements[0], translator)); + coordinate_type lowest_low = index::detail::get(rtree::element_indexable(elements[0], translator)); + coordinate_type highest_high = index::detail::get(rtree::element_indexable(elements[0], translator)); // and the lowest high coordinate_type lowest_high = highest_high; size_t lowest_high_index = 0; for ( size_t i = 1 ; i < elements_count ; ++i ) { - coordinate_type min_coord = index::get(rtree::element_indexable(elements[i], translator)); - coordinate_type max_coord = index::get(rtree::element_indexable(elements[i], translator)); + coordinate_type min_coord = index::detail::get(rtree::element_indexable(elements[i], translator)); + coordinate_type max_coord = index::detail::get(rtree::element_indexable(elements[i], translator)); if ( max_coord < lowest_high ) { @@ -84,10 +84,10 @@ struct find_greatest_normalized_separation // find the highest low size_t highest_low_index = lowest_high_index == 0 ? 1 : 0; - coordinate_type highest_low = index::get(rtree::element_indexable(elements[highest_low_index], translator)); + coordinate_type highest_low = index::detail::get(rtree::element_indexable(elements[highest_low_index], translator)); for ( size_t i = highest_low_index ; i < elements_count ; ++i ) { - coordinate_type min_coord = index::get(rtree::element_indexable(elements[i], translator)); + coordinate_type min_coord = index::detail::get(rtree::element_indexable(elements[i], translator)); if ( highest_low < min_coord && i != lowest_high_index ) { @@ -124,7 +124,7 @@ struct pick_seeds_impl typedef typename Elements::value_type element_type; typedef typename rtree::element_indexable_type::type indexable_type; - typedef typename index::traits::coordinate_type::type coordinate_type; + typedef typename index::detail::traits::coordinate_type::type coordinate_type; static inline void apply(Elements const& elements, Parameters const& parameters, @@ -154,7 +154,7 @@ struct pick_seeds_impl { typedef typename Elements::value_type element_type; typedef typename rtree::element_indexable_type::type indexable_type; - typedef typename index::traits::coordinate_type::type coordinate_type; + typedef typename index::detail::traits::coordinate_type::type coordinate_type; static inline void apply(Elements const& elements, Parameters const& parameters, @@ -174,9 +174,9 @@ struct pick_seeds { typedef typename Elements::value_type element_type; typedef typename rtree::element_indexable_type::type indexable_type; - typedef typename index::traits::coordinate_type::type coordinate_type; + typedef typename index::detail::traits::coordinate_type::type coordinate_type; - static const size_t dimension = index::traits::dimension::value; + static const size_t dimension = index::detail::traits::dimension::value; static inline void apply(Elements const& elements, Parameters const& parameters, @@ -214,7 +214,7 @@ struct redistribute_elements::type elements_type; typedef typename elements_type::value_type element_type; typedef typename rtree::element_indexable_type::type indexable_type; - typedef typename index::traits::coordinate_type::type coordinate_type; + typedef typename index::detail::traits::coordinate_type::type coordinate_type; typedef typename index::default_content_result::type content_type; elements_type & elements1 = rtree::elements(n); diff --git a/include/boost/geometry/extensions/index/detail/rtree/quadratic/redistribute_elements.hpp b/include/boost/geometry/extensions/index/detail/rtree/quadratic/redistribute_elements.hpp index de7d8ef1e..1ea480313 100644 --- a/include/boost/geometry/extensions/index/detail/rtree/quadratic/redistribute_elements.hpp +++ b/include/boost/geometry/extensions/index/detail/rtree/quadratic/redistribute_elements.hpp @@ -33,7 +33,7 @@ struct pick_seeds { typedef typename Elements::value_type element_type; typedef typename rtree::element_indexable_type::type indexable_type; - typedef typename index::traits::coordinate_type::type coordinate_type; + typedef typename index::detail::traits::coordinate_type::type coordinate_type; typedef Box box_type; typedef typename index::default_content_result::type content_type; @@ -100,7 +100,7 @@ struct redistribute_elements::type elements_type; typedef typename elements_type::value_type element_type; typedef typename rtree::element_indexable_type::type indexable_type; - typedef typename index::traits::coordinate_type::type coordinate_type; + typedef typename index::detail::traits::coordinate_type::type coordinate_type; elements_type & elements1 = rtree::elements(n); elements_type & elements2 = rtree::elements(second_node); diff --git a/include/boost/geometry/extensions/index/detail/rtree/rstar/redistribute_elements.hpp b/include/boost/geometry/extensions/index/detail/rtree/rstar/redistribute_elements.hpp index 06c898b6f..0ad80cf6d 100644 --- a/include/boost/geometry/extensions/index/detail/rtree/rstar/redistribute_elements.hpp +++ b/include/boost/geometry/extensions/index/detail/rtree/rstar/redistribute_elements.hpp @@ -40,8 +40,8 @@ public: bool operator()(Element const& e1, Element const& e2) const { - return index::get(rtree::element_indexable(e1, m_tr)) - < index::get(rtree::element_indexable(e2, m_tr)); + return index::detail::get(rtree::element_indexable(e1, m_tr)) + < index::detail::get(rtree::element_indexable(e2, m_tr)); } private: @@ -229,7 +229,7 @@ struct choose_split_axis_and_index Parameters, Box, Dimension - 1, - typename index::traits::tag::type + typename index::detail::traits::tag::type >::apply(elements, corner, index, sum_of_margins, overlap_val, content_val, parameters, translator); // MAY THROW, STRONG if ( sum_of_margins < smallest_sum_of_margins ) @@ -269,7 +269,7 @@ struct choose_split_axis_and_index Parameters, Box, 0, - typename index::traits::tag::type + typename index::detail::traits::tag::type >::apply(elements, choosen_corner, choosen_index, smallest_sum_of_margins, smallest_overlap, smallest_content, parameters, translator); // MAY THROW } }; @@ -325,7 +325,7 @@ struct redistribute_elements::value; + static const size_t dimension = index::detail::traits::dimension::value; typedef typename index::default_margin_result::type margin_type; typedef typename index::default_content_result::type content_type; @@ -355,7 +355,7 @@ struct redistribute_elements::value + index::detail::traits::dimension::value >::apply(elements1, split_axis, split_corner, split_index, smallest_sum_of_margins, smallest_overlap, smallest_content, @@ -363,7 +363,7 @@ struct redistribute_elements::value, "unexpected value"); + BOOST_GEOMETRY_INDEX_ASSERT(split_axis < index::detail::traits::dimension::value, "unexpected value"); BOOST_GEOMETRY_INDEX_ASSERT(split_corner == static_cast(min_corner) || split_corner == static_cast(max_corner), "unexpected value"); BOOST_GEOMETRY_INDEX_ASSERT(parameters.get_min_elements() <= split_index && split_index <= parameters.get_max_elements() - parameters.get_min_elements() + 1, "unexpected value"); diff --git a/include/boost/geometry/extensions/index/rtree.hpp b/include/boost/geometry/extensions/index/rtree.hpp index e5b364e9f..014dbf8ff 100644 --- a/include/boost/geometry/extensions/index/rtree.hpp +++ b/include/boost/geometry/extensions/index/rtree.hpp @@ -116,7 +116,7 @@ public: /*! \brief The Indexable type to which Value is translated. */ typedef typename translator::indexable_type::type indexable_type; /*! \brief The Box type used by the R-tree. */ - typedef typename index::default_box_type::type box_type; + typedef typename index::detail::default_box_type::type box_type; #if !defined(BOOST_GEOMETRY_INDEX_ENABLE_DEBUG_INTERFACE) private: diff --git a/include/boost/geometry/extensions/index/translator/def.hpp b/include/boost/geometry/extensions/index/translator/def.hpp index 375907e2d..f78f71774 100644 --- a/include/boost/geometry/extensions/index/translator/def.hpp +++ b/include/boost/geometry/extensions/index/translator/def.hpp @@ -28,7 +28,7 @@ struct def { BOOST_MPL_ASSERT_MSG( (!detail::indexable_not_found_error< - typename traits::indexable_type::type + typename index::detail::traits::indexable_type::type >::value), NOT_VALID_INDEXABLE_TYPE, (Value) @@ -60,7 +60,7 @@ struct def< std::pair > { BOOST_MPL_ASSERT_MSG( (!detail::indexable_not_found_error< - typename traits::indexable_type::type + typename index::detail::traits::indexable_type::type >::value), NOT_VALID_INDEXABLE_TYPE, (Indexable) @@ -128,7 +128,7 @@ struct def< boost::tuple > BOOST_MPL_ASSERT_MSG( (!detail::indexable_not_found_error< - typename traits::indexable_type::type + typename index::detail::traits::indexable_type::type >::value), NOT_VALID_INDEXABLE_TYPE, (Indexable) diff --git a/include/boost/geometry/extensions/index/translator/helpers.hpp b/include/boost/geometry/extensions/index/translator/helpers.hpp index 6f0ce2cfb..c439d0405 100644 --- a/include/boost/geometry/extensions/index/translator/helpers.hpp +++ b/include/boost/geometry/extensions/index/translator/helpers.hpp @@ -21,7 +21,7 @@ #include -#include +#include namespace boost { namespace geometry { namespace index { namespace translator { @@ -88,8 +88,8 @@ struct extract_indexable< std::pair > { typedef typename dispatch::choose_pair_element< std::pair, - typename traits::indexable_type::type, - typename traits::indexable_type::type + typename index::detail::traits::indexable_type::type, + typename index::detail::traits::indexable_type::type > cp; typedef typename cp::type type; diff --git a/test/rtree/test_rtree.hpp b/test/rtree/test_rtree.hpp index bc341c315..bff86d529 100644 --- a/test/rtree/test_rtree.hpp +++ b/test/rtree/test_rtree.hpp @@ -477,7 +477,7 @@ generate_value_outside() typedef typename Rtree::value_type V; typedef typename Rtree::indexable_type I; - return generate_value_outside_impl::value>::apply(); + return generate_value_outside_impl::value>::apply(); } template @@ -489,7 +489,7 @@ void generate_rtree(bgi::rtree & tree, std::vector & input, typedef typename T::indexable_type I; generate_input< - bgi::traits::dimension::value + bgi::detail::traits::dimension::value >::apply(input, qbox); tree.insert(input.begin(), input.end()); @@ -670,7 +670,7 @@ template void test_overlaps(bgi::rtree const& tree, std::vector const& input, Box const& qbox) { test_overlap_impl< - typename bgi::traits::tag< + typename bgi::detail::traits::tag< typename bgi::rtree::indexable_type >::type >::apply(tree, input, qbox); @@ -1171,7 +1171,7 @@ void test_rtree_by_value(Parameters const& parameters) //test_touches(tree, input, qbox); test_within(tree, input, qbox); - typedef typename bgi::traits::point_type::type P; + typedef typename bgi::detail::traits::point_type::type P; P pt; bg::centroid(qbox, pt);