Commit Graph

187 Commits

Author SHA1 Message Date
Mael Rouxel-Labbé 8f409f03ff Avoid producing a mesh with garbage in the non-manifold case 2023-10-16 16:57:45 +02:00
Mael Rouxel-Labbé 29846572e3 Increment erase counter for cells changing labels during flooding
Makes it easier to detect faces that no longer need
to be treated (zombies).
2023-10-16 16:57:20 +02:00
Mael Rouxel-Labbé c19975bef7 Revert to the previous non-manifold extraction code
Neither are able to produce a closed, combinatorial manifold surface
100% of the time, so minimize the diff.
2023-10-16 11:06:36 +02:00
Mael Rouxel-Labbé da6b202869 Add a function to purge inner (useless) CCs 2023-10-16 11:06:11 +02:00
Mael Rouxel-Labbé f43c4ec58a Minor example fix 2023-10-16 11:05:48 +02:00
Mael Rouxel-Labbé 8f3cc5c86b Simplify volume check in make_manifold() 2023-10-16 10:18:01 +02:00
Mael Rouxel-Labbé 91c679234b Rename the builder class 2023-10-13 10:56:58 +02:00
Mael Rouxel-Labbé 205fcff141 Make seeds a member of the wrapper 2023-10-13 10:53:56 +02:00
Mael Rouxel-Labbé 1066a9622f Only flag outside cells during manifold enforcement
Otherwise, it creates holes if we reset manifold flags...
2023-10-11 16:51:09 +02:00
Mael Rouxel-Labbé e031169534 Fix merge issue 2023-10-11 16:50:48 +02:00
Mael Rouxel-Labbé 06005369ac Merge remote-tracking branch 'mine/AW3-Improve_manifoldness_enforcement-GF' into AW3-Resume_aw3-GF 2023-10-10 13:36:19 +02:00
Mael Rouxel-Labbé c19799aa59 Move "go_further()" check up
So it doesn't purge zombies or print gate info that would not be refined
2023-10-10 13:23:05 +02:00
Mael Rouxel-Labbé 67e1b32c21 Do not recompute the queue when resuming 2023-10-10 13:22:46 +02:00
Mael Rouxel-Labbé 49f26abd65 enum > enum class 2023-10-10 13:15:01 +02:00
Mael Rouxel-Labbé 48d2057f40 Add a third type of cell label to distinguish relabeling for manifoldness 2023-10-10 13:06:56 +02:00
Mael Rouxel-Labbé 0e9da7ab96 Debug code and minor cleaning 2023-10-10 12:20:07 +02:00
Mael Rouxel-Labbé 2f1992f131 Add LIFO queue
But keep the old one, because we might need something sorted in the future.

Also it is needed to do interrupting, because the intermediate is really
ugly for a LIFO queue.
2023-10-09 15:16:10 +02:00
Mael Rouxel-Labbé 7de4f442e8 Remove obsolete sort at every iteration
There was a need for sorting at every iteration when the sorting
used criteria which were changing with every iteration. This
is no longer the case after c7b9317.

Also make it deterministic.
2023-10-09 12:12:31 +02:00
Mael Rouxel-Labbé 76add8023e Add debug code 2023-10-05 14:35:42 +02:00
Mael Rouxel-Labbé 3ff06d5099 Fix return type of function returning smallest circumradius 2023-10-05 14:34:29 +02:00
Mael Rouxel-Labbé 85c53f203d Add a new function to the AW3 visitor: go_further() 2023-10-05 14:33:47 +02:00
Mael Rouxel-Labbé 8846876476 Check for degenerate segments + add warnings 2023-10-04 22:54:06 +02:00
Mael Rouxel-Labbé 660d620330 Accelerate trees manually to avoid skewing timers in flood_fill()
If one day this becomes annoying because one wishes to call
oracle.add_XXX() multiple times AND it's a significant
runtime burden, we can just add a function add_XXXs()
with a single call of accelerate_distance_queries()
2023-10-04 22:52:53 +02:00
Mael Rouxel-Labbé ad5ae27c42 Factorize code generating filenames out of examples 2023-10-04 22:49:06 +02:00
Mael Rouxel-Labbé 9fa445f217 Change nomenclature to clarify the different types of gate permissiveness 2023-10-02 13:18:14 +02:00
Mael Rouxel-Labbé c17841356a Minor error message tweak 2023-10-02 13:10:38 +02:00
Mael Rouxel-Labbé 8ccce4c536 Avoid one useless facet check
This doesn't bring any speed-up because it was a very fast exit
in push_facet(): the neighbor was necessarily outside (since we
come from it), and we are done.
2023-09-29 11:19:52 +02:00
Mael Rouxel-Labbé be42e0fbe8 Minor debug code cleaning 2023-09-29 11:19:39 +02:00
Mael Rouxel-Labbé 7e2386f97e Use the real circumradius value to sort the facets
Meaning, use the value that we compare against alpha, and not
simply the radius of the smallest circumscribing ball.

This strongly changes the order of the queue and thus thus results
are very different, but still the same (same guarantees, same
element quality, only a little bit more elements, etc.)

Also a massive, ~35% speed-up, that needs to be investigated.
2023-09-29 11:14:42 +02:00
Mael Rouxel-Labbé cfae913d77 Complete the sort functor in AW3's main queue 2023-09-29 11:13:31 +02:00
Mael Rouxel-Labbé e3854f68e3 Expose useful typedefs from Alpha_wrapper_3 2023-09-29 11:12:31 +02:00
Mael Rouxel-Labbé 53c89475a3 Rename a variable 2023-09-29 11:12:17 +02:00
Mael Rouxel-Labbé 00f167a835 Add benchmarking scripts 2023-09-29 11:02:47 +02:00
Mael bc8351f156
Fix typo 2023-09-27 11:06:49 +02:00
Mael Rouxel-Labbé 62bb2a58d0 Put the warnings outside of verbosity macros (too important) 2023-09-27 10:13:39 +02:00
Mael Rouxel-Labbé c82f2a9d9c Update some variable names to reflect the genericity of the triangulation 2023-09-27 10:11:31 +02:00
Mael Rouxel-Labbé d3b66037bc Merge remote-tracking branch 'cgal/master' into AW3-Resume_aw3-GF 2023-09-20 14:23:07 +02:00
Mael Rouxel-Labbé 19cb693a1b Improve debug code 2023-09-20 12:59:46 +02:00
Mael Rouxel-Labbé 36017331c2 Add an example of successive AW3 restarts 2023-09-20 12:58:30 +02:00
Mael Rouxel-Labbé 5304f739b9 Enable restarting from a previous wrap 2023-09-20 12:57:02 +02:00
Mael Rouxel-Labbé bff07b2fc9 Simplify the gate comparer: we can also sort artificial facets like normal facets
Artificial facets are *not* infinite facets.
2023-09-20 12:55:11 +02:00
Mael Rouxel-Labbé 4d50ec46b3 Consider all cases in facet_status
In a normal run of the algorithm, we shall never ask the facet status
of a facet that is already outside, but it's better to be complete
and it costs nothing.
2023-09-20 12:53:12 +02:00
Mael Rouxel-Labbé 4512b0e6f4 Rewrite the extraction of possibly non-manifold wraps 2023-09-20 12:52:20 +02:00
Mael Rouxel-Labbé 88bcd40966 Enable changing the oracle in the AW3 builder 2023-09-20 12:50:25 +02:00
Mael Rouxel-Labbé 86e28d2c85 Change default model 2023-09-13 15:45:15 +02:00
Mael Rouxel-Labbé 70c79da6fc Merge remote-tracking branch 'cgal/master' into AW3-Tet_remesh_example-GF 2023-09-13 15:31:10 +02:00
Mael Rouxel-Labbé 57fe29fe4f Add some comments about failed speedup experiments 2023-08-04 11:27:41 +02:00
Mael 330ff2e657 Fix spelling
Thanks @albert-github!
2023-08-03 12:30:18 +02:00
Mael Rouxel-Labbé b4e207ab00 Add some comments on AW3 manifoldness heuristics criteria 2023-08-03 12:30:12 +02:00
Mael Rouxel-Labbé c7b9317a96 Simplify choice of cells to un-carve while enforcing manifoldness
This combinatorial choice seemed like a good idea, but it can have
nasty cascading effects, adding very large tetrahedra. See this
issue: https://github.com/CGAL/cgal/issues/7625

In the end, the only thing we care about is small volumes being added.

I keep the artificial vertex for now, but I am not fully convinced
these should be actually kept too.
2023-08-03 12:30:08 +02:00
Mael Rouxel-Labbé 8076e20b71 Add debug code 2023-08-03 12:30:03 +02:00
Mael Rouxel-Labbé 6949cdb40a Fix missing default initialization of the AW3 markers in the new Vb/Cb 2023-08-03 12:15:58 +02:00
Mael Rouxel-Labbé 5179c4acb1 Clean examples 2023-08-03 12:06:23 +02:00
Mael Rouxel-Labbé dab6394215 Introduce AW3 Vb/Cb to avoid using T3_Vb/Cb_with_info_3 2023-08-03 12:05:40 +02:00
Mael Rouxel-Labbé 924f2df492 Add an example: remeshing the (internal) 3D triangulation of an alpha wrap 2023-07-21 16:25:49 +02:00
Mael Rouxel-Labbé 5e8d59c4dd Make the triangulation a template parameter of the Alpha Wrap builder
Advanced users only for now: you need to know what you're doing
as the geom traits need to define the Ball_3 (usually that means
wrapping your Gt with AABB_AW_geom_traits) and you need to have
Vb/Cb contain the AW Vb/Cb in the stack.
2023-07-21 16:22:41 +02:00
Mael Rouxel-Labbé 7f85651e82 Merge remote-tracking branch 'cgal/master' into PMP-Remove_degen_faces-no-clear-GF 2023-07-19 13:55:35 +02:00
albert-github ad41766454 issue #7395 Improvement of layout of model relations
Corrected `cgalModels` to `cgalHasModes` inside `cgalHasNodelsBegin` / `cgalHasModelsEnd`
2023-07-18 13:23:37 +02:00
albert-github 4e5578d469 issue #7395 Improvement of layout of model relations
- based on review
2023-07-15 13:12:15 +02:00
albert-github a0320dd7b4 Merge branch 'master' into feature/issue_7395
# Conflicts:
#	Polyhedron/doc/Polyhedron/Concepts/PolyhedronItems_3.h
2023-07-13 10:33:18 +02:00
albert-github ee2a55279d issue #7395 Improvement of layout of model relations
- Completed the cgalHasModel part
- corrected spelling of `Has Model` and `Is Model Of` to `Has model` and `Is model of`
2023-07-06 17:35:34 +02:00
Laurent Rineau aca86b9d27 Merge pull request #7500 from MaelRL/AW3-Stop_demo-GF
Add stop button for AW3 demo
2023-07-05 16:32:39 +02:00
Sébastien Loriot 0ee31a5d4f remove extra parenthesis 2023-06-19 19:17:49 +02:00
Sébastien Loriot bbc4d08ee0 Merge remote-tracking branch 'cgal/master' into HEAD 2023-06-15 10:47:07 +02:00
Sébastien Loriot c8a88b9014 remove CGAL_static_assertion* 2023-06-15 10:42:10 +02:00
Mael Rouxel-Labbé 5c8acef035 Add the possibility to interrupt AW3 (whether iterative visu is used or not) 2023-06-07 10:29:42 +02:00
Mael Rouxel-Labbé 1c646c0db2 Do not take a const& to the oracle in AW3
No changes to existing oracles as AW3's oracles use a shared ptr to AABB Tree
2023-06-07 10:28:35 +02:00
Andreas Fabri 609f8ef7f1 Alpha Wrapping: minor cleanup 2023-06-01 10:58:52 +01:00
Mael Rouxel-Labbé a69a2f54c6 Rename to avoid conflict with STL 2023-05-16 14:21:27 +02:00
Mael Rouxel-Labbé 7a3ad05e05 Replace some calls of clear() by empty() to preserve internal property maps 2023-05-15 12:41:39 +02:00
Andreas Fabri 0d320e48a8 Merge branch 'Number_types-fix_VC2017_boost_mp-GF' into CORE-boost_mp_number-GF 2023-03-17 08:28:10 +01:00
Laurent Rineau ea016d7f5b Merge pull request #6702 from soesau/Region_growing-revision-soesau
[Small Feature] Region growing revision soesau
2023-03-02 13:42:32 +01:00
Sébastien Loriot 9e72361537 All packages depends now on CGAL_Core (like Kernel) 2023-02-20 15:24:16 +01:00
Sébastien Loriot 9242a810c4 Merge remote-tracking branch 'cgal/master' into Region_growing-revision-soesau 2023-02-07 11:31:55 +01:00
albert-github 57e900b47c Making description of author(s) of a package consistent
- use `\cgalPckAuthor` in case of one author
- use of `\cgalPckAuthors` in case of multiple authors
- using in case of multiple authors always `, and `
- in the 1.9.6 `BaseDoxyfile.in` let the `\cgalPckAuthors` point to `\cgalPckAuthor` to get consistent output (not done for other versions as in the past the `ALIASES` could not call one another).
2023-02-02 18:40:44 +01:00
Sébastien Loriot 411560a33e add missing default value 2023-01-26 09:56:25 +01:00
Sébastien Loriot cd76994056 rename property map and deprecated old name 2023-01-18 13:45:37 +01:00
albert-github 014c06fd19 spelling corrections
Some spelling corrections (Directories starting with `A`)
2022-11-14 15:32:47 +01:00
Laurent Rineau 3379f9bf9c Merge pull request #6998 from sloriot/AW_3-AABB_GT
Rename traits class to avoid confusion
2022-11-07 10:08:13 +01:00
Mael 9c2d913636
Also update the name of the include guard 2022-11-01 19:48:55 +01:00
Sébastien Loriot 7a8f91b34c rename traits class to avoid confusion 2022-11-01 16:09:26 +01:00
Mael Rouxel-Labbé 728be94816 Move some input named parameters to in_np 2022-10-12 09:45:31 +02:00
Mael Rouxel-Labbé 25184ee42c add some extra verbose in example 2022-09-03 14:00:32 +02:00
Mael Rouxel-Labbé 46c9fa19ab Add clear() to oracles 2022-09-03 14:00:20 +02:00
Sven Oesau 80eb8601e6
Merge branch 'CGAL:master' into Region_growing-revision-soesau 2022-09-02 16:42:41 +02:00
Laurent Rineau d49ee20965
Merge pull request #6665 from sloriot/CGAL-std_type_traits 2022-08-17 13:56:54 +02:00
Mael Rouxel-Labbé 5cb3d3f101 Add triangle soup wrap example 2022-08-07 10:12:02 -07:00
Sébastien Loriot cbabc5f0d3 mesh has been renamed 2022-08-04 08:36:12 +02:00
Sébastien Loriot c9c6b30cf0 Merge sloriot/CGAL-std_type_traits into master 2022-06-23 16:35:37 +02:00
Sébastien Loriot 4f5f8341cc use std::enable_if_t 2022-06-10 07:37:53 +02:00
Mael Rouxel-Labbé beeae185a7 Add a basic visitor to AW3 2022-06-08 12:04:02 +02:00
Mael Rouxel-Labbé 965964e8b8 Visualization with a soup, some colors, alpha shading etc. 2022-06-02 14:25:43 +02:00
Mael Rouxel-Labbé ae581c865a Iterative visualization 2022-06-02 02:21:26 +02:00
Mael Rouxel-Labbé 964bcd83ec Fix unused parameter warning 2022-05-25 09:37:37 +02:00
Mael Rouxel-Labbé 3a64952314 Fix using outside information to erroneously filter bboxes during traversal 2022-05-24 14:31:00 +02:00
Mael Rouxel-Labbé d56584bf28 Misc minor fixes / improvements 2022-05-24 14:30:42 +02:00
Mael Rouxel-Labbé fd471ebb5c Update AW3 examples 2022-05-24 10:10:08 +02:00
Mael Rouxel-Labbé 9fbfd9ac39 AW3 oracle improvements (mostly no longer templated by the data) 2022-05-24 10:08:56 +02:00
Mael Rouxel-Labbé 06053d2186 Allow empty oracle levels 2022-05-24 10:02:57 +02:00
Sebastien Loriot 978d83a349
Merge pull request #6573 from sloriot/CGAL-pedantic_warnings
Fix pedantic warnings
2022-05-13 15:55:26 +02:00