diff --git a/Packages/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Bso_utils.h b/Packages/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Bso_utils.h index 22204e7b639..374213f118c 100644 --- a/Packages/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Bso_utils.h +++ b/Packages/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Bso_utils.h @@ -29,41 +29,21 @@ #include + template void General_polygon_set_2:: construct_polygon(Ccb_halfedge_const_circulator ccb, Polygon_2& pgn, Traits_* tr) { - std::vector xcurves(circulator_size(ccb)); - Ccb_halfedge_const_circulator ccb_circ = ccb; - Ccb_halfedge_const_circulator ccb_end = ccb_circ; - unsigned int i=0; + typedef CGAL::Ccb_curve_iterator Ccb_curve_iterator; + Ccb_curve_iterator begin(ccb, false); + Ccb_curve_iterator end(ccb, true); - if(!Halfedge_const_handle(ccb_circ)->face()->contained()) - { - do - { - xcurves[i] = Halfedge_const_handle(ccb_circ)->curve(); - ++i; - --ccb_circ; - } - while(ccb_circ != ccb_end); - } - else - { - do - { - xcurves[i] = Halfedge_const_handle(ccb_circ)->curve(); - ++i; - ++ccb_circ; - } - while(ccb_circ != ccb_end); - } - - tr->construct_polygon_2_object()(xcurves.begin(), xcurves.end(), pgn); + tr->construct_polygon_2_object()(begin, end, pgn); } + template class Arr_bfs_scanner { diff --git a/Packages/Boolean_set_operations_2/include/CGAL/General_polygon_set_2.h b/Packages/Boolean_set_operations_2/include/CGAL/General_polygon_set_2.h index 1855fce7b37..78f27d87ad6 100644 --- a/Packages/Boolean_set_operations_2/include/CGAL/General_polygon_set_2.h +++ b/Packages/Boolean_set_operations_2/include/CGAL/General_polygon_set_2.h @@ -39,6 +39,7 @@ #include #include #include +#include CGAL_BEGIN_NAMESPACE