Skip to content

Conversation

@efifogel
Copy link
Member

@efifogel efifogel commented Sep 1, 2025

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
  • Link to compiled documentation (obligatory for small feature) wrong link name to be changed
  • License and copyright ownership: TAU

@sloriot
Copy link
Member

sloriot commented Sep 2, 2025

Is there anything from #5284 that we want to keep/import?

@efifogel
Copy link
Member Author

efifogel commented Sep 2, 2025 via email

…e 2D Regularized Boolean Set Operation package
…published, so changes to it are not concidered as breaking backward compatibilty
… for do_intersect() when applied to (linear) polygons
@efifogel
Copy link
Member Author

efifogel commented Sep 7, 2025 via email

@sloriot
Copy link
Member

sloriot commented Sep 9, 2025

 The following files have tabs:
Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2.h

@efifogel
Copy link
Member Author

efifogel commented Sep 9, 2025 via email

@efifogel
Copy link
Member Author

efifogel commented Sep 13, 2025 via email

@efifogel
Copy link
Member Author

efifogel commented Sep 16, 2025 via email

@efifogel
Copy link
Member Author

efifogel commented Sep 18, 2025 via email

@sloriot sloriot changed the base branch from master to main September 18, 2025 15:24
@sloriot sloriot added Not yet approved The feature or pull-request has not yet been approved. Tested and removed Under Testing labels Sep 24, 2025
@sloriot
Copy link
Member

sloriot commented Sep 24, 2025

Successfully tested in CGAL-6.2-Ic-5

@github-actions github-actions bot removed the Tested label Nov 3, 2025
@github-actions
Copy link

github-actions bot commented Nov 3, 2025

This pull-request was previously marked with the label Tested, but has been modified with new commits. That label has been removed.

@sloriot sloriot added pre-approved For pre-approved small features. After 15 days the feature will be accepted. and removed Not yet approved The feature or pull-request has not yet been approved. labels Nov 3, 2025
@sloriot
Copy link
Member

sloriot commented Nov 13, 2025

Successfully tested in CGAL-6.2-Ic-39

TODO: after the merge create an issue to mention to create a non-regularized version of do_intersect, following the discussion (that I cannot find for now) where we agreed to add a new namespace for the regularized version so that the version in the CGAL namespace has the same behavior as the Kernel do-intersect

@sloriot sloriot merged commit 1069678 into CGAL:main Nov 21, 2025
9 checks passed
@sloriot sloriot deleted the Bso_2-do_intersect_efif branch November 21, 2025 08:21
@lrineau lrineau added Accepted small feature and removed pre-approved For pre-approved small features. After 15 days the feature will be accepted. labels Dec 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants