diff --git a/Arrangement_on_surface_2/include/CGAL/Arr_overlay_2.h b/Arrangement_on_surface_2/include/CGAL/Arr_overlay_2.h index a383d8602f8..9b45e51dafc 100644 --- a/Arrangement_on_surface_2/include/CGAL/Arr_overlay_2.h +++ b/Arrangement_on_surface_2/include/CGAL/Arr_overlay_2.h @@ -59,12 +59,20 @@ public: std::size_t min_end_index (const Curve& c) const { - return reinterpret_cast(halfedge(c)->target()->inc()); + if (c.red_halfedge_handle() != typename Curve::HH_red()) + return reinterpret_cast(c.red_halfedge_handle()->target()->inc()); + // else + CGAL_assertion (c.blue_halfedge_handle() != typename Curve::HH_blue()); + return reinterpret_cast(c.blue_halfedge_handle()->target()->inc()); } std::size_t max_end_index (const Curve& c) const { - return reinterpret_cast(halfedge(c)->source()->inc()); + if (c.red_halfedge_handle() != typename Curve::HH_red()) + return reinterpret_cast(c.red_halfedge_handle()->source()->inc()); + // else + CGAL_assertion (c.blue_halfedge_handle() != typename Curve::HH_blue()); + return reinterpret_cast(c.blue_halfedge_handle()->source()->inc()); } const Curve& curve (const Curve& c) const @@ -103,16 +111,6 @@ public: private: - typename Curve::Halfedge_handle halfedge (const Curve& c) const - { - if (c.red_halfedge_handle() == typename Curve::Halfedge_handle()) - { - CGAL_assertion (c.blue_halfedge_handle() != typename Curve::Halfedge_handle()); - return c.blue_halfedge_handle(); - } - // else - return c.red_halfedge_handle(); - } }; /*! Compute the overlay of two input arrangements. diff --git a/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h b/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h index 4d10d82a005..eff640e5443 100644 --- a/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h +++ b/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h @@ -134,7 +134,8 @@ public: class Ex_x_monotone_curve_2 { public: typedef Base_x_monotone_curve_2 Base; - typedef Halfedge_handle_blue Halfedge_handle; + typedef Halfedge_handle_red HH_red; + typedef Halfedge_handle_blue HH_blue; protected: Base m_base_xcv; // The base curve.