Commit Graph
5214 Commits
Author SHA1 Message Date
albert-github 24ff0da93c Spelling correction
Spelling correction
2026-02-03 14:40:02 +01:00
Sebastien Loriot 7026e03d94 Polygon mesh snapping improvements (#9266)
## Summary of Changes

A few improvements for the experimental polygon mesh snapping functions
of PMP.

TODO:
- Add new regression tests

## Release Management

* Affected package(s): `PMP`
* Feature/Small Feature (if any): n/a
* License and copyright ownership: no change
2026-02-03 14:22:13 +01:00
Sebastien Loriot 0dee36c764 Better flip-check criterion for almost degenerate face removal (#8743)
## Summary of Changes

While trying to remove caps, `PMP::remove_almost_degenerate_faces()`
does a Delaunay-like check before allowing the edge flip. Unfortunately,
the current criterion (see https://github.com/CGAL/cgal/pull/7125) can
prevent some edge flips that would resolve a cap because sometimes this
Delaunay-like criterion can prefer a cap if it is balanced by a very
small angle on the other side. Then you have alpha + beta < 180 and
you're stuck with the cap, but maybe you would have liked to flip still
because the largest angles created by a flip would be e.g. 120 and 120,
which is not that bad.

However in this function, we are maybe not so interested in having
nicely shaped elements as much as we are trying to remove the worst
elements. So this PR tries to improve the worst cap angle instead, by
checking only (and greedily) if we do not create a worse cap angle when
we flip.

This produces better results for the cases that were problematic with
alpha + beta < 180

## 1

![image](https://github.com/user-attachments/assets/313b8c1f-8ea4-4153-a41b-406f16d4153c)

## 2

![image](https://github.com/user-attachments/assets/cb74230a-70c1-4ef9-bb73-378331cd1626)

## 3

![image](https://github.com/user-attachments/assets/b31ec7f7-21b0-49c1-bb69-2174f0e5bf86)


## Release Management

* Affected package(s): `PMP`
* Issue(s) solved (if any): 
* Feature/Small Feature (if any): - 
* License and copyright ownership: no change
2026-01-19 09:34:20 +01:00
Sebastien Loriot e4c7b16aea Spelling corrections (#9276)
Spelling corrections
2026-01-15 18:24:53 +01:00
Sebastien Loriot fa97cf5f6c Fixes for decimate multimesh fixes (#9278)
Fix undocumented function simplifying meshes with common interface, not
only common boundaries

This will fix the plugin as well
2026-01-15 18:22:59 +01:00
Mael 31a072e7a6 Add a comment 2026-01-15 18:01:28 +01:00
Mael Rouxel-Labbé 7d3eba406a Tiny order fix 2026-01-15 13:16:34 +01:00
Mael Rouxel-Labbé e28b9df3a8 Use functor objects 2026-01-15 13:15:34 +01:00
Mael Rouxel-Labbé c951974905 Restrict the new flip criterion to repair_almost_degen only + simplify 2026-01-15 13:11:45 +01:00
Sébastien Loriot d49cc10732 fix warnings 2026-01-15 13:03:10 +01:00
Sébastien Loriot e28fd6df3b by default we should not only consider boundary edges 2026-01-14 16:21:10 +01:00
Sébastien Loriot f20fbc9fa4 init dynamic maps in the get 2026-01-14 16:20:13 +01:00
albert-github a223559d82 Spelling corrections
Spelling corrections
2026-01-13 18:10:02 +01:00
albert-github ea9a69faf2 Removing double words
- removing double words
- correcting some texts
2026-01-13 12:18:50 +01:00
Mael 0d6c197b88 Fix sentence 2026-01-12 16:51:50 +01:00
Mael Rouxel-Labbé b73eb80006 Fix pmap types 2026-01-12 14:51:10 +01:00
Mael Rouxel-Labbé 6ccb18ee89 Remove unused typedef 2026-01-12 14:51:01 +01:00
Mael Rouxel-Labbé 2afd6292f9 Update tolerance maps after intermediate operations
otherwise the tolerance (esp. the automatic one using 0.9 * min_inc_edge_l)
can grow too large and allow snapping to a neighbor-of-neighbor edge,
which obviously we need to avoid.
2026-01-12 12:57:22 +01:00
Mael Rouxel-Labbé f35113ca0b Reject vertex-edge snapping moves that invert normals 2026-01-12 12:57:03 +01:00
Mael Rouxel-Labbé fe531d2987 In self-snapping, update the splitting position before splitting
This is because if meshes are different, the target edge is fixed.
But if we are self-snapping, the edge might move because one of
its extremity might itself have been a vertex involved in vertex-edge
snapping.
2026-01-12 12:56:43 +01:00
Mael Rouxel-Labbé d9e452d32a Use a property map for the base tolerance values
The point is that we can then either pass a tolerance map,
or a constant fixed value.
2026-01-12 12:48:58 +01:00
Mael Rouxel-Labbé 60418fdfe9 Misc debug improvements 2026-01-12 12:47:29 +01:00
Mael Rouxel-Labbé 159dbf4176 Use decltype(auto) rather than Point_ref 2026-01-12 12:45:16 +01:00
Sebastien Loriot 237f7500e9 Fix various typos in comments, documentation, and internal variables (#9230)
## Summary of Changes

This PR fixes various typos across multiple packages. The changes
include:
* **Variable Names:** Corrected local variable names (e.g.,
`list_lenght` → `list_length`, `inital_nb_pts` → `initial_nb_pts`) in
CMake scripts and C++ headers.
* **Header Guards:** Fixed a typo in the header guard for
`Edge_length_cost.h` to match the filename.
* **Documentation & Comments:** Fixed spelling errors in comments,
string literals, and documentation files (e.g., `dimensionnal` →
`dimensional`, `explicitelty` → `explicitly`).

## Release Management

* Affected package(s): Installation, Point_set_3,
Polygon_mesh_processing, Surface_mesh_simplification, SMDS_3,
STL_Extension, Stream_support, TDS_2, Triangulation_2, Triangulation_3
* Issue(s) solved (if any):
* Feature/Small Feature (if any):
* Link to compiled documentation (obligatory for small feature):
* License and copyright ownership:
2026-01-09 15:39:35 +01:00
Laurent Rineau 67b80065e7 Fix 'the the' typos in documentation and comments (#9221)
This PR fixes multiple instances of the doubled word "the" (e.g., "the
the") found in various header files, documentation, and comments.

No code logic is changed; this is purely a documentation and comment
cleanup to improve readability.
2026-01-06 15:04:35 +01:00
Attaullah Ansari f5a7fc02f6 Refactor: Fix typos in variable names and CMake variables 2026-01-04 18:04:25 +05:30
ST3-NET 5bc9483b0d Fix 'the the' doubled word typos 2026-01-01 11:17:31 +05:30
SOUHARDYA TOLA f103593626 Fix doubled word typos in documentation and comments 2025-12-31 15:40:29 +00:00
Sébastien Loriot 5b771b794f Merge remote-tracking branch 'cgal/6.1.x-branch' into 'cgal/main' 2025-12-26 12:13:31 +01:00
Sébastien Loriot d12f5ef05f restore std::array as valid triangle 2025-12-23 15:32:44 +01:00
Sébastien Loriot 69d6cdd151 Merge remote-tracking branch 'cgal/6.1.x-branch' into 'cgal/main' 2025-12-19 17:37:15 +01:00
Sébastien Loriot f5c550ef44 Merge remote-tracking branch 'cgal/6.0.x-branch' into 'cgal/6.1.x-branch' 2025-12-19 17:34:39 +01:00
Sebastien Loriot f2341c8c1b Add missing NPs documentation in split/clip (#9184)
## Summary of Changes

Coref doesn't actually use NP::geom_traits so nothing to add.

## Release Management

* Affected package(s): `Polygon_mesh_processing`
* Issue(s) solved (if any): fix #8808
* Feature/Small Feature (if any): -
* License and copyright ownership: no change
2025-12-19 17:29:09 +01:00
Sebastien Loriot 9d82aad77a Fix tangency of the cut plane with the vertices of the faces (#9142)
Fix case of non triangular faces having vertices tangent to the
clip/refine plane
+ clip volume with coplanar faces



## TODO:
- [x] clean up and rebase
- [x] add test cases
- [x] add comments in the code
2025-12-19 17:27:19 +01:00
Mael 89229ae2de Fix unused variable warning 2025-12-18 17:34:04 +01:00
Mael Rouxel-Labbé 75244517cc Be more robust to possible non-manifold configurations 2025-12-18 17:34:04 +01:00
Mael Rouxel-Labbé 6b514c1901 Better snap debug code 2025-12-18 17:34:04 +01:00
Mael Rouxel-Labbé fb259cbbd3 Better debug file name 2025-12-18 17:34:04 +01:00
Mael Rouxel-Labbé 12d71ca738 Get rid of useless general case
checking with num_halfedges(tm) means this only applies
to something like union of triangular connected components.
And if we change to counting the number of border halfedges,
then we might as well just rely on the O(1) dynamic property map.
2025-12-18 17:34:04 +01:00
Mael Rouxel-Labbé 17c0072f92 Fix comment 2025-12-18 17:34:04 +01:00
Mael Rouxel-Labbé f285490e33 Fix losing in_range markers when opoh is a border edge 2025-12-18 17:34:04 +01:00
Mael Rouxel-Labbé 5badbdc7d7 Make it easier to copy-paste points 2025-12-18 17:34:04 +01:00
Mael Rouxel-Labbé 171b13cfa9 Fix compilation error in debug code 2025-12-18 17:34:03 +01:00
Sébastien Loriot 47ef182fa2 Merge remote-tracking branch 'cgal/6.1.x-branch' into cgal/main 2025-12-12 17:49:36 +01:00
Sébastien Loriot 061bc2dc29 Merge remote-tracking branch 'cgal/6.0.x-branch' into cgal/6.1.x-branch 2025-12-12 17:48:59 +01:00
Mael Rouxel-Labbé 02a7da9ed3 Remove some extra space 2025-12-11 16:55:51 +01:00
Mael Rouxel-Labbé cdcf9cb8ff Complete old sentence with new NP 2025-12-11 16:55:40 +01:00
Mael Rouxel-Labbé 7b9b6160d6 Add missing NPs doc in split/clip 2025-12-11 16:55:25 +01:00
Sébastien Loriot 117dbb7af9 add one more test and fix handling of faces in the cut plane 2025-12-11 14:52:48 +01:00
Sébastien Loriot fe45084fb4 fix handling of faces inside the clip plane 2025-12-10 16:19:54 +01:00