Commit Graph

2844 Commits

Author SHA1 Message Date
Laurent Rineau e96aaf37ad Merge branch 'master' into pr/afabri/7410 2024-05-17 23:03:55 +02:00
Laurent Rineau caee91a6d1 mv new header files from T_3/include to CT_3/include 2024-05-06 23:01:39 +02:00
Laurent Rineau 531853418c add Constrained_Delaunay_triangulation_vertex_data_3 2024-05-06 22:09:18 +02:00
Laurent Rineau 53eb2b5034 fix SPDX-License-Identifier headers 2024-05-06 11:14:36 +02:00
Laurent Rineau b42aaefc01 Constrained_triangulation_3: add a skeleton of package and documentation 2024-05-03 23:18:14 +02:00
Laurent Rineau b7b734106f indentation 2024-04-26 16:59:40 +02:00
Laurent Rineau 48eaf9c3f4 remove a possible filter failure, when the target is a vertex 2024-04-26 16:57:14 +02:00
Laurent Rineau 90b2aa5d8f T_3:::copy_triangulation_into_hole postpone *cit++
If the output iterator is a function-output-iterator, then the cell is already
correctly constructed.

Also, rename `fit` to `cit`
2024-04-26 16:57:14 +02:00
Laurent Rineau 52393d19a2 small factorization with a lambda expression 2024-04-26 16:56:46 +02:00
Laurent Rineau 75689f325a use std::invoke (C++17) for IILE
*Immediately Invoked Lambda Expression*

Now that CGAL can use C++17 , switch to `std::invoke`
that is more readable that the two small characters `()`
hidden somewhere a few lines below.

With `std::invoke`, we understand straight away that the lambda is
called immediately.

Ref:

https://www.cppstories.com/2016/11/iife-for-complex-initialization/
2024-04-26 16:54:59 +02:00
Laurent Rineau 3f92648e1a add T_3::is_facet(u, v, w) 2024-04-26 16:52:40 +02:00
Laurent Rineau 3fda4e64c0 Triangulation_3: rewrite the code a little
that avoids code like `o_vt_f_pair.second.first`

Backport: master
2024-04-26 16:51:45 +02:00
Laurent Rineau ab061360f8 add const to understand better the semantic 2024-04-26 16:51:30 +02:00
Laurent Rineau ce58f38b76 move With_point_and_info_tag to Compact_container.h 2024-04-26 16:36:33 +02:00
Laurent Rineau 952d34c6ea cosmetic changes (indent, spaces, naming) 2024-04-26 13:09:05 +02:00
Andreas Fabri 53b438eeeb STL_extension: Add parameter for value type to Prevent_deref 2024-04-26 13:08:06 +02:00
Laurent Rineau 3148a4665c add CGAL_CAN_USE_CXX20_FORMAT macro for <format> support (C++20) 2024-04-24 17:44:57 +02:00
Laurent Rineau 0fa27bc857 Merge remote-tracking branch 'cgal/master' into Triangulation_3-CDT_3-lrineau 2024-04-24 16:51:27 +02:00
Laurent Rineau 2cf6303a16 add support for dumping surface mesh after merging facets 2024-04-24 15:49:44 +02:00
Laurent Rineau 9e84694535 reduce filter failures 2024-04-24 15:21:07 +02:00
Laurent Rineau 0315b25fdf do not reinsert all vertices several times 2024-04-24 14:18:34 +02:00
Laurent Rineau 7ca63c2095 reduce symbols names 2024-04-24 14:16:50 +02:00
Laurent Rineau 9c59169b1d remove a possible filter failure, when the target is a vertex 2024-04-24 12:05:01 +02:00
Laurent Rineau 67466144bb Merge pull request #8139 from janetournois/Mesh_3-revert_encroachment_loop-jtournois
Mesh_3 - revert encroachment rule modification, and fix infinite refinement
2024-04-22 14:53:50 +02:00
Laurent Rineau 66cfdd5418 use Scope_exit 2024-04-11 17:39:38 +02:00
Jane Tournois a8debb0d2d Revert "Fix sometimes creating holes in the C3T3"
This reverts commit 06d272169f.

There may be an inconsistency between exact and inexact computations,
in the facet encroachment rule

This code was leading to a local infinite refinement loop during cells refinement
2024-04-11 14:16:41 +02:00
Sébastien Loriot 180dbaeb40 fix dependency updates 2024-04-11 09:51:34 +02:00
Laurent Rineau 4db6bc6d16 Merge pull request #6967 from gdamiand/gsoc2022-EBVs-Mostafa-ashraf19
GSoC'22: New CGAL's design to handle basic viewers
2024-04-10 18:04:25 +02:00
Laurent Rineau 8d5984bd1b Merge pull request #8108 from lrineau/CGAL-simplify_cmake-GF
CMake: simplify, now that C++17 is required
2024-04-10 18:04:20 +02:00
Laurent Rineau 2b012c900d vector<hash_set> instead of a hash_set of pairs 2024-04-10 15:27:52 +02:00
Sébastien Loriot 6a1417d8ba trigger the update 2024-04-09 13:34:33 +02:00
Laurent Rineau ce3daa342b final fix for `is_edge` with the hash set 2024-04-05 16:39:26 +02:00
Laurent Rineau 708711e7a7 Merge pull request #8018 from janetournois/PMP-add_bbox_to_face_graph-jtournois
New function `PMP::add_bbox(face_graph)` that adds bbox to face graph
2024-04-05 14:25:17 +02:00
Laurent Rineau 9077dec742 add flag --use-finite-edges-map 2024-04-04 12:36:36 +02:00
Laurent Rineau fe52551128 fix command line parameters 2024-04-04 11:43:50 +02:00
Laurent Rineau 202d136b16 small optimization: use a Delaunay tr_3 instead of a CDT_3 for the cavity 2024-04-04 11:23:56 +02:00
Laurent Rineau e0abcf0e9f protect debug code with a flag 2024-04-04 11:23:10 +02:00
Laurent Rineau 9d63c10175 fix 2024-04-03 17:10:44 +02:00
Laurent Rineau 1711b842f6 WIP work-in-progress 2024-04-03 10:34:49 +02:00
Laurent Rineau 04cf39bd8c CMake: simplify, now that C++17 is required 2024-03-28 18:38:48 +01:00
Sébastien Loriot 5254404517 Merge remote-tracking branch 'cgal/master' into HEAD 2024-03-27 22:25:41 +01:00
Guillaume Damiand 9a0b8eb824 Merge branch 'master' into gsoc2022-EBVs-Mostafa-ashraf19 2024-03-26 16:25:29 +01:00
Mael Rouxel-Labbé 5e38ed54df Fix double "Figure" in doc 2024-03-22 17:33:43 +01:00
Laurent Rineau de34b83d26 cleanup 2024-03-22 10:53:18 +01:00
Laurent Rineau 3d14707b0c reimplement does_first_triangle_intersect_second_triangle_interior
Now use a modified code of the original predicate `do_intersect(Tri_3, Tri_3)`.
2024-03-22 10:52:17 +01:00
Laurent Rineau 379bb331cf optimizations about vtuning 2024-03-18 17:22:37 +01:00
Laurent Rineau 44b6c51828 introduce Intel ITT for debug interaction with vtune 2024-03-18 15:03:29 +01:00
Laurent Rineau 5c8a7ea1e7 5.1 degrees seems right 2024-03-13 14:59:43 +01:00
Laurent Rineau 9c763033c6 new debug output: all borders of merged facets 2024-03-10 19:14:36 +01:00
Laurent Rineau 199ece2b10 new options/criteria to choose which facets to merge 2024-03-10 19:14:19 +01:00
Laurent Rineau 7ec2873f9a fix the almost-coplanar regions detector
1e-14 was way too small
2024-03-07 12:58:49 +01:00
Jane Tournois a02ce9ea21 fix dependencies by removing Random_numbers where it's not needed anymore 2024-03-07 09:36:59 +01:00
Laurent Rineau fccbeaed59 change the distance check between constraint segment and vertex
Now it is done up-front, and not during the execution of the process.
2024-03-06 16:26:45 +01:00
Laurent Rineau a7f97ca017 fix a debug message 2024-03-06 14:21:39 +01:00
Laurent Rineau 8127850dca fix for 90224.stl
-> a face restricted to one point (its 2D triangulation is dimension 0)
2024-03-04 10:11:25 +01:00
Laurent Rineau d968bc3f4a fix for data/113344-min3.off
There was a hole in the cavity: the set of intersecting cells was not simply connected.
There was a sliver, in the interior of the cavity, that was not intersecting the region.
2024-03-01 16:24:35 +01:00
Laurent Rineau 2fbad9aa4e fix for error_mesh-p_not_equal_0-min2 2024-02-27 16:52:51 +01:00
Laurent Rineau 283c1a2116 More debug message in cdt.is_valid(true) 2024-02-27 16:39:56 +01:00
Sébastien Loriot 910945eb5f undo dependency changes + always use core if not disabled 2024-02-27 16:19:28 +01:00
Sébastien Loriot 3b30756cd3 do not depend on CGAL_Core 2024-02-27 14:46:18 +01:00
Laurent Rineau c000b66db5 two new buggy data sets 2024-02-26 18:07:37 +01:00
Laurent Rineau e27e5a4541 tweaks of CMake 2024-02-23 17:59:44 +01:00
Laurent Rineau d1b945fef9 assert/CGAL_assertion
That throws an assertion, instead of calling `abort()`.
2024-02-23 17:59:12 +01:00
Andreas Fabri e4558a4d4b Merge branch 'master' into CORE-boost_mp_number-GF 2024-02-23 17:04:37 +01:00
Laurent Rineau 7393922e2e minor debug modifications 2024-02-22 17:01:24 +01:00
Laurent Rineau eb9672d5be T_3:::copy_triangulation_into_hole postpone *cit++
If the output iterator is a function-output-iterator, then the cell is already
correctly constructed.

Also, rename `fit` to `cit`
2024-02-22 16:13:58 +01:00
Laurent Rineau 6c6d0ed8ff fix for data/106884-min1.off 2024-02-22 15:01:18 +01:00
Laurent Rineau 5601539bb2 add a data set that is not currently working 2024-02-20 16:42:42 +01:00
Laurent Rineau 1bffff78b8 documentation options 2024-02-20 16:42:21 +01:00
Andreas Fabri dbb848deb1 Triangulation 2/3: fstream -> sstream 2024-02-16 08:00:02 +00:00
Laurent Rineau 2468ca956e add --debug-validity 2024-02-15 13:05:23 +01:00
Laurent Rineau 4957209967 better debugging with --debug--regions 2024-02-15 11:57:36 +01:00
Laurent Rineau fca87120b1 remove debugging lines 2024-02-15 11:46:34 +01:00
Laurent Rineau 0fc61e6b3f fix the assertions
That makes `1435440-min2.off` pass.
2024-02-15 11:45:55 +01:00
Laurent Rineau 2da7b21865 stupid bug 2024-02-15 11:45:08 +01:00
Laurent Rineau 12626fd4b8 add another data ste 2024-02-15 11:44:56 +01:00
Laurent Rineau 228bad53d8 use a border edge of the region to orient the cavity (above/below) 2024-02-14 12:04:14 +01:00
Laurent Rineau b810fbc118 add new test cases (from previous fixed bugs) 2024-02-14 11:36:39 +01:00
Laurent Rineau 9979b88f1a small bug fix 2024-02-13 22:50:10 +01:00
Laurent Rineau 411fe9deab add option --use-new-cavity-algorithm
That option allows to use, or not, the previous implementation of the cavity construction, to compare.
2024-02-13 22:45:07 +01:00
Laurent Rineau 81d7fce5bc new markers for vertices 2024-02-13 14:06:16 +01:00
Laurent Rineau 7903e5d41f new debug flag 2024-02-13 13:40:15 +01:00
Laurent Rineau 4bef1ac665 move With_point_and_info_tag to Compact_container.h 2024-02-13 13:04:13 +01:00
Laurent Rineau 30149d3a4f wip 2024-02-11 22:56:51 +01:00
Laurent Rineau f428cad11c rename from set_Steiner_vertex_on_face to set_Steiner_vertex_in_face 2024-02-09 15:20:17 +01:00
Laurent Rineau b51f3af912 WIP: cells markers 2024-02-09 15:11:19 +01:00
Laurent Rineau 9bfbf53fbb small fix for CDT_3 ctest 2024-02-09 15:07:55 +01:00
Laurent Rineau ba66191b30 better handling of polygon vertices markers 2024-02-09 14:52:05 +01:00
Laurent Rineau a195631f1c fix a bug: use a real marker 2024-02-03 17:36:19 +01:00
Laurent Rineau 66eb2cff14 add --no-repair 2024-02-03 17:31:46 +01:00
Laurent Rineau 69abbc0c6f Add debug_regions(bool) 2024-02-03 17:29:39 +01:00
Laurent Rineau a75f4cdaa5 fix for Thingi 243014.stl 2024-01-31 16:50:43 +01:00
Laurent Rineau 3d493adfef "merge facets" is not by default 2024-01-31 12:26:26 +01:00
Laurent Rineau 27de164679 fix my previous commit about Thingi 243014 2024-01-31 12:25:03 +01:00
Laurent Rineau 3c1359589b add a test case 2024-01-31 11:32:11 +01:00
Laurent Rineau eaa5c98289 better debugging message 2024-01-31 11:31:32 +01:00
Laurent Rineau d46d51d08e partial fix for Thingi 243014 2024-01-30 22:54:33 +01:00
Laurent Rineau e8f6b60350 Add debug_missing_region() at runtime 2024-01-30 14:51:38 +01:00
Laurent Rineau d6ac147b4d cosmetic renaming of a parameter (during code review with Jane)
plus use of `tr.vertices(Edge)` instead of home-made function.
2024-01-30 14:50:32 +01:00
Laurent Rineau 3cfa54ce1a proper class encapsulation for CDT_vb_3 2024-01-30 14:50:24 +01:00
Laurent Rineau bbc45c01fa rename to polygon_border_vertices 2024-01-29 09:34:31 +01:00
Laurent Rineau a5cf779795 debug debugging of missing faces from cavities 2024-01-26 16:36:31 +01:00
Laurent Rineau 37c5f131ac add an cmdline option to debug Steiner points
That replaces debug macros.
2024-01-26 16:35:52 +01:00
Laurent Rineau fb70d9dfb7 fix a bug in the dichotomy process to minimize a buggy input 2024-01-25 12:11:00 +01:00
Laurent Rineau 1b24edec3f re-add the merging of exactly coplanar faces 2024-01-25 10:56:46 +01:00
Laurent Rineau 6336e5b08a use region growing to detect almost coplanar patches 2024-01-22 23:05:07 +01:00
Sebastien Loriot 722e3825bb
Triangulation_2: Make IO save by changing file names (#7957)
## Summary of Changes

Change file names to avoid interaction between test cases.

@MaelRL I noticed that the RT test does not read back. 

## Release Management

* Affected package(s): Triangulation_2
* Issue(s) solved (if any): fix
[testsuite](https://cgal.geometryfactory.com/CGAL/testsuite/CGAL-6.0-Ic-141/Triangulation_2/TestReport_gimeno_ArchLinux-clang.gz)
* License and copyright ownership:  unchanged
2024-01-19 11:42:43 +01:00
Laurent Rineau d7032f5e57 new useful debugging messages 2024-01-16 15:28:44 +01:00
Laurent Rineau 73c5a2cf5f Add With_offset_tag 2024-01-16 15:27:48 +01:00
Laurent Rineau f753446633 oformat(x, tag) passed the tag value to the Output_rep
That allows to pass an integral offset to the displayed time stamps.

The goal is to set it to -1, to display vertices IDs that are identical to the input vertices indices of `the Surface_mesh`.
2024-01-15 09:45:25 +01:00
Laurent Rineau 939fbef9e6 new way to output after conforming
This new way ensures that the order of vertices in the output is also the order of vertices in the CDT.
2024-01-15 09:28:00 +01:00
Laurent Rineau 289d475ee6 vertices_in_constraint_end is bidirectional
That allows to speed up `constraint_extremities(Constraint_id c_id)`.
2024-01-14 20:41:17 +01:00
Laurent Rineau c6ac1e890d Add timestamps to base classes 2024-01-14 20:40:30 +01:00
Guillaume Damiand 3bc56024d3 Merge branch 'master' into gsoc2022-EBVs-Mostafa-ashraf19 2024-01-11 14:08:05 +01:00
Laurent Rineau 2838441b6a cosmetic change 2024-01-09 17:26:34 +01:00
Laurent Rineau f422541cb8 faster visitor implementation during the conforming 2024-01-09 17:26:20 +01:00
Laurent Rineau de6c5f2895 change the loop pattern when there are PLC errors
That gave a direct improvement for the four PLC error case from Thingi:

```
            name status       time     error new status   new time new error
Thingi10K_104400 FAILED   1.710520 PLC_error     FAILED   1.243950 PLC_error
Thingi10K_162100 FAILED   1.970900 PLC_error     passed   1.018690
Thingi10K_285604 FAILED  13.096400 PLC_error     FAILED   4.543940 PLC_error
Thingi10K_464846 FAILED 321.774000 PLC_error     FAILED  16.658500 PLC_error
```

One case `Thingi10K_162100` passed. And the other three got runtime
improvement before they reach the error.
2024-01-05 16:59:55 +01:00
Laurent Rineau 06288f3f04 improve the code reproducibility 2024-01-05 16:38:53 +01:00
Laurent Rineau c25f443368 fix a regression in speed 2024-01-04 18:17:31 +01:00
Laurent Rineau ba7725ffd7 fix the CDT testsuite
in particular test_CDT_3_insert_constrained_edge_from_EDG_file
2024-01-04 18:08:17 +01:00
Laurent Rineau 3cb8f4dd28 restore compilation with Epeck 2024-01-04 17:18:57 +01:00
Laurent Rineau ad38e7ac29 Add diagnostic "constrained segment is too close" 2024-01-04 16:27:37 +01:00
Laurent Rineau 09de2165a8 improve diagnostic "Min distance between vertices" 2024-01-04 14:51:10 +01:00
Laurent Rineau c36bd7559d extract function encroaching_vertices(va, vb) 2024-01-04 14:50:19 +01:00
Laurent Rineau 7d9e84e685 dump region in case of a fatal PLC error 2024-01-04 14:49:31 +01:00
Laurent Rineau 87f6a352d1 factorize a lambda function 2024-01-04 14:47:45 +01:00
Laurent Rineau 9b843a901d minor improvement of debug messages 2024-01-04 14:46:53 +01:00
Laurent Rineau 6a7c2fee3c missing const 2024-01-04 14:45:47 +01:00
Laurent Rineau ee77fa000f indentation 2024-01-04 14:43:58 +01:00
Laurent Rineau 96fa9c7d95 CDT_vb_3: regroup data members 2024-01-04 14:42:25 +01:00
Sébastien Loriot c99b69a0e7 add missing license headers 2024-01-04 13:50:15 +01:00
Sébastien Loriot e7c26349f2 move header in a package to GPL 2024-01-04 13:36:34 +01:00
Andreas Fabri e610677ee2 The same for 3D 2024-01-02 17:09:24 +00:00
Sebastien Loriot caecbe29c7
Replace boost::mpl (#7813)
- `boost::mpl::if_` --> `std::conditional`
- `boost::enable_if` -> `std::enable_if`
- `boost::mpl::and_` -> `&&`
- `boost::mpl::or_` -> `||`
- `boost::constant::bool_` -> `std::bool_constant`
- ...
2023-12-26 17:33:36 +01:00
Laurent Rineau 62e3e8dc12 port back to C++17
The lack of `std::set::contains` is a real pain! Using `count()`
instead reduces the readability of the code.
2023-12-13 16:56:03 +01:00
Laurent Rineau c41a55f99b fix indentation 2023-12-13 15:44:51 +01:00
Laurent Rineau 2a74954de9 add timing displays and a --quiet option 2023-12-13 15:00:23 +01:00
Laurent Rineau 0b9133fba3 reduce timings in cases of PLC errors 2023-12-13 14:57:27 +01:00
Laurent Rineau 4297466869 add `--failure-expression`
That avoids having to hardcode the assertion expression in the code
2023-12-13 14:56:22 +01:00
Laurent Rineau 10fc714df9 add options to set the epsilon values (in particular to make them 0) 2023-12-13 14:45:58 +01:00
Laurent Rineau 5a628ec88a Merge pull request #7881 from afabri/Poisson-enable_structural_filtering-GF
Poisson Surface Reconstruction: Enable Structural Filtering
2023-12-11 13:56:08 +01:00
Laurent Rineau 3f42717b5a remove a spurious assertion 2023-12-08 16:05:07 +01:00
Laurent Rineau 934e65cd35 fix the assertion `v->nb_of_incident_constraints < 0` 2023-12-07 11:33:55 +01:00
Guillaume Damiand bd04b2a68d Remove space in doc 2023-12-06 17:01:34 +01:00
Laurent Rineau 7037df170e backup this script change 2023-12-06 14:58:08 +01:00
Guillaume Damiand 03ff679df4 doc draw: move advanced blocks 2023-12-05 14:10:25 +01:00
Laurent Rineau 6e613e08bb Better labels for Thingi10K test cases 2023-12-05 13:21:32 +01:00
Laurent Rineau 0c8697168f detect small distances 2023-12-05 13:20:46 +01:00
Guillaume Damiand df2b9ad172 doc draw pwh 2023-12-05 13:16:54 +01:00
Guillaume Damiand 5b7f499fc1 doc draw polygon 2023-12-05 12:58:30 +01:00