From 836a1b19f9a492bbfd7151f07a9a136dadf3e6fb Mon Sep 17 00:00:00 2001 From: Sandhyaa Radhakrishnan Date: Thu, 11 Aug 2011 20:16:47 +0000 Subject: [PATCH] Minkowski sum using BSO --- .../include/CGAL/minkowski_sum_2.h | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/Minkowski_sum_2/include/CGAL/minkowski_sum_2.h b/Minkowski_sum_2/include/CGAL/minkowski_sum_2.h index c510c4f5b81..26ae28e7cde 100644 --- a/Minkowski_sum_2/include/CGAL/minkowski_sum_2.h +++ b/Minkowski_sum_2/include/CGAL/minkowski_sum_2.h @@ -21,6 +21,11 @@ #include #include + +#include +#include +#include + #include #include #include @@ -74,15 +79,28 @@ minkowski_sum_2 (const Polygon_2& pgn1, const Polygon_2& pgn2, const DecompositionStrategy&) { - Minkowski_sum_by_decomposition_2 mink_sum; - Polygon_2 sum_bound; - std::list > sum_holes; + Minkowski_sum_by_decomposition_2 mink_sum; + std::list > sub_sum_polygons; - mink_sum (pgn1, pgn2, sum_bound, std::back_inserter(sum_holes)); + typedef typename Kernel::Point_2 Point_2; + typedef CGAL::Arr_segment_traits_2 Arr_segment_traits; + typedef CGAL::Gps_segment_traits_2 Traits_2; + typedef CGAL::General_polygon_set_2 General_polygon_set_2; + typedef Polygon_with_holes_2 Polygon_with_holes_2; + typedef std::list Polygon_with_holes_list; + - return (Polygon_with_holes_2 (sum_bound, - sum_holes.begin(), - sum_holes.end())); + mink_sum (pgn1, pgn2, std::back_inserter(sub_sum_polygons)); + + General_polygon_set_2 gps; + + gps.join(sub_sum_polygons.begin(),sub_sum_polygons.end()); + + Polygon_with_holes_list sum; + + gps.polygons_with_holes(std::back_inserter(sum)); + + return (*(sum.begin())); } } //namespace CGAL