Commit Graph

1574 Commits

Author SHA1 Message Date
Laurent Rineau 0a6eecd28d explain why NDEBUG must not be defined 2025-11-20 09:52:12 +01:00
Laurent Rineau 5318889e37 fixes after Andreas's second review 2025-11-12 16:59:38 +01:00
Laurent Rineau 5bd39bf250 address Andreas' review, except for STL_Extension vs Profiling_tools 2025-11-12 15:05:20 +01:00
Laurent Rineau c89c212a54 bisect_failures: fix documentation 2025-10-31 22:24:41 +01:00
Laurent Rineau 04cb44bea1 fix license: LGPL 2025-10-31 15:43:57 +01:00
Laurent Rineau 669c7c8599 STL_Extension: Add bisect_failures debugging utility
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.
2025-10-31 15:32:42 +01:00
Sébastien Loriot 27a7cef2fb Merge pull request #8744 from LeoValque/PMP_triangle_soup_rounding-GF
Add do_snap parameter to PMP::autorefine_triangle_soup
2025-06-26 22:01:58 +02:00
Sébastien Loriot 78cfeacf01 Merge pull request #8186 from lrineau/Triangulation_3-CDT_3-lrineau
New package: CGAL 3D conforming constrained Delaunay triangulations
2025-06-26 21:57:17 +02:00
Laurent Rineau cf77d8022f fix the testsuite of CGAL::is_complete (but keep the #if 0 for now) 2025-06-25 17:37:26 +02:00
Sébastien Loriot f6303dc951 hide sandbox not used 2025-06-24 18:06:13 +02:00
albert-github 3a03540095 Spelling correction
Spelling correction
2025-06-18 10:35:46 +02:00
Jane Tournois fb898e9ab1 remove return_empty_on_invalid_input
and show in an example how to check preconditions
2025-06-13 14:30:05 +02:00
Sebastien Loriot 9eae964517
Triangulation: filter_iterator (#8899)
## Summary of Changes

The testsuite of
[Triangulation](https://cgal.geometryfactory.com/CGAL/testsuite/summary-6.1-Ic-159.html?package=Triangulation)
has N's for some platforms. The test platforms have in common to use
boost_1_88_0, but with VC++ or clang on Windows I can't reproduce the
error with this version of boost.

In this PR I use the filter_iterator adaptor of CGAL, to see if the
boost filter_iterator is the problem.

## Release Management

* Affected package(s): Triangulation
* License and copyright ownership:  unchanged
2025-06-10 14:58:16 +02:00
Jane Tournois 0ab9d3eebf Merge remote-tracking branch 'cgal/master' into Triangulation_3-CDT_3-lrineau
# Conflicts:
#	Installation/CHANGES.md
2025-06-10 11:18:38 +02:00
Jane Tournois 0e3778ff1a face/facet vocabulary
the np is now plc_face_id
where "face" stands for "polygon" as in FaceListGraph for example
2025-06-05 16:10:21 +02:00
Sebastien Loriot 30b3388446
New package: Frechet Distance (#8284)
## Summary of Changes

Add a new package computing the approximate Fréchet distance between two
polylines in dD under Euclidean metric, or decides if the distance is
smaller than a given value.

## Release Management

* Affected package(s): Frechet_distance
* Feature (if any):
[link](https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Frechet_Distance)
* License and copyright ownership:  MPI, GeometryFactory, cnrs(?)

## TODO:
- [x] check branch size (@sloriot)
- [x] Make it work with `Epick_d<Dimension_tag<2>>` @sloriot
2025-06-05 16:08:47 +02:00
Sébastien Loriot 6444b9a0d0 Merge pull request #8890 from afabri/PMP-stitch_deterministic-GF
PMP: Make stitch_borders() deterministic
2025-06-04 14:56:33 +02:00
Sébastien Loriot 503b259c71 fix warning: avoid copy 2025-06-02 19:19:42 +02:00
Jane Tournois 19f10ea890 rename plc_face_id to plc_facet_id 2025-06-02 12:49:03 +02:00
Jane Tournois 1f3e98abac replace face_patch_map with plc_face_id
the patches actually correspond to PLC faces,
which must be planar, and do not match the "face patches"
of PMP::isotropic_remeshing for example

+ add a np to CGAL::IO::write_MEDIT(ccdt) to save the corresponding PLC ids,
or just "1" everywhere as patch id
2025-05-30 16:52:00 +02:00
Laurent Rineau 8145708ae5 Merge remote-tracking branch 'cgal/6.0.x-branch'
Conflicts:
	STL_Extension/include/CGAL/Compact_container.h
	STL_Extension/include/CGAL/Concurrent_compact_container.h
2025-05-30 12:27:15 +02:00
Sébastien Loriot f3b8f20d00 handle convert between const and non-const iterators 2025-05-22 19:50:06 +02:00
Sébastien Loriot b6163a5e7d missing overload 2025-05-21 09:24:05 +02:00
Sébastien Loriot 2148806957 workaround possible optimisation that would alter the value of the erase_counter
The code is still not legal but works in practise.

fix similar to 5853673267
2025-05-21 08:41:25 +02:00
Léo Valque 99e53acafa put new named_parameter at the good place 2025-05-20 17:39:52 +02:00
Sebastien Loriot 8978dde2e5
Mark variables declared at global scope in headers as 'inline'. (#8874)
## Summary of Changes

`const` variables declared at global scope have internal linkage, and so
if they are declared in a header file, they are replicated in every file
that `#include` the header. They also can't be the target of `using`
declarations that exports the variable into a C++20 module. This change
marks a number of variables with `inline`, which gives these variables
external linkage, allows the linker to unify all of these variables
between different `.o` files, and also allows for their use in C++20
modules.

There is a separate question whether these variables could or should be
`constexpr` instead of just `const`. The difference between `constexpr`
and `const` has no effect on linkage, and so in the spirit of taking one
step at a time, this patch does not address the `constexpr` vs `const`
question.

This patch fixes #8871. Related to
https://github.com/dealii/dealii/issues/18071.

## Release Management

* Affected package(s): 5.6.1
* Issue(s) solved (if any): #8871
* License and copyright ownership: Same license as used throughout CGAL.
2025-05-16 13:00:02 +02:00
Andreas Fabri 556d33836f
Apply suggestions from code review
Co-authored-by: Laurent Rineau <Laurent.Rineau@cgal.org>
2025-05-15 07:43:26 +02:00
Andreas Fabri 10fe2f5659 output an address 2025-05-14 15:52:18 +01:00
Andreas Fabri 03734f4f18 Add noop for operator<< for handles of a Polyhedron (and let's improve) 2025-05-14 15:38:22 +01:00
Laurent Rineau 1bdf8e7e10 fix for clang 2025-05-14 10:25:59 +02:00
Laurent Rineau cb5e13ad1f Merge remote-tracking branch 'refs/remotes/lrineau/Triangulation_3-CDT_3-lrineau' into Triangulation_3-CDT_3-lrineau 2025-05-13 17:34:31 +02:00
Laurent Rineau 4b029e69bd Merge branch 'CGAL:master' into Triangulation_3-CDT_3-lrineau 2025-05-13 17:14:39 +02:00
Laurent Rineau fe4193f9eb add a compatibility with std::execution::seq and co 2025-05-13 17:01:00 +02:00
Laurent Rineau eb696b07e8 Merge Triangulation_3-CDT_3-lrineau into lrineau/Triangulation_3-CDT_3-lrineau 2025-05-13 12:19:23 +02:00
Sébastien Loriot f40c64ba13 rename np 2025-05-13 11:26:47 +02:00
Laurent Rineau 1ac837d236 fix warnings about uninitialized default-constructed values 2025-05-12 18:51:01 +02:00
Jane Tournois ebd9ecab58 documentation of check_preconditions, the new NP 2025-05-12 15:47:42 +02:00
Sébastien Loriot d60f2ce443 Merge remote-tracking branch 'cgal/6.0.x-branch' into `cgal/master` 2025-05-12 14:58:19 +02:00
Sébastien Loriot 190313e12a avoid ambiguous overloads of operator= with optional and variant
was showing up in inheritance of _or_drop_ version
2025-05-12 11:56:36 +02:00
Andreas Fabri 851d03dadb merge master 2025-05-07 09:13:11 +01:00
Wolfgang Bangerth b6af36028d Mark variables declared at global scope in headers as 'inline'. 2025-05-05 05:29:58 -06:00
Jane Tournois b9fd8a3b8e rename Base_with_time_stamp to Triangulation_simplex_base_with_time_stamp 2025-05-02 14:44:36 +02:00
Laurent Rineau 1f7536bfac remove trailing space 2025-04-29 18:30:46 +02:00
Laurent Rineau 0ec75e54ee Merge remote-tracking branch 'refs/remotes/lrineau/Triangulation_3-CDT_3-lrineau' into pr/lrineau/8186 2025-04-29 17:41:39 +02:00
Laurent Rineau 1c4e24621c fix the assertions about nothrow_movable in CDT_3
using Boost implementation of `unordered_map` instead of the std:: version.
2025-04-29 17:41:30 +02:00
Jane Tournois c95bcb5cb7 wip review Mael 2025-04-29 15:17:54 +02:00
Laurent Rineau fa7a62bd69 fix static_assert(std::is_nothrow_move_assignable<CDT_plus_2> 2025-04-29 11:52:40 +02:00
Sébastien Loriot cb747e8201 Merge pull request #8721 from sloriot/PMP-new_clip
Add refine_with_plane and new fast clip method
2025-04-24 20:43:26 +02:00
Sebastien Loriot 051f56967b
Workaround bug in gcc (#8820)
Fixes [these
errors](https://cgal.geometryfactory.com/CGAL/testsuite/CGAL-6.1-Ic-122/Alpha_wrap_3/TestReport_lrineau_Ubuntu-GCC_master_CXX20-Release.gz)

cc @mglisse
2025-04-10 18:07:13 +02:00
Andreas Fabri 6f455c6fd8 Use the old code for VC++ 2025-04-09 09:14:28 +01:00