[extensions][dissolve] Pass strategies into the overlay internals and envelope.

This commit is contained in:
Adam Wulkiewicz
2017-04-14 03:59:45 +02:00
parent 87a1a941f2
commit f428b9cc8f
2 changed files with 5 additions and 4 deletions

View File

@@ -298,7 +298,8 @@ struct dissolver_generic
typedef typename geometry::point_type<value_type>::type point_type;
typedef model::box<point_type> 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<value_type>::type const
area_strategy = strategy.template get_area_strategy<value_type>();
@@ -308,7 +309,7 @@ struct dissolver_generic
++it, ++index)
{
helper.push_back(dissolve_helper<box_type>(index,
geometry::return_envelope<box_type>(*it),
geometry::return_envelope<box_type>(*it, envelope_strategy),
geometry::area(*it, area_strategy),
source));
}

View File

@@ -229,7 +229,7 @@ struct dissolve_ring_or_polygon
std::map<ring_identifier, properties> selected;
detail::overlay::select_rings<overlay_dissolve>(geometry, map, selected);
detail::overlay::select_rings<overlay_dissolve>(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<GeometryOut>(selected, geometry, rings, out);
}