diff --git a/Surface_sweep_2/include/CGAL/No_intersection_surface_sweep_2.h b/Surface_sweep_2/include/CGAL/No_intersection_surface_sweep_2.h index 2a86f1192e4..1b5cf76a311 100644 --- a/Surface_sweep_2/include/CGAL/No_intersection_surface_sweep_2.h +++ b/Surface_sweep_2/include/CGAL/No_intersection_surface_sweep_2.h @@ -23,14 +23,18 @@ #ifndef CGAL_NO_INTERSECTION_SURFACE_SWEEP_2_H #define CGAL_NO_INTERSECTION_SURFACE_SWEEP_2_H +#include + /*! \file * * Definition of the No_intersection_surface_sweep_2 class. */ +#include +#include +#include #include -#include #include #include #include @@ -38,9 +42,6 @@ #include #include #include -#include -#include -#include #ifndef CGAL_SS_VERBOSE @@ -144,14 +145,25 @@ public: ); protected: - typedef typename Arr_are_all_sides_oblivious_tag< - Left_side_category, Bottom_side_category, - Top_side_category, Right_side_category >::result - Are_all_sides_oblivious_category; + /*! + */ + typedef typename Arr_all_sides_oblivious_category::result + All_sides_oblivious_category; + + /*! + */ + typedef typename Arr_sides_category::result + Sides_category; public: typedef CGAL::Surface_sweep_2::Event_comparer - Event_comparer; + Event_comparer; typedef Multiset Event_queue; typedef typename Event_queue::iterator Event_queue_iterator; @@ -424,7 +436,9 @@ protected: * \param sc The subcurve corresponding to cv. */ void _init_curve_end(const X_monotone_curve_2& cv, Arr_curve_end ind, - Subcurve* sc); + Subcurve* sc, Arr_all_sides_oblivious_tag); + void _init_curve_end(const X_monotone_curve_2& cv, Arr_curve_end ind, + Subcurve* sc, Arr_not_all_sides_oblivious_tag); /*! Handle the subcurves that are to the left of the event point (i.e., * subcurves that we are done with). @@ -435,7 +449,9 @@ protected: * Such an event is usually the left endpoint of its incident right * subcurves, and we locate their position in the status line. */ - void _handle_event_without_left_curves(); + void _handle_event_without_left_curves(Arr_all_sides_oblivious_tag); + void _handle_event_without_left_curves(Arr_all_sides_not_finite_tag); + void _handle_event_without_left_curves(Arr_not_all_sides_not_finite_tag); /*! Sort the left subcurves of an event point according to their order in * their status line (no geometric comparisons are needed). @@ -522,7 +538,7 @@ protected: bool is_new) { _update_event_at_open_boundary(e, cv, ind, is_new, - Are_all_sides_oblivious_category()); + All_sides_oblivious_category()); } void _update_event_at_open_boundary(Event* e,