Mercurial > hg > vamp-build-and-test
diff DEPENDENCIES/generic/include/boost/geometry/algorithms/difference.hpp @ 101:c530137014c0
Update Boost headers (1.58.0)
author | Chris Cannam |
---|---|
date | Mon, 07 Sep 2015 11:12:49 +0100 |
parents | 2665513ce2d3 |
children |
line wrap: on
line diff
--- a/DEPENDENCIES/generic/include/boost/geometry/algorithms/difference.hpp Fri Sep 04 12:01:02 2015 +0100 +++ b/DEPENDENCIES/generic/include/boost/geometry/algorithms/difference.hpp Mon Sep 07 11:12:49 2015 +0100 @@ -12,6 +12,7 @@ #include <algorithm> #include <boost/geometry/algorithms/detail/overlay/intersection_insert.hpp> +#include <boost/geometry/policies/robustness/get_rescale_policy.hpp> namespace boost { namespace geometry { @@ -43,17 +44,20 @@ typename GeometryOut, typename Geometry1, typename Geometry2, + typename RobustPolicy, typename OutputIterator, typename Strategy > inline OutputIterator difference_insert(Geometry1 const& geometry1, - Geometry2 const& geometry2, OutputIterator out, + Geometry2 const& geometry2, + RobustPolicy const& robust_policy, + OutputIterator out, Strategy const& strategy) { concept::check<Geometry1 const>(); concept::check<Geometry2 const>(); concept::check<GeometryOut>(); - + return geometry::dispatch::intersection_insert < Geometry1, Geometry2, @@ -61,7 +65,7 @@ overlay_difference, geometry::detail::overlay::do_reverse<geometry::point_order<Geometry1>::value>::value, geometry::detail::overlay::do_reverse<geometry::point_order<Geometry2>::value, true>::value - >::apply(geometry1, geometry2, out, strategy); + >::apply(geometry1, geometry2, robust_policy, out, strategy); } /*! @@ -85,10 +89,13 @@ typename GeometryOut, typename Geometry1, typename Geometry2, + typename RobustPolicy, typename OutputIterator > inline OutputIterator difference_insert(Geometry1 const& geometry1, - Geometry2 const& geometry2, OutputIterator out) + Geometry2 const& geometry2, + RobustPolicy const& robust_policy, + OutputIterator out) { concept::check<Geometry1 const>(); concept::check<Geometry2 const>(); @@ -99,11 +106,12 @@ typename cs_tag<GeometryOut>::type, Geometry1, Geometry2, - typename geometry::point_type<GeometryOut>::type + typename geometry::point_type<GeometryOut>::type, + RobustPolicy > strategy; return difference_insert<GeometryOut>(geometry1, geometry2, - out, strategy()); + robust_policy, out, strategy()); } @@ -140,8 +148,17 @@ typedef typename boost::range_value<Collection>::type geometry_out; concept::check<geometry_out>(); + typedef typename geometry::rescale_overlay_policy_type + < + Geometry1, + Geometry2 + >::type rescale_policy_type; + + rescale_policy_type robust_policy + = geometry::get_rescale_policy<rescale_policy_type>(geometry1, geometry2); + detail::difference::difference_insert<geometry_out>( - geometry1, geometry2, + geometry1, geometry2, robust_policy, std::back_inserter(output_collection)); }