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); }