Commit Graph

677 Commits

Author SHA1 Message Date
Jane Tournois 535a50217f avoid iterating twice 2020-03-06 17:11:45 +01:00
Jane Tournois 593489a614 wip smoothing using FMLS
reorganize code to have smaller functions,
use c++11 for loops on ranges,
constify variables...
2020-02-28 16:51:00 +01:00
Jane Tournois ad6de49304 and const's and use range iterators in smoothing
and remove outdated code
2020-02-28 14:28:20 +01:00
Jane Tournois 1c6d251859 fix conversion warning 2020-02-28 13:45:06 +01:00
Jane Tournois a7b745a446 fix init_c3t3() and the collapse() step
* the code of collapse() is made simpler because the C3t3 already embeds a lot
of topology information that we do not need to re-test

* init_c3t3() now fixes the dimension() of vertices because it was not always
properly set in the input c3t3

* add counters in the plugin to understand why some collapse of very short edges
fail
2020-02-28 13:40:00 +01:00
Jane Tournois baefa0d307 fix cout 2020-02-28 11:46:53 +01:00
Jane Tournois bb76c17ae5 use FMLS in smoothing, and revert to an older version
fix compilation with c3t3

this version is buggy and produces nan, I don't know why yet so smoothing is
commented out
2020-02-14 17:02:59 +01:00
Jane Tournois 2ef615d65d reset smoothing function to its initial version
and make sure it compiles with C3t3 requirements and a regular triangulation
2020-02-14 11:32:27 +01:00
Jane Tournois 628b800077 move back to helpers file the functions that are needed by smoothing 2020-02-14 11:31:46 +01:00
Jane Tournois b2686b35cc fix cout 2020-02-13 12:13:10 +01:00
Jane Tournois a7c2de7521 improve/fix collapse step
the topology_test was too restrictive and now makes better use of the info
stored in the C3t3

this commit also moves collapse-specific code to the corresponding file
(instead of the general "helpers" header)
2020-02-13 12:12:48 +01:00
Jane Tournois 7f8790332e fix iteration counting 2020-02-13 12:10:52 +01:00
Jane Tournois 8bacd01349 minor cout fix 2020-02-07 16:49:59 +01:00
Jane Tournois d0baa099d0 remove max_si computation, not needed anymore
also fix the count of c3t3 simplices in init_c3t3
(protected by debug macro anyway)
2020-02-07 16:49:35 +01:00
Jane Tournois 14b326bbe4 "far points" of Mesh_3 have dimension -1
deal with those, and keep their dimension "invalid" to be able to detect them
2020-02-07 15:39:31 +01:00
Jane Tournois 22e07a4a32 factor code 2020-02-07 12:16:28 +01:00
Jane Tournois 9ae27914cf fix the c3t3 surfaces in flip_n_to_m 2020-02-07 11:35:31 +01:00
Jane Tournois 707cdae9ed use c++11 for loops 2020-02-07 10:02:38 +01:00
Jane Tournois d345c2fe51 flip_3_to_2 does not break surfaces anymore
updating the outer hull of the set of modified cells is not enough,
"internal" facets should also be updated
2020-02-06 17:41:03 +01:00
Jane Tournois 62c390c354 use c++11 for loops, add const when possible, and rename containers 2020-02-06 16:44:23 +01:00
Jane Tournois 83df2cea52 rename is_inside(edge) to is_internal(edge)
for more readability
2020-02-06 11:27:07 +01:00
Jane Tournois 9eb178247d remove is_convex(tr) that has become useless 2020-02-06 11:20:41 +01:00
Jane Tournois 74243bae58 fix is_inside(edge)
by taking care also of facets that are in complex though incident
to the same subdomain on both sides
2020-02-06 11:19:27 +01:00
Jane Tournois 575f8111c3 remove imaginary stuff, and use CGAL internal named parameters 2020-02-04 17:23:30 +01:00
Jane Tournois dc496f5db6 add "peeling" of ultra-thin surface slivers 2020-02-04 16:32:32 +01:00
Jane Tournois 9d527321c4 cleaning 2020-02-04 15:30:04 +01:00
Jane Tournois a9e254efb4 flip does not break surfaces anymore 2020-02-04 15:29:49 +01:00
Jane Tournois b66b83f52c fix is_outside(edge) and in the meantime surfaces protection 2020-02-04 12:19:18 +01:00
Jane Tournois fea1bb946f collapse does not break surfaces anymore 2020-02-04 10:39:57 +01:00
Jane Tournois d59ef5021d fix split() step by fixing is_outside(edge)
- go on removing stuff about imaginary vertices
- after this commit, split() is fixed and collapse() causes holes on the surface
2020-02-03 16:50:05 +01:00
Jane Tournois 54df59efbb fix surface patch and subdomain indices during split
all of them should be restored after split, which creates twice as many cells
and is likely to recycle old cells, with their outdated c3t3 indices
2020-01-31 16:55:05 +01:00
Jane Tournois 2e5174f349 fix binary ofstream 2020-01-30 13:19:35 +01:00
Jane Tournois a791ea131e test the validity of the TDS only
when the input is a c3t3, the internal triangulation can be Delaunay
or Regular
remeshing it breaks its validity "on purpose", do we should not test
triangulation validity
2020-01-30 11:13:47 +01:00
Jane Tournois f53639ef83 use new API for named parameters 2020-01-28 17:50:14 +01:00
Jane Tournois d3db64f680 add binary dump 2020-01-28 15:50:57 +00:00
Jane Tournois bb0a407ed0 improve doc 2020-01-28 15:50:57 +00:00
Jane Tournois 69e64e5b0c add the ability to use a C3t3 directly in the remesher
instead of extracting the triangulation first
2020-01-28 15:50:57 +00:00
Jane Tournois c01952b98c use Triangulation_3 explicitly to make sure the base class is used
before that, one could give a DT3 or a RT3 to the remeshing function.
Remeshing would then make the triangulation invalid with respect to the
Delaunay or Regular criterion, though the TDS would remain valid.

Now it is clear that we do not expect nor return anything but a valid T3.
2020-01-28 15:50:57 +00:00
Jane Tournois b4a3dc181d add facet_is_constrained_map to constrain facets 2020-01-28 15:50:57 +00:00
Jane Tournois abe46686d8 move visitor to a private named parameter
this way we can use the triangulation output by Mesh_3
in a straightforward manner, without converting it to a
Remeshing_triangulation_3

also make sure that it compiles with the Regular_triangulation
used in the Mesh_3 demo plugin

and fix a doc typo
2020-01-28 15:50:56 +00:00
Jane Tournois e5dfe077b6 use MeshVertexBase_3 and MeshCellBase_3
the code uses a C3t3 so let's use the actual vertex base and cell base needed
by C3t3, instead of copied simplified versions
2020-01-28 15:50:56 +00:00
Jane Tournois 56003ec27e apply Laurent's review and rename some parameters 2020-01-28 15:50:56 +00:00
Jane Tournois 2a8335b60b wip smoothing 2020-01-28 15:50:56 +00:00
Jane Tournois 1c51a62a15 reintroduce FLMS smoothing on surfaces
code compiles but crashes in the smoothing step in the demo
2020-01-28 15:50:56 +00:00
Jane Tournois b0549946f5 add dump helpers and fix existing dump functions 2020-01-28 15:50:55 +00:00
Jane Tournois 92ac1cf2d9 user manual : make better examples 2020-01-28 15:50:55 +00:00
Jane Tournois 27c67b70db wip user manual 2020-01-28 15:50:55 +00:00
Jane Tournois fe270e4509 use geom traits in smoothing 2020-01-28 15:50:55 +00:00
Jane Tournois 1e7d4a2289 use the triangulation traits class in split, collapse and flip steps 2020-01-28 15:50:55 +00:00
Jane Tournois 87d01eb7cd add RemeshingTriangulationTraits_3 and start using the concept
preprocess() is done
2020-01-28 15:50:54 +00:00
Jane Tournois cbce3b9237 first introduction of an API for future sizing function 2020-01-28 15:50:54 +00:00
Jane Tournois ad85942c0b move Vertex_converter and cell_converter to the user code : the plugin 2020-01-28 15:50:54 +00:00
Jane Tournois 911cd4a82f reintroduce examples and simplify converters 2020-01-28 15:50:54 +00:00
Jane Tournois fb71408aed replace cell_base_with_info by a visitor
the goal is to let a visitor deal with external cell info
it also simplifies the API
2020-01-28 15:50:54 +00:00
Jane Tournois cd77b55210 replace constrained map of edges by constrained map of pairs of vertices
because there are more than one representation of the same Edge,
all around it
2020-01-28 15:50:53 +00:00
Jane Tournois 51eea5fcf0 wip documentation after review of Pierre & Laurent 2020-01-28 15:50:53 +00:00
Jane Tournois 3d83914017 wip : start implementing Laurent's review 2020-01-28 15:50:53 +00:00
Jane Tournois fe5a669a0d reference manual ready for review 2020-01-28 15:50:53 +00:00
Jane Tournois ea34ae0a56 wip doc continued 2020-01-28 15:50:53 +00:00
Jane Tournois feb6305d60 wip doc 2020-01-28 15:50:53 +00:00
Jane Tournois 0281777dae more cleaning of helper files (merged) 2020-01-28 15:50:52 +00:00
Jane Tournois ebb9416762 reorganize helper headers
and move all dump_***() functions to the same file
2020-01-28 15:50:52 +00:00
Jane Tournois 6af44bf121 remove obsolete code 2020-01-28 15:50:52 +00:00
Jane Tournois 3ac4d6d4a6 minor cleaning and commenting 2020-01-28 15:50:52 +00:00
Jane Tournois 5a4b1a0d9b clean typedefs and point types 2020-01-28 15:50:52 +00:00
Jane Tournois e4ee1e3926 clean preprocess() point types 2020-01-28 15:50:51 +00:00
Jane Tournois f40210d858 clean split() 2020-01-28 15:50:51 +00:00
Jane Tournois d2466b9fee start cleaning
Corner_index and Curve_segment_index are int by default in C3t3
2020-01-28 15:50:51 +00:00
Jane Tournois 5c0b40f591 remove imaginary cells from the complex once remeshing is done 2020-01-28 15:50:51 +00:00
Jane Tournois 0fb3a44d2e remeshing plugin should use Remeshing_triangulation
using Mesh_triangulation_3 (which is an enriched Regular_triangulation_3)
compiles, but the calls of tr.is_valid() fail since the triangulation
is not regular anymore after remeshing

we reconvert it back to the demo c3t3 triangulation type anyhow, to be able
to display it, hoping that is_valid() will not be called later on
2020-01-28 15:50:51 +00:00
Jane Tournois ebb4a99822 towards the use of remeshing with any input triangulation with subdomain_index 2020-01-28 15:50:51 +00:00
Jane Tournois 197193bdbd fix more Point_3/Weighted_point_3 conflicts 2020-01-28 15:50:50 +00:00
Jane Tournois 3fe06a2fa3 adapt the remesher code to the demo
- make it work with Regular_triangulation and its Weighted_points
- remove everything which was not needed about Surface_patch_index
(1 is in the complex, 0 is not, and is_in_complex(facet) tests
incident subdomains)
2020-01-28 15:50:50 +00:00
Jane Tournois 5716dcfc88 fix namespaces 2020-01-28 15:50:50 +00:00
Jane Tournois e42fcff754 add operator<< and operator>> for IO 2020-01-28 15:50:50 +00:00
Jane Tournois dc16af085b take any simple triangulation as input
it is not needed to store `input_cell` in the general case
2020-01-28 15:50:50 +00:00
Jane Tournois 97651adbec add very first version of tetrahedral remeshing package 2020-01-28 15:50:49 +00:00