Skip to content

Conversation

@lrineau
Copy link
Member

@lrineau lrineau commented Jan 20, 2026

Summary of Changes

This PR fixes the error reported in issue #781. The main two changes are:

  • in Refine_edges.h: allow the refinement point of a constrained edge to be an existing close encroaching vertex,
  • in Refine_faces.h: skip tiny bad faces when their bbox are smaller than a few ulp.

Release Management

  • Affected package(s): Triangulation_2, Mesh_2
  • Issue(s) solved (if any): fix Mesh_2: CGAL::Assertion_exception when refining mesh #781
  • Feature/Small Feature (if any):
  • Link to compiled documentation (obligatory for small feature) wrong link name to be changed
  • License and copyright ownership: maintenance by GeometryFactory, now copyright change

afabri and others added 29 commits August 23, 2024 09:25
Add new bisect_failures template function to help identify minimal failing
test cases from complex input data. The utility uses a bisection-like approach
to iteratively simplify data and locate the smallest subset that causes failures.

Features:
- Handles multiple failure types: CGAL exceptions, std::exceptions, exit codes
- Automatic ratio adjustment (starts at 0.5, halves when no fault found)
- Saves intermediate states for debugging (current, bad, error, final_bad)
- Comprehensive test suite with 14 tests covering all combinations:
  * Edge cases (empty data, no failures)
  * Single element failures (each failure type independently)
  * Pair combinations (all 2-element permutations)
  * Triple combinations (all 3 failure types together)
  * Large datasets (up to 200 elements)

The test suite demonstrates complete combinatorial coverage of three
independent failure conditions and validates the algorithm's ability to
isolate minimal failing cases.

All tests pass in both Debug and Release configurations.
@lrineau lrineau added this to the 6.2-beta milestone Jan 21, 2026
@lrineau
Copy link
Member Author

lrineau commented Jan 21, 2026

Even if this PR is a bug-fix, I would prefer it to be in CGAL-6.2 only, because there is a breaking change on the requirements of the traits class: a48e7ee#diff-13fc09a664b393d1a17f16b50657be2bc99df52a992c50a2880ad88525d823bc

[skip ci]
@afabri
Copy link
Member

afabri commented Jan 22, 2026

Bug reported in the CI, also in the testsuite.
And additionally: test/Mesh_2/issue_781.cpp:55:10: fatal error: 'CGAL/Base_with_time_stamp.h' file not found
and include/CGAL/Mesher_level.h:301:33: error: no member named 'geometry' in 'CGAL::Reconstruction_triangulation_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick>>' auto geom = triangulation().geometry(e);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mesh_2: CGAL::Assertion_exception when refining mesh

4 participants