Commit Graph
6629 Commits
Author SHA1 Message Date
Sébastien Loriot aa1a7bff18 rephrase and update reference 2026-01-23 15:09:25 +01:00
albert-github 8d09ae340c Spelling corrections
Spelling corrections
2026-01-19 15:15:14 +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
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
Sebastien Loriot 1485d2825f Shape_detection: Add a way to pass input normal to faces (#8638)
## Summary of Changes

Avoid computing them when they are known.

* Normals are only used for estimating the angle between neighbor faces.
PCA is used to estimate the plane.
* sorting should be reusing the triangulation of faces that is already
done in regions (pass the internal map to `sort()` for exemple). PCA is
also used here to estimate the flatness score of a face in its
neighborhood
* About sorting: I'm not sure it wouldn't be a better idea to simply
sort using the area of the faces and ignore flatness of the
neighborhood.

## Release Management

* Affected package(s): `Shape_detection`
* small feature:
[Pass_face_normals_for_region_growing](https://cgalwiki.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/Pass_face_normals_for_region_growing)
* Issue(s) solved (if any):
2025-12-29 11:09:20 +01: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 5f91bc1330 PMP: Tests CMakelists.txt bugfix (#9187)
## Summary of Changes

Tests for triangulate_hole_Polyhedron_3_no_delaunay_test and
triangulate_hole_Polyhedron_3_test were also added in absence of Eigen3
causing the testsuite to abort

## Release Management

* Affected package(s): PMP
2025-12-19 17:29:21 +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
Sven Oesau d704fc056f tests for triangulate_hole_Polyhedron_3_no_delaunay_test and triangulate_hole_Polyhedron_3_test were also added in absence of Eigen3 causing the testsuite to abort 2025-12-15 09:54:26 +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 c630e83896 restore tests 2025-12-10 17:02:43 +01:00
Sébastien Loriot 12a31929a2 add more tests 2025-12-10 16:41:24 +01:00
Sébastien Loriot fe45084fb4 fix handling of faces inside the clip plane 2025-12-10 16:19:54 +01:00
Sébastien Loriot 20d2ce53fc skip vertices "interior" to a sequence of on the plane vertices 2025-12-10 16:19:12 +01:00
Sven Oesau 3e01c496dd Merge branch 'main' into SD_RG_face_normal_map 2025-12-07 11:30:52 +01:00
Sven Oesau 44d49298f2 adding parameter to detect_corners_of_regions and region_growing_of_planes_on_faces to choose between least squares primitives and the new plane/segment based primitives 2025-12-07 11:29:07 +01:00
Mael Rouxel-Labbé f4c3ef092a Misc PMP doc fixes 2025-12-05 22:08:45 +01:00