Commit Graph

111921 Commits

Author SHA1 Message Date
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
Camille Lanuel b9fb60ab74 fixed alignment 2025-03-28 15:00:44 +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
Camille Lanuel 6ea4235457 Anchor constructors 2025-03-28 11:50:07 +01:00
Camille Lanuel 30746cc5f1 Merge branch 'Hyperbolic_surface_triangulation_2-dubois' of github.com:loic-dubois/cgal into Hyperbolic_surface_triangulation_2-dubois 2025-03-28 10:55:49 +01:00
Mael Rouxel-Labbé 24d244b3e1 Speed up test 2025-03-28 10:52:45 +01:00
Mael Rouxel-Labbé 8ca8a97266 Fix warnings 2025-03-28 10:44:13 +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 94576d4c53 test the demo in the testsuite
Co-authored-by: Laurent Rineau <Laurent.Rineau@cgal.org>
2025-03-27 10:18:43 +01:00
Sebastien Loriot 0a47430f59
remove not used namespace 2025-03-27 10:04:38 +01:00
Mael Rouxel-Labbé ba4ca0649e Replace SC with EPICK since we iso remesh 2025-03-26 22:47:54 +01:00
Mael Rouxel-Labbé abd9fa3595 Tiny doc fix 2025-03-26 22:47:45 +01:00
Mael Rouxel-Labbé a9082f8575 Factorize MC/TMC vertex interpolation functions 2025-03-26 22:47:09 +01:00
Mael Rouxel-Labbé e843cefce0 Harmonize MC/TMC vertex point computations 2025-03-26 22:29:01 +01:00
Sébastien Loriot 08109aa12b make sure that points in MC and TMC are identical 2025-03-26 21:59:49 +01:00
Sébastien Loriot d51af86a65 update changes 2025-03-25 23:51:20 +01:00
Sébastien Loriot 86bf5305c8 add a way to collect input coplanar faces after corefinement 2025-03-25 23:47:51 +01:00
Mael Rouxel-Labbé df6919026e Fix return type of point on plane constructions
You could legally have a kernel that uses a custom point type,
but PlaneC3 as its plane type.
2025-03-25 23:15:19 +01:00
Sébastien Loriot 4bc837f51d add missing QUIET 2025-03-25 17:45:00 +01:00
Sébastien Loriot 8f37274215 fix unused variable warning 2025-03-25 17:43:09 +01:00
Jane Tournois 78d7ddc5e5 add missing this-> 2025-03-25 13:14:44 +01:00
Jane Tournois ffce97431f add test_remeshing_polyhedron 2025-03-25 12:45:48 +01:00
Mael Rouxel-Labbé 5b0529a62a Also run MC on an adapted octree 2025-03-25 11:57:34 +01:00
Mael Rouxel-Labbé e2f92eb341 User manual improvements 2025-03-25 11:57:19 +01:00