cgal/Boolean_set_operations_2/include/CGAL
Sebastien Loriot 1069678f36
Optimize the `do_intersect()` functions of the 2D Regularized Boolean Set Operation" package (made it tolerant to inexact kernels.) (#9050)
## Summary of Changes

Optimized `do_intersect(polygon, polygon)`, `do_intersect(begin, end)`,
and `do_intersect(begin1, end1, begin2, end2)`:
(i) Terminated the execution once an intersection is detected. (In the
past, the intersection was computed in one phase and examined in a
subsequent phase.)
(ii) Made the variants of the free functions `do_intersect()` that apply
to linear polygons, robust even with an inexact-construction kernel. The
variants that apply to generalized polygons endure inexact constructions
much more than before; however, there are rare degenerate cases that are
still require an exact construction kernel.

In general, the changes described here do not affect the default
interface, so a small feature is not required. However, it is a major
impact, and it does affect the interface as described bellow, and even
somehow break backward compatibility.

Recently, the code of the package "2D Regularized Boolean Set
Operations" was optimized. In particular, a 3rd optional parameter was
introduced in the free functions. It determined whether the boundaries
of the input polygons are treated as cyclic sequences of single
(`x`-monotone) segments or as a cyclic sequences of (`x`-monotone)
polylines. The change described here eliminates this 3rd parameter, and
brings the interface of the `do_intersect() function back to the
original design with two input polygons.

## Release Management

* Affected package(s): Boolean_set_operations_2, Surface_sweep,
Arrangement_on_surface_2
* Feature/Small Feature (if any):
[here](https://cgalwiki.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/do_intersect_polygon_2_predicates_only)
* Link to compiled documentation (obligatory for small feature) [*wrong
link name to be changed*](httpssss://wrong_URL_to_be_changed/Manual/Pkg)
* License and copyright ownership: TAU
2025-11-21 09:21:02 +01:00
..
Boolean_set_operations_2 Optimize the `do_intersect()` functions of the 2D Regularized Boolean Set Operation" package (made it tolerant to inexact kernels.) (#9050) 2025-11-21 09:21:02 +01:00
IO Fixed inserter; introduced extractor 2023-10-23 16:03:07 +03:00
Boolean_set_operations_2.h split header following update of the doc in e114e44aa9 2021-09-23 13:03:12 +02:00
General_polygon_2.h make is compatible with back inserter 2023-06-21 11:17:55 +02:00
General_polygon_set_2.h Cleaned up; replaced `typedef` with `using`, etc. 2025-08-26 21:58:34 +03:00
General_polygon_set_on_surface_2.h Cleaned up 2025-08-25 16:43:17 +03:00
Gps_circle_segment_traits_2.h More weirdo constructors 2020-05-24 11:18:01 +02:00
Gps_segment_traits_2.h Renamed Construct_general_polygon_with_holes_2 => Construct_polygon_with_holes_2 2021-11-03 18:29:58 +02:00
Gps_traits_2.h Fixed GeneralPolygonWithHoles_2 concept: requires now nested Polygon_2 type instead of General_polygon_2 2021-11-03 18:16:40 +02:00
Polygon_set_2.h Added mising const 2022-11-02 22:36:25 +02:00
connect_holes.h Spelling corrections 2024-05-31 19:05:34 +02:00
draw_polygon_set_2.h fix the mentions of CGAL_USE_BASIC_VIEWER_QT (with the Qt suffix) 2025-05-02 09:22:38 +02:00