Commit Graph

111152 Commits

Author SHA1 Message Date
Sébastien Loriot a4170b1fb9 Merge pull request #8586 from MaelRL/Kernel_23-Fix_dangling_ref_in_CC3-GF
Do not rely on result_type definitions in kernels
2025-04-03 16:12:09 +02:00
Sébastien Loriot b6719fc3be Merge remote-tracking branch 'cgal/6.0.x-branch' into cgal/master 2025-04-03 16:09:51 +02:00
Sébastien Loriot f516c12c5b Merge remote-tracking branch 'cgal/5.6.x-branch' into 6.0.x-branch 2025-04-03 16:09:15 +02:00
Sebastien Loriot ede0864914
BGL - add `CGAL::dijkstra_shortest_path(vs, vt, mesh)` (#8724)
## Summary of Changes

computes the shortest path between two vertices, using Dijkstra
algorithm

Todo
- [x] write doc and integrate to 
- [x] add np
- [x] add measure to define what "shortest" means
- [x] add to ref manual top page
- [x] use in demo code

## Release Management

* Affected package(s): BGL
* [Small
feature](https://cgalwiki.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/Add_CGAL::shortest_path(vs,_vt))
* Link to compiled documentation
[CGAL::shortest_path_between_two_vertices()](https://cgal.github.io/8724/v0/BGL/group__PkgBGLTraversal.html#ga5627dee8a6fe4d238cb5c91e123aa763)
* License and copyright ownership: unchanged
2025-04-03 16:07:02 +02:00
Sebastien Loriot c5a809ad30
Spelling correction (#8813)
Spelling correction
2025-04-03 16:05:14 +02:00
Sebastien Loriot 7b0c8bd405
Fix return type of point on plane constructions (#8803)
## Summary of Changes

The main issue is that the functions `point_on_plane()` and
`projection_plane()` return a `PointC3`, whereas you could have a kernel
that uses a custom point type with `PlaneC3` as its plane type. The
correct return type is thus the kernel's point.

I moved the code into PlaneC3, but the really clean fix would be to have
all of this into the function object `Construct_point_on_3`. However, a
lot of required changes immediately get pulled: `Construct_point_on_3`
does not have the Cartesian / Homogeneous split, other overloads do not
have a nice implementation and instead use directly the members in the
Rep, etc.

## Release Management

* Affected package(s): `Cartesian_kernel`
* Issue(s) solved (if any): -
* Feature/Small Feature (if any): -
* License and copyright ownership: no change
2025-04-03 15:57:17 +02:00
Sebastien Loriot b45c29edd4
Fix Compare_xy_2 for the generic 3D projection traits (#8810)
## Summary of Changes

The previous implementation defined `Compare_xy_2` as simply
`Compare_xyz_3`. This does define an order over the projected points,
but it has a strong downside: it ignores the direction of the normal, so
its order can be the opposite of the lexicographical order
would give. This new order is in conflict with the existing
`Compare_x_2` and `Compare_y_2`, which take the normal's direction into
account.

(Also with the `Less_x_2`, `Less_y_2`, and `Less_xy_2` family, which
also exist for the projection traits.)

## Release Management

* Affected package(s): `Kernel_23`
* Issue(s) solved (if any): -
* Feature/Small Feature (if any): - 
* License and copyright ownership: no change
2025-04-03 15:54:37 +02:00
Sebastien Loriot 913c8bf40f
missing include in boost + extra care for overload resolution (#8818)
Backward compatible fix for #8759

Thanks for the idea @mglisse
2025-04-03 15:53:41 +02:00
Sébastien Loriot 60b4b19ba4 add more potentially missing include directives 2025-04-02 09:10:51 +02:00
Sébastien Loriot 2ccb0f7320 add missing include directive 2025-04-02 09:06:49 +02:00
Sébastien Loriot 32ac9f22a7 work around overload resolution with recent gcc 2025-04-01 15:43:43 +02:00
Sébastien Loriot 5ed3b0d266 Merge remote-tracking branch 'cgal/6.0.x-branch' in master 2025-03-31 15:32:56 +02:00
Sébastien Loriot a838073ec7 Merge remote-tracking branch 'cgal/5.6.x-branch' into cgal/6.0.x-branch 2025-03-31 15:31:19 +02:00
Sébastien Loriot 108d8671ab fix dependencies 2025-03-31 14:15:30 +02:00
Sebastien Loriot bcaeb64f54
Warning / compilation fixes for 5.6.x (#8798)
## Summary of Changes

Fixes warnings/errors. Quite a few are just cherry picking fixes that
were done in master.

## Release Management

* Affected package(s): Various
* Issue(s) solved (if any): -
* Feature/Small Feature (if any): -
* License and copyright ownership: no change
2025-03-31 10:18:14 +02:00
Sébastien Loriot f8a3facc68 missing d 2025-03-31 09:42:52 +02:00
Sebastien Loriot 10ee028ee4
[KSP] inlining functions (#8806)
## Summary of Changes

inlining functions to prevent multiple definition

## Release Management

* Affected package(s): KSP
* Issue(s) solved (if any): fix #8804
2025-03-31 09:37:33 +02:00
Sebastien Loriot 4f35ad1d48
Solver_interface: Adapted to OSQP API changes (#8795)
## Summary of Changes

Adapted solver interface to changes in OSQP API.

## Release Management

* Affected package(s): Solver_Interface
2025-03-31 09:23:36 +02:00
Sven Oesau 6819eae559 Updating doc for osqp 2025-03-31 09:22:54 +02:00
Sven Oesau 0e34a2ef42 adapted solver interface to osqp api change 2025-03-31 09:22:54 +02:00
Sebastien Loriot 14dd2cb7be
Used std::vector instead of c-style arrays for point storage. (#8709)
Updated two CGAL examples to use ``std::vector`` instead of plain
C-style arrays for storing points.

Few more examples can be improved the same way to use ``std::vector``
and avoid usage of c-style arrays.
- Min_annulus_d
- Min_circle_2
- Min_ellipse
- Min_sphere_d
2025-03-31 09:04:00 +02:00
Sebastien Loriot f67a356d5e
Update detect_features.h (#8765)
## Summary of Changes

This commit addresses a bug in the `detect_vertex_incident_patches`
function of the Polygon Mesh Processing package (file:
`Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/detect_features.h`).
The original implementation only processed vertices that were incident
to feature edges, leaving non-feature vertices without any recorded
patch IDs. According to the documentation, every vertex should have a
property map entry listing the patch IDs of all incident faces.

To fix this, the conditional check that restricted processing to feature
vertices has been removed. Now, every vertex is examined, and its
incident patch IDs are correctly gathered.

## Release Management

* **Affected package(s):** Polygon Mesh Processing
* **Issue(s) solved:** fix #8730
* **Feature/Small Feature:** Bug fix for complete patch detection on all
vertices
* **Affected file:**
`Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/detect_features.h`
2025-03-31 09:02:22 +02:00
Sébastien Loriot 9285e5c230 add empty line 2025-03-31 09:01:38 +02:00
Sébastien Loriot adc4caa0f2 add missing include directive 2025-03-31 08:58:47 +02:00
Mael Rouxel-Labbé adf8e5ad6a it's > its 2025-03-28 21:18:55 +01:00
Mael Rouxel-Labbé 53f32aba4a than > then
+ freebie
2025-03-28 21:18:50 +01:00
Mael Rouxel-Labbé 6f875f6fa0 loose > lose 2025-03-28 21:04:58 +01:00
Mael Rouxel-Labbé 5ad86a0fb0 eg > e.g. 2025-03-28 21:04:49 +01:00
Mael Rouxel-Labbé 613e629524 ie > i.e. 2025-03-28 21:04:43 +01:00
Mael Rouxel-Labbé e38e29f279 dont > don't 2025-03-28 20:52:22 +01:00
Mael Rouxel-Labbé 7970fb99e7 later > latter 2025-03-28 20:41:37 +01:00
Mael Rouxel-Labbé e5dce8d04b More ouput > output 2025-03-28 20:37:48 +01:00
albert-github bf4d79b64b Spelling correction
Spelling correction
2025-03-28 18:41:36 +01:00
Sebastien Loriot 3483e40b10
Mesh_3 - add `surface_only()` named parameter (#8781)
## Summary of Changes

Add the option `surface_only()` to `make_mesh_3()`, to completely skip
the "refine_cells" part of Mesh_3, and cancel perturbation and
exudation.
@soesau and I noticed that scanning cells, even in the context of
"Surface mesher", takes a lot of useless time.


@soesau you can use this branch for your benchmark

@lrineau do you think `surface_only` should be a member of `Mesher_3` or
a parameter of `Mesher_3::refine_mesh()` (as done here)?

## Release Management

* Affected package(s): Mesh_3
* [Small
Feature](https://cgalwiki.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/Mesh_3_surface_only())
Pre-approved by
[User:Sloriot](https://cgalwiki.geometryfactory.com/CGAL/Members/wiki/User:Sloriot)
-- 2025/03/17
* Link to compiled documentation
[make_mesh_3()](https://cgal.github.io/8781/v0/Mesh_3/group__PkgMesh3Functions.html#gac8599a0c967075f740bf8e2e92c4770e)
and
[parameters::surface_only()](https://cgal.github.io/8781/v0/Mesh_3/group__PkgMesh3Parameters.html#gaa2618c09b6117d7caab12dccca16ee58)
* License and copyright ownership: unchanged
2025-03-28 18:23:22 +01:00
Sébastien Loriot 5a83d07e6d Merge remote-tracking branch 'cgal/6.0.x-branch' into master 2025-03-28 18:16:42 +01:00
Sébastien Loriot a3db73dc68 Merge remote-tracking branch 'cgal/5.6.x-branch' into cgal/6.0.x-branch 2025-03-28 18:15:16 +01:00
Sebastien Loriot fc57e5208e
Installation: Removing FindEigen3.cmake (#8777)
## Summary of Changes

Removing FindEigen3.cmake as it is outdated and no longer required.
It lacks the definition of the target "Eigen3::Eigen" which is used by
the Ceres library.

## Release Management

* Affected package(s): Installation

> [!WARNING]
> Be careful during **the merge into `6.0.x-branch`**: this PR modifies
CMake files in the Polyhedron demo, that was renamed CGAL Lab for
CGAL-6.0.
2025-03-28 18:10:35 +01:00
Sebastien Loriot 3fa6e77002
Mesh_2: Make lloyd_optimize_mesh_2() deterministic (#8768)
## Summary of Changes

Replace a `std::set<Vertex_handle>` by a
`std::set<std::pair<std::size_t,Vertex_handle>>` to make traversing the
set deterministic.
At the same time, do not `erase()` a key, but an `iterator`. 

## Release Management

* Affected package(s): Mesh_2
* Issue(s) solved (if any): fix #8719
* License and copyright ownership: unchanged
2025-03-28 18:04:34 +01:00
Sébastien Loriot f3ff704eea Merge pull request #8554 from afabri/PMP-PoissonDiskSampling-GF
Add Weighted Sample Elimination
2025-03-28 18:03:36 +01:00
Sebastien Loriot 52897082e7
Add a way to collect input coplanar faces after corefinement (#8169)
Add a method in the corefinement visitor to collect the list of output
faces corresponding to coplanar input faces
2025-03-28 18:02:14 +01:00
Mael Rouxel-Labbé b4422374a0 Fix Compare_xy_2 for the generic 3D projection traits
The previous implementation defined Compare_xy_2 as
simply Compare_xyz_3. This does define an order
over the projected points, but it has a strong downside:
it ignores the direction of the normal, so its order
can be the opposite of the lexicographical order
would give. This new order is in conflict with
the existing Compare_x_2 and Compare_y_2, which
take the normal's direction into account.

(Also with the Less_x_2, Less_y_2, and Less_xy_2
family, which also exist for the projection traits).
2025-03-28 12:51:07 +01:00
Sven Oesau 3f6f8ec8f8 Third_party doc update for Ceres 2025-03-28 12:23:29 +01:00
Sébastien Loriot e3b813389d rename 2025-03-27 16:11:18 +01:00
Sébastien Loriot fc3299462d improve description and update function name 2025-03-27 13:50:31 +01:00
Mael Rouxel-Labbé 0c35489bbe Merge remote-tracking branch 'cgal/master' into Kernel_23-Fix_dangling_ref_in_CC3-GF 2025-03-27 12:28:35 +01:00
Jane Tournois a91d5783ab
not using tbb
Co-authored-by: Laurent Rineau <Laurent.Rineau@cgal.org>
2025-03-27 12:23:23 +01:00
Mael Rouxel-Labbé 884b0e41a1 Fix comment 2025-03-27 12:20:42 +01:00
Mael Rouxel-Labbé be6109dc14 Fix predicate/construction inconsistencies in P3T3 canonicalization functions
There are two use cases:
- either we care about the shifted position (for example for P3M3 where
we will insert the shifted position)
- either we don't care about the shifted position, and we are ok with
point + shifting offset (for example in P3M3 predicates to determine
is_bad)

In the first case, we cannot determine the shift using predicates,
otherwise we could have an inconsitency in the final result:
the predicates say the point is in, but once constructed it is not.

So this commit distinguishes between both. When we care about the
actual shifted position, we construct the point. There might be
numerical errors if we are not using exact constructions, but it
does not really matter.

What should be done better:
- use compare_x/y/z_3 instead of <
- handle the case where the numerical errors are such that you
get a really silly point far from the truth. Maybe this should
all be done in EPECK. There is something like this in the
history of canonicalize_helper.h ....
2025-03-27 12:14:14 +01:00
Sven Oesau 8f0944a5ee inlining functions to prevent multiple definition 2025-03-27 10:34:25 +01:00
Sebastien Loriot 0a47430f59
remove not used namespace 2025-03-27 10:04:38 +01:00