Commit Graph

2497 Commits

Author SHA1 Message Date
Sebastien Loriot 18ee149f2e
Aos 2 fixes efif (#9133)
## Summary of Changes

This addresses issue #9084. In particular, I replaced `Cartesian` with
`Simple_cartesian` in all traits.
I also defined Multiplicity to be `std::size_t` in all traits. In
addition, I replaced `typedef` with `using` and properly indented and
cleaned up the code in the source files I touched. I simplified the code
that approximates a point of the traits classes `Arr_linear_traits_2`,
`Arr_segment_traits_2`, and `Arr_non_caching_segment_basic_traits_2.h`.
I did not use the
[GAL::Cartesian_coverter](https://doc.cgal.org/latest/Kernel_23/classCGAL_1_1Cartesian__converter.html)
(mentioned in issue #9084) because the code is now simple as it is(just
one line in each traits class).

I also added a missing `inline` in draw_arrangement_2. This is unrelated
to the above.

## Release Management

* Affected package(s): Arrangement_on_surface_2
* Issue(s) solved (if any): fix #9084
* Feature/Small Feature (if any):
* 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-12-03 11:45:33 +01:00
Efi Fogel 9d28892e5f Changed Approximate_curve_length_2 => Approximate_length_2, and added missing const 2025-11-26 16:48:30 +02:00
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
Efi Fogel 3ccdc134fe Slightly simplified the code of Approximate_2::operator()(xcv...) 2025-11-13 15:10:17 +02:00
Efi Fogel 5812c1d6b5 Changed Cartesian to Simple_cartesian. Used size_t for Multiplicity. Properly indented and cleaned up. 2025-11-13 11:10:49 +02:00
Efi Fogel 48262b8068 Removed unnecessary include 2025-11-13 10:28:01 +02:00
Efi Fogel 24d3cd4bec Added missing inline 2025-11-13 09:33:58 +02:00
albert-github d3d5d4575a Spelling correction
Spelling correction
2025-11-04 11:15:57 +01:00
Sebastien Loriot 8a136c50c9
CGAL: An Halfedge (#9119)
## Summary of Changes

Replace several "an"  by "a"

## Release Management

* Affected package(s):   global
* License and copyright ownership:  unchanged
2025-11-03 18:51:32 +01:00
Sébastien Loriot f92b41ae0a Merge remote-tracking branch 'cgal/main' into 'efifogel/Bso_2-do_intersect_efif' 2025-11-03 15:47:22 +01:00
Andreas Fabri 4b89f17b42 CGAL: An Halfedge 2025-11-03 14:37:50 +00:00
Efi Fogel def7ea788f Merge branch 'gsoc2025-aos_demo-shepard' of github.com:efifogel/cgal into gsoc2025-aos_demo-shepard 2025-10-29 13:07:46 +02:00
Efi Fogel 8aaeff1a8e Pacify old clang (12); specifica pinstantiation of Arr_coordinate_converter 2025-10-29 13:05:18 +02:00
Sébastien Loriot dcaad3d140 add missing license include directives 2025-10-28 14:11:19 +01:00
Efi Fogel cd04470eef Enabled compilation without Qt support 2025-10-25 11:02:45 +03:00
Efi Fogel d1afc52902 Cleaned up and removed unused variables and types 2025-10-25 10:52:25 +03:00
Efi Fogel a1b5cd58da Cleaned up and initialized m_left_on_boundary properly 2025-10-23 12:56:05 +03:00
Efi Fogel 5ed29f9173 Cleaned up; Pacify MSVC; suppressed warnings. 2025-10-23 12:11:31 +03:00
Efi Fogel 6314299598 Cleaned up; supress warnings 2025-10-23 11:06:32 +03:00
Efi Fogel 909cbce367 Pacify MSVC (min/max issues) 2025-10-23 09:16:33 +03:00
Efi Fogel e7682069fe Introduced is_to_left() for points and used it to handle intersection spoints on the boundary 2025-10-21 14:49:42 +03:00
Efi Fogel 8730763d39 Restored preconditions 2025-10-21 14:49:19 +03:00
Efi Fogel 4d85bc3e63 Cleaned up 2025-10-21 14:49:00 +03:00
Efi Fogel 93d5fecf1c Suppress drawing when runing ctest 2025-09-28 09:16:12 +03:00
Shepard Liu f40f4a8629 compilation on windows & small bug fix 2025-09-16 11:04:04 +08:00
Efi Fogel a137e76807 Removed tabs 2025-09-09 21:23:00 +03:00
Efi Fogel 5b6df813f5 Fixed do_intersect() and cleaned up 2025-09-06 20:41:49 +03:00
Efi Fogel a74945062c Cleaned up; replaced `typedef` with `using`, etc. 2025-08-26 21:58:34 +03:00
Efi Fogel e5049d4b03 Last touches and fixes for testing whether two polygons intersect 2025-08-26 14:55:53 +03:00
Efi Fogel c677355de2 Removed printout 2025-08-26 14:55:14 +03:00
Efi Fogel 0f528545c7 Suppressed using Polyline with do_intersect() and fixed the do-intersect oberlay sweep-line visitor 2025-08-25 19:10:19 +03:00
Efi Fogel bf1bc2fc85 Cleaned up 2025-08-25 16:43:17 +03:00
Shepard Liu c9038d7c73 fixed drawing out of bounds triangles near polar & cleanup 2025-08-24 21:37:34 +08:00
Efi Fogel 6dd570be9c Added missing include CGAL/Cartesian.h 2025-08-19 17:51:53 +03:00
Efi Fogel 6eb52494c6 Guarded for unbounded faces 2025-08-19 17:46:08 +03:00
Efi Fogel 3b24522834 Add Approximate_2 2025-08-19 17:40:15 +03:00
Shepard Liu 7471dc847d feat: support drawing spherical faces 2025-08-05 21:34:44 +08:00
Shepard Liu b3657277d7 made initial bounding box more precise and added margin around the bbox 2025-07-24 17:14:27 +08:00
Shepard Liu fb9afae4ac more cleanups, align with code conventions and refactor
1
2025-07-23 19:28:56 +08:00
Efi Fogel 616931594a Cleaned up 2025-07-17 13:12:59 +03:00
Shepard Liu e70cf9fa17 bug fixes and support g++ 2025-07-14 22:24:40 +08:00
Shepard Liu 30b9a29ee9 Code cleanup and bug fixes 2025-07-13 13:40:08 +08:00
Efi Fogel 99aeb5f80a Pacify gcc and cleaned up 2025-07-02 16:36:47 +03:00
Shepard Liu ac7b7f62bd clean up deleted unit test target 2025-07-02 19:31:10 +08:00
Shepard Liu cd1951be26 fix drawing degenerate paths 2025-07-01 21:46:59 +08:00
Shepard Liu 3f90d36604 feat: draw function and classes for arrangement on surface 2
Now works for segment traits, linear traits and conic traits.
2025-06-30 15:43:27 +08:00
Efi Fogel 094651581f Fixed dispatching 2025-05-29 18:18:49 +03:00
Efi Fogel 0ff050c414 Fixed dispatching 2025-05-28 18:29:22 +03:00
Efi Fogel 35f66f80b6 Improved dispatching 2025-05-28 16:15:58 +03:00
Efi Fogel 2caff8f2d8 More clean ups 2025-05-28 14:55:01 +03:00