From f428b9cc8fcea77ced8b7dd7fda6831701dbfdb8 Mon Sep 17 00:00:00 2001 From: Adam Wulkiewicz Date: Fri, 14 Apr 2017 03:59:45 +0200 Subject: [PATCH] [extensions][dissolve] Pass strategies into the overlay internals and envelope. --- .../extensions/algorithms/detail/overlay/dissolver.hpp | 5 +++-- include/boost/geometry/extensions/algorithms/dissolve.hpp | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/boost/geometry/extensions/algorithms/detail/overlay/dissolver.hpp b/include/boost/geometry/extensions/algorithms/detail/overlay/dissolver.hpp index 835e77359..814b3cacf 100644 --- a/include/boost/geometry/extensions/algorithms/detail/overlay/dissolver.hpp +++ b/include/boost/geometry/extensions/algorithms/detail/overlay/dissolver.hpp @@ -298,7 +298,8 @@ struct dissolver_generic typedef typename geometry::point_type::type point_type; typedef model::box box_type; - // TODO: create and use envelope strategy + typename Strategy::envelope_strategy_type const + envelope_strategy = strategy.get_envelope_strategy(); typename Strategy::template area_strategy::type const area_strategy = strategy.template get_area_strategy(); @@ -308,7 +309,7 @@ struct dissolver_generic ++it, ++index) { helper.push_back(dissolve_helper(index, - geometry::return_envelope(*it), + geometry::return_envelope(*it, envelope_strategy), geometry::area(*it, area_strategy), source)); } diff --git a/include/boost/geometry/extensions/algorithms/dissolve.hpp b/include/boost/geometry/extensions/algorithms/dissolve.hpp index 3102b299f..6703b57e9 100644 --- a/include/boost/geometry/extensions/algorithms/dissolve.hpp +++ b/include/boost/geometry/extensions/algorithms/dissolve.hpp @@ -229,7 +229,7 @@ struct dissolve_ring_or_polygon std::map selected; - detail::overlay::select_rings(geometry, map, selected); + detail::overlay::select_rings(geometry, map, selected, strategy); // Add intersected rings { @@ -244,7 +244,7 @@ struct dissolve_ring_or_polygon } } - detail::overlay::assign_parents(geometry, rings, selected, true); + detail::overlay::assign_parents(geometry, rings, selected, strategy, true); return detail::overlay::add_rings(selected, geometry, rings, out); }