Commit Graph

677 Commits

Author SHA1 Message Date
Jane Tournois bf33ce9877 add default named parameters 2023-11-07 11:53:19 +01:00
Jane Tournois ece066a05c remove interpolation and keep only the sizing at closest point in kd-tree 2023-11-07 10:57:53 +01:00
Jane Tournois eb2605d506 another interpolation scheme
weights are 1/squared_distance_to(query point)
2023-11-07 10:17:01 +01:00
Jane Tournois a849daf6b9 attempt to improve the sizing field 2023-11-03 18:19:45 +01:00
Jane Tournois 1ced7d7f79 there is no need to take the sqrt here! 2023-11-03 16:55:03 +01:00
Jane Tournois e96b1802c2 use only const ref to sizing function 2023-11-03 16:54:35 +01:00
Jane Tournois 778cd85965 Merge branch 'Tet_remeshing-with_sizing_field-jtournois' of https://github.com/janetournois/cgal into Tet_remeshing-with_sizing_field-jtournois
# Conflicts:
#	Tetrahedral_remeshing/examples/Tetrahedral_remeshing/mesh_and_remesh_with_sizing.cpp
#	Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h
#	Tetrahedral_remeshing/include/CGAL/tetrahedral_remeshing.h
2023-11-03 16:20:52 +01:00
Jane Tournois 1bbbc0aae2 cleaning after 2 previous commits 2023-11-03 16:13:10 +01:00
Jane Tournois 385e770762 remove unused typedefs 2023-11-03 16:08:16 +01:00
Jane Tournois 494e1d94e5 new adaptive sizing field based on a Kd_tree
the kd_tree is built from the input triangulation, with points and
the local mesh size in the triangulation
2023-11-03 16:03:52 +01:00
Jane Tournois ca97b0f140 use Mesh_sizing_field in tetrahedral_adaptive_remeshing
+ add a types generator for Adaptive_remesher and its parameters,
extracted from the named parameters
2023-11-02 10:25:03 +01:00
Jane Tournois 324e95c280 fix sizing lambda when input is a C3T3 2023-11-02 10:25:03 +01:00
Jane Tournois 1f1e0d787c compare sizing with min/max at edge vertices, instead of midpoint
this should lead to fewer remeshing operations because the conditions
are lighted
2023-11-02 10:25:03 +01:00
Jane Tournois 4c8a927718 make the code simpler and not really more expensive 2023-11-02 10:25:02 +01:00
Jane Tournois 7387a1d73c cleaning 2023-11-02 10:25:02 +01:00
Jane Tournois 619d5a7865 use vertices() functions from Triangulation_3 2023-11-02 10:25:02 +01:00
Jane Tournois 3006d2ef70 move size comparison to is_too_short(edge) and is_too_long(edge) functions 2023-11-02 10:25:01 +01:00
Jane Tournois 6467281c8a query size at edge midpoint 2023-11-02 10:25:00 +01:00
Jane Tournois cae6377e25 propagate the use of sizing field to subfunctions of remeshing 2023-11-02 10:25:00 +01:00
Jane Tournois 2462524af2 (dummy) initial test with input sizing field (compiles) 2023-11-02 10:25:00 +01:00
Jane Tournois aec7ef9eb3 rename debug output file 2023-11-02 10:24:43 +01:00
Jane Tournois 4297e361cd improve max_subdomain_index() and max_curve_index() 2023-11-02 10:23:28 +01:00
Jane Tournois da015260c2 rewrite init_c3t3
for better handling of input triangulation not generated by Mesh_3
2023-11-02 10:23:28 +01:00
Jane Tournois b38b339002 fix dimensions of vertices in internal c3t3
it may happen that the mesh output by Mesh_3 has vertices with dimension 2
incident to no surface patch (because the mesh is not dense enough to
provide a good approximation of the surface).
This "wrong" dimension setting may lead to bad behavior of tetrahedral remeshing
2023-11-02 10:23:28 +01:00
Jane Tournois b925875fd2 try to please CI 2023-10-31 14:59:08 +01:00
Jane Tournois 09f3f0cb46 use Mesh_sizing_field in tetrahedral_adaptive_remeshing
+ add a types generator for Adaptive_remesher and its parameters,
extracted from the named parameters
2023-10-31 12:19:34 +01:00
Jane Tournois 8782c36a02 fix sizing lambda when input is a C3T3 2023-10-26 15:57:51 +02:00
Jane Tournois 041ebcb5f3 compare sizing with min/max at edge vertices, instead of midpoint
this should lead to fewer remeshing operations because the conditions
are lighted
2023-10-26 15:57:23 +02:00
Jane Tournois 55473e2863 Merge remote-tracking branch 'cgal/master' into Tet_remeshing-with_sizing_field-jtournois
# Conflicts:
#	Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h
2023-10-26 14:57:32 +02:00
Jane Tournois 383dfeb895 make the code simpler and not really more expensive 2023-10-26 12:28:43 +02:00
Jane Tournois be21cfc4d6 cleaning 2023-10-26 12:25:49 +02:00
Jane Tournois fb7a3d9cde use vertices() functions from Triangulation_3 2023-10-26 12:16:49 +02:00
Sébastien Loriot ca0f9acbe0 Merge remote-tracking branch 'cgal/5.6.x-branch' 2023-10-25 17:43:16 +02:00
Sebastien Loriot a82f5115a4
Tetrahedral remeshing of a C3t3 - fix default cell selector (#7760)
## Summary of Changes

In the demo, tetrahedral remeshing is called directly on the C3t3. This
PR fixes the default `cell_selector` when remeshing is called on a C3t3.

## Release Management

* Affected package(s): Tetrahedral_remeshing
* License and copyright ownership: unchanged
2023-10-25 08:39:01 -07:00
Jane Tournois f971f29cf6 move size comparison to is_too_short(edge) and is_too_long(edge) functions 2023-10-25 17:12:00 +02:00
Jane Tournois 7a2dfd782b query size at edge midpoint 2023-10-24 17:17:41 +02:00
Jane Tournois 23e9bd31dc propagate the use of sizing field to subfunctions of remeshing 2023-10-24 15:53:16 +02:00
Jane Tournois 291a29d795 (dummy) initial test with input sizing field (compiles) 2023-10-24 15:10:49 +02:00
Jane Tournois a2fda6a878 Merge branch 'Tet_remeshing-c3t3_initialization-jtournois' into Tet_remeshing-with_sizing_field-jtournois 2023-10-24 13:43:31 +01:00
Sébastien Loriot 0f45fedf53 remove unused type 2023-10-18 11:59:30 +02:00
Jane Tournois e071250b4d rename debug output file 2023-10-17 16:24:28 +02:00
Jane Tournois 1a9f39239c improve max_subdomain_index() and max_curve_index() 2023-10-17 15:38:03 +02:00
Jane Tournois 6a6595224c rewrite init_c3t3
for better handling of input triangulation not generated by Mesh_3
2023-10-17 15:14:10 +02:00
Laurent Rineau a5fcf016b7 Merge branch '5.6.x-branch'
# Conflicts:
#	Documentation/doc/resources/1.8.13/BaseDoxyfile.in
#	Documentation/doc/resources/1.9.6/BaseDoxyfile.in
2023-10-16 11:11:07 +02:00
Laurent Rineau 3575673788 Merge pull request #7753 from sloriot/TR3-fix_opti_warning
Fix warning
2023-10-16 11:04:36 +02:00
Jane Tournois f54e190074 fix dimensions of vertices in internal c3t3
it may happen that the mesh output by Mesh_3 has vertices with dimension 2
incident to no surface patch (because the mesh is not dense enough to
provide a good approximation of the surface).
This "wrong" dimension setting may lead to bad behavior of tetrahedral remeshing
2023-10-13 14:14:31 +02:00
Jane Tournois f148d95cce fix default cell_selector for when input is a C3t3
only cells with a subdomain != 0 should be remeshed
2023-10-06 15:17:15 +02:00
Jane Tournois 177b77da63 rename debug output file 2023-10-06 15:14:42 +02:00
Sebastien Loriot 33a1d33690
use error msg 2023-10-03 14:37:01 +02:00
Sébastien Loriot 95d11d45c6 fix warning with optimisers on 2023-10-02 16:12:48 +02:00
Mael Rouxel-Labbé 3ef293b5bd Update to new cgalModels 2023-09-08 11:41:14 +02:00
Mael Rouxel-Labbé e2832dfe6d Merge remote-tracking branch 'cgal/master' into SMDS_3-Fix_stack-GF 2023-09-07 15:59:04 +02:00
Mael Rouxel-Labbé cdb0a1c154 Merge remote-tracking branch 'cgal/master' into SMDS_3-Fix_stack-GF 2023-09-05 13:51:01 +02:00
albert-github 93001308f4 Merge branch 'master' into feature/issue_7395
# Conflicts:
#	Arrangement_on_surface_2/doc/Arrangement_on_surface_2/Concepts/ArrangementPointLocation_2.h
#	Arrangement_on_surface_2/doc/Arrangement_on_surface_2/Concepts/ArrangementVerticalRayShoot_2.h
2023-08-18 11:10:42 +02:00
Mael Rouxel-Labbé a935682a82 (Re-)introduce Compact_simplicial_mesh_cell_base_3
Formerly known as Simplicial_mesh_cell_base_3, this cell base
is more efficient in memory, but cannot inherit a base.
2023-07-24 11:05:47 +02:00
Mael Rouxel-Labbé 3ad1825359 Fix not being able to Rebind multiple time SMDS_3 / Tet Remesh Vb/Cb
If you have the following construct:

  class V : public Vb;

  class V_base
  {
    struct Rebind --> V;
  }

then you cannot rebind twice. More vicious, if Vb
can rebind twice multiple times (e.g. it's a T3 Vb),
then it'll silently drop V in the stack, and rebind
only up to the rebound Vb!

Rebinding multiple times happens for example in
Triangulation_hierarchy_3 (Delaunay_triangulation_3
with Fast_locate).
2023-07-21 09:55:01 +02:00
Mael Rouxel-Labbé 796baca1c5 Misc minor cleaning 2023-07-19 22:43:14 +02:00
Mael Rouxel-Labbé ce9fa95e2b Fixes for the doc of tetrahedral remeshing 2023-07-19 22:42:45 +02:00
Mael Rouxel-Labbé c0d0c0d01f Fix API of Remeshing_vertex_base_3:
It needs only to document a traits and a vertex base, not expose
index types as these are relevant to the Simplicial_vertex_base_3
class, which is not the systematic base.

It is a model of RemeshingVertexBase_3, not MeshVertexBase_3

The base needs to be a model of SimplicialVertexBase_3, not
TriangulationCellBase_3

Use the proper Rebind mechanism like the other vertex/cell classes
2023-07-19 22:42:21 +02:00
Mael Rouxel-Labbé 50fa1ee4de Various fixes for Remeshing_cell_base_3:
- Restore its correct API (as in CGAL 5.5): two templates, a traits,
and a cell base.
- It is not a model of SimplicialMeshCellBase_3, but of RemeshingCellBase_3
- It should not hardcode an inheritance to Simplicial_cell_base_3,
but take it as a template paramter's default value.
- Use FT instead of hardcoding 'double'
2023-07-19 22:36:39 +02:00
albert-github 301728a8a9 issue #7395 Improvement of layout of model relations
- Completed the cgalModels part
2023-07-09 12:43:36 +02:00
Sébastien Loriot b66afab814 Merge remote-tracking branch 'sloriot/CGAL-using_c++17_stl' into HEAD 2023-07-05 11:29:35 +02:00
Sébastien Loriot d91d010ee7 add missing includes 2023-06-29 18:07:48 +02:00
Sébastien Loriot f936680600 Merge remote-tracking branch 'cgal/master' into HEAD 2023-06-15 18:48:39 +02:00
Sébastien Loriot 9cdfe70abb Merge remote-tracking branch 'sloriot/CGAL-toward_6.0' 2023-06-15 11:34:09 +02:00
Sébastien Loriot bbc48b2c7e more fixes
use Mesh_3::internal::get_index
std::dynamic_point_cast
std::get_if
2023-06-15 10:57:10 +02:00
Sébastien Loriot 9a0bdb5d96 boost::variant ---> std::variant 2023-06-15 10:57:10 +02:00
Sébastien Loriot 604dcdc435 boost::optional => std::optional 2023-06-15 10:57:09 +02:00
Sébastien Loriot a88af6c0c6 boost::array -> std::array 2023-04-23 22:37:07 +02:00
Laurent Rineau 1dce90ee79 Merge remote-tracking branch 'cgal/master' into CGAL-allow_Epick_with_float-GF 2023-04-07 10:59:51 +02:00
Andreas Fabri 49f7a40593 Use CGAL_Assertion_code() 2023-02-09 09:42:55 +00:00
Sébastien Loriot 9e137bca24 Merge 'cgal/master' 2023-01-31 12:26:55 +01:00
Laurent Rineau 5f8930db8c Merge branch '5.5.x-branch'
# Conflicts:
#	Convex_hull_2/test/Convex_hull_2/ch_test_CH.cpp
#	Convex_hull_2/test/Convex_hull_2/ch_test_SC.cpp
#	Convex_hull_2/test/Convex_hull_2/ch_test_SH.cpp
#	Convex_hull_2/test/Convex_hull_2/ch_test_SS.cpp
#	Straight_skeleton_2/include/CGAL/constructions/Straight_skeleton_cons_ftC2.h
#	Straight_skeleton_2/include/CGAL/predicates/Straight_skeleton_pred_ftC2.h
2023-01-27 21:16:14 +01:00
Laurent Rineau 47ac939ebe Merge pull request #7134 from janetournois/Tet_remeshing-fix_dimensions-jtournois
Tet remeshing - fix vertices `dimension`
2023-01-27 20:52:22 +01:00
Mael 4d22c90474
Merge branch 'master' into feature/bug_documentation_spell_20221113 2023-01-04 10:06:45 +01:00
Jane Tournois 73063a618b Revert "fix init_c3t3 for internal C3t3"
This reverts commit a90488fce5.
2022-12-21 14:42:39 +00:00
Laurent Rineau cf04d506f3 Merge PR "Mesh_3, dump_c3t3: remove verbose flag" #7110 2022-12-14 10:28:21 +01:00
Laurent Rineau 1b6d590125 Merge pull request #7110 from sloriot/TR-remove_verbose_flag
Mesh_3, dump_c3t3: remove verbose flag
2022-12-14 10:18:16 +01:00
Sébastien Loriot f38ff92498 remove verbose flag 2022-12-07 14:29:05 +01:00
Mael 0ff7882997
Merge branch 'master' into feature/bug_documentation_spell_20221113 2022-12-06 22:21:06 +01:00
Laurent Rineau 05b446eb3e Merge pull request #6992 from janetournois/Tet_remeshing-selection_pmap-jtournois
Tet remeshing - `cell_is_selected_map` should be a property map

# Conflicts:
#	Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/compute_c3t3_statistics.h
#	Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/split_long_edges.h
2022-12-05 12:38:31 +01:00
Laurent Rineau 4b87443efc Merge pull request #6992 from janetournois/Tet_remeshing-selection_pmap-jtournois
Tet remeshing - `cell_is_selected_map` should be a property map

# Conflicts:
#	Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/split_long_edges.h
2022-12-05 12:20:06 +01:00
Jane Tournois 45609cfc47 unused typedef 2022-11-24 09:30:35 +01:00
Jane Tournois a90488fce5 fix init_c3t3 for internal C3t3
the dimensions stored in vertices are made consistent by scanning
the triangulation/subdomains/patches/features/corners, in this order.
Dimensions are tagged like that : all have dimension 3,
- then surface vertices are overridden with dimension 2,
- feature vertices overridden with dimension 1,
- corner vertices overridden with dimension 0.
2022-11-22 15:09:16 +01:00
Jane Tournois a1850bad44 fix debug display 2022-11-22 15:06:51 +01:00
Jane Tournois 207cd1ad66 add assertions 2022-11-22 11:59:48 +01:00
Jane Tournois 85756cd8ea default cell_selector selects all cells with non-0 subdomain index
not all cells
2022-11-22 11:19:49 +01:00
Jane Tournois ee7d30490b fix compilation in debug code 2022-11-22 11:14:14 +01:00
Jane Tournois 5fd1a8070c add missing is_in_complex() check 2022-11-17 16:34:41 +01:00
albert-github c32b1f4127 spelling corrections
Some spelling corrections (Directories starting with `S` rest - `W`),
2022-11-16 13:22:39 +01:00
Laurent Rineau 92d8d1c805 Merge remote-tracking branch 'cgal/master' into CGAL-allow_Epick_with_float-GF
# Conflicts:
#	Mesh_3/test/Mesh_3/test_meshing_3D_image.cpp
2022-11-08 12:11:06 +01:00
Jane Tournois ab96b29f0c cell_selector in flipping step 2022-11-04 11:16:09 +01:00
Jane Tournois 7c8eac05ce add cell_selector to flip_all_edges() 2022-11-03 11:40:42 +01:00
Jane Tournois 1891985a82 update cell selector after collapse 2022-10-28 13:13:36 +02:00
Jane Tournois 7a0cb92e43 fix cell_selector use in flip() 2022-10-28 12:50:23 +02:00
Jane Tournois e1b319bf6a use pmaps for cell selector everywhere 2022-10-28 10:11:57 +02:00
Jane Tournois ff3a47738a use Constant_propert_map 2022-10-28 09:44:32 +02:00
Jane Tournois 95dd353904 transform cell_selector into a property map to be consistent with doc 2022-10-27 18:06:55 +02:00
Andreas Fabri f002f06642 Tetranedral_remeshing 2022-10-13 07:47:13 +01:00
Jane Tournois 2696c11a8f double/float inconsistency 2022-10-11 10:58:08 +02:00
Sébastien Loriot 861588abe1 Merge 'sloriot/CGAL-std_type_traits' into master 2022-08-03 20:19:51 +02:00
Sébastien Loriot 3fa436459d BOOST_MPL_ASSERT -> static_assert 2022-06-10 08:46:01 +02:00
Sébastien Loriot ac8b6d4731 boost::is_same --> std::is_same 2022-06-10 08:18:20 +02:00
Sébastien Loriot 5746e59b34 Merge cgal/master 2022-06-08 23:13:25 +02:00
Jane Tournois d7759abbb7 add a hidden parameter to allow non-manifold vertices or edges
this is to be used only is advanced code that deals with invalid T3
2022-06-08 23:03:50 +02:00
Jane Tournois a6b48224e7 move sliver cache to RemeshingCellBase_3 2022-06-08 23:02:40 +02:00
Jane Tournois 43e96bfe2a wip simplicial Cb and Vb 2022-06-08 23:02:39 +02:00
Jane Tournois f934c2514e create new concepts and models SimplicialMeshCellBase_3 and SimplicialMeshVertexBase_3
todo : document concepts and models
2022-06-08 22:57:25 +02:00
Jane Tournois 355b52d21f rename TMDS_3 to SMDS_3, end. 2022-06-08 22:57:25 +02:00
Laurent Rineau f31770b61b Fix Tetrahedral_remeshing 2022-06-08 22:53:18 +02:00
Sébastien Loriot c8cbbbfb1d Merge cgal/master 2022-06-08 22:49:25 +02:00
Sébastien Loriot 5e124e5d5f Merge cgal/master 2022-06-08 22:43:17 +02:00
Jane Tournois 95b3da51cf move all MDS_3 to TMDS_3 (with T for Tetrahedral) 2022-06-08 22:35:50 +02:00
Jane Tournois 420165dbe0 use range iterators 2022-06-08 22:15:10 +02:00
Sébastien Loriot 920c35c30e Merge cgal/master 2022-06-08 21:56:39 +02:00
Jane Tournois b8da09f2e3 add another version of build_triangulation and fix compilation 2022-06-08 21:46:52 +02:00
Jane Tournois e86c4027af move C3T3 headers to MDS_3 new package
MDS_3 is "3D Mesh Data Structure"
2022-06-08 21:46:50 +02:00
Jane Tournois dbd66a5750 avoid dumping bad_cells and statistics when verbose mode ON 2022-03-22 11:38:48 +01:00
Andreas Fabri 1c1d5d194d Add missing #include 2022-02-17 15:10:40 +00:00
Sébastien Loriot 4ffc949199 replace boost::unordered by std::unordered
but in T3, Mesh_3, TDS_3, P3[TM]3
2022-02-03 19:11:12 +01:00
Laurent Rineau dcea6f3c24 Merge pull request #6243 from janetournois/Tet_remeshing-fix_warning-jtournois
Tet remeshing - fix warning
2022-01-21 14:40:14 +01:00
Jane Tournois 84b9d2e77e fix unused variable warning
average angle does not make much sense
2022-01-17 09:51:28 +01:00
Sébastien Loriot 75b03e6c0a use_default_values() -> default_values() 2022-01-10 18:36:37 +01:00
Sébastien Loriot 6d3176e061 move Named_parameters class in STL_extension
helpers stay in BGL because it depends on BGL tags
2022-01-07 15:12:22 +01:00
Sébastien Loriot a3a0d9a22a replaces overloads with default parameters (Tetra remeshing) 2022-01-06 15:21:34 +01:00
Mael Rouxel-Labbé 8166579e55 Merge branch 'PM-Fix_pmaps_reference_types-GF' into PM-Fix_pmaps_reference_types_master-GF 2021-10-11 19:58:07 +02:00
Mael Rouxel-Labbé 590ddf8015 Various fixes for pmaps:
- Use `value_type` when the returned type is not a reference
- Enforce `reference = value_type` if the returned type is not
  a reference (to avoid `typename PM::reference r = get(m, k)`,
  which will take a ref to a temporary if the `reference`
  typedef is an actualy reference)
- Do not use `put_get_helper` if the property map is not a `lvalue`
  **mutable** property map: the `put()` is `map[k] = v`, which
  is broken if `operator[]` does not return a reference
- The concept `boost::lvalue_property_map_tag` requires `operator[](key)`,
  not a reference in `get(map, key)`. You can have a readable property map
  returning a reference through its `get(map, key)`, but if there is
  no `operator[]`, it's just a `boost::readable_property_map_tag`
- Some const correctness to avoid copying maps with state
  or heavy keys in `get(map, key)` / `put(map, key, value)`
- Base the category of a wrapping pmap on what it offers instead
  of just forwarding the base property map's category
- Tried to do something like mutable lvalue pmap:
  * `value_type& operator[](key&)`
  * `ref get(map, const key&)`
  * `put(map, const key&, const value_type&)`
  and non-mutable lvalue pmap:
  * `const value_type& operator[](const key&)`
  * `ref get(map, const key&)`
  but not everything fits properly...
2021-10-08 15:38:47 +02:00
Sébastien Loriot 4e519a3c7a move documented IO functions in IO namespace 2021-05-05 13:15:37 +02:00
Sébastien Loriot 70058db9b7 add IO namespace for Mesh_3 package 2021-05-03 15:39:07 +02:00
Sébastien Loriot f513a791e2 Merge remote-tracking branch 'cgal/5.2.x-branch' 2021-04-21 15:48:36 +02:00
Sébastien Loriot eef92fbef7 Merge remote-tracking branch 'cgal/5.1.x-branch' 2021-04-21 15:47:06 +02:00
Sébastien Loriot 39367c2313 Merge remote-tracking branch 'cgal/5.2.x-branch' 2021-04-17 11:14:29 +02:00
Jane Tournois ba695b9ab9 factor should be different depending on the sign of min and max 2021-04-12 16:43:30 +02:00
Jane Tournois e047d53193 fix index : should not be 1 but i 2021-04-12 15:37:15 +01:00
Jane Tournois 209094f9df inline indices() to avoid double definition link error 2021-04-02 10:39:45 +02:00
Laurent Rineau 2a263c9f07 Merge pull request #5478 from janetournois/Tet_remeshing-fix_bad_alloc-jtournois
Tetrahedral_remeshing - fix bad_alloc for very small input mesh
2021-03-10 10:35:20 +01:00
Laurent Rineau 0ecf7b50b9 Merge pull request #5478 from janetournois/Tet_remeshing-fix_bad_alloc-jtournois
Tetrahedral_remeshing - fix bad_alloc for very small input mesh
2021-03-10 09:56:05 +01:00
Jane Tournois ce8f779a55 remove debug assertion 2021-03-04 14:44:22 +01:00
Jane Tournois 5bb52bf4a4 res[i] could still be 0. Avoid it 2021-03-04 14:43:47 +01:00
Jane Tournois 23791046b7 fix structure of getLUTIndex 2021-03-04 11:55:16 +01:00
Jane Tournois d456184458 prevent bad_alloc with LUTSize larger than LUT.max_size()
this could happen when size of object was very small and cellSize smaller,
e.g. cellSize = 1e-9
thresholding maxMin was not consistent with the size of the object
2021-02-19 16:04:34 +01:00
Dmitry Anisimov 086299c56e tetrahedral remeshing range loop analysis copy to ref and auto warnings fixed 2021-01-08 10:39:24 +01:00
Laurent Rineau 495e43a656 Merge pull request #5296 from janetournois/Tet_remeshing-fix_cell_selector-jtournois
Tetrahedral_remeshing - fix the cell selection
2021-01-06 16:11:22 +01:00
Laurent Rineau 26ed47751e Merge pull request #5296 from janetournois/Tet_remeshing-fix_cell_selector-jtournois
Tetrahedral_remeshing - fix the cell selection
2021-01-06 16:05:06 +01:00
Jane Tournois b1f3dfaeba make is_selected(edge) a lot simpler than its naive version 2020-12-18 11:19:35 +01:00
Jane Tournois 0fdfebd57f split and collapse only edges that were selected by cell_selector 2020-12-17 17:30:17 +01:00
Jane Tournois 7177d80b72 smoothing : move only vertices that are allowed to wrt to cell selector 2020-12-17 17:14:43 +01:00
Laurent Rineau e96f8468cd Merge branch '5.1.x-branch' into 5.2.x-branch 2020-12-16 17:52:16 +01:00
Laurent Rineau db9033d1d3 fix trailing whitespace 2020-12-16 17:52:03 +01:00
Laurent Rineau 5ebf01ede1 Merge pull request #5254 from janetournois/Tet_remeshing-fix_split_on_surfaces-GF
Tetrahedral remeshing - fix edge split step
2020-12-16 17:47:56 +01:00
Jane Tournois 2ac22ab592 fix "may be uninitialized" warning 2020-12-11 16:49:56 +01:00
Maxime Gimeno 4607a0fbdf Fix warning 2020-12-11 14:09:39 +01:00
Jane Tournois 3837f2c1f4 dimension can be 3 even if both end vertices are on patches or feature curves 2020-12-08 14:52:09 +01:00
Jane Tournois 6708614baa add debug code 2020-12-08 14:41:41 +01:00
Laurent Rineau 7c4a61e27a Merge pull request #5052 from maxGimeno/CGAL-Fix_warnings_5_1-maxGimeno
Fixes for warnings in 5.1
2020-10-09 16:50:14 +02:00
Maxime Gimeno e8566f2185 Fix ref warnings in tet_remesh 2020-10-05 12:47:45 +02:00
Sebastien Loriot c54622e9b4
Merge pull request #4976 from janetournois/Tet_remeshing-speedup-GF
Tetrahedral Remeshing - speedup
2020-10-02 15:29:24 +02:00
Sebastien Loriot 47d2189f8e
Merge pull request #3268 from afabri/PMP-visitor-GF
PMP::triangulate_faces() Add a visitor that allows to map each triangle to its original face
2020-10-02 15:26:05 +02:00
Jane Tournois 49d541e8a3 remove trivial operator= which violates the rule of three/five/zero 2020-09-24 17:57:24 +02:00
Jane Tournois c9f260e66a fix unused typedef warning 2020-09-18 14:48:59 +02:00
Jane Tournois 365d7e1bb0 remove unneeded typedefs 2020-09-15 16:06:26 +02:00
Jane Tournois bfd4e9915f rename named parameter graph_visitor to visitor 2020-09-15 15:42:24 +02:00
Jane Tournois 66fa7d1d1d remove remeshing_visitor and use graph_visitor instead 2020-09-15 15:00:06 +02:00
Sébastien Loriot 9650869e2b add missing macros + license statement 2020-09-10 12:17:59 +02:00
Sébastien Loriot c70102e7fa remove BOOST_FOREACH 2020-09-10 12:17:59 +02:00
Jane Tournois 362d00f2bc remove trailing whitespaces (and extra ;) 2020-09-08 13:32:27 +02:00
Jane Tournois ec40f42210 avoid using operator[] 2020-09-07 17:48:37 +02:00
Jane Tournois 9d91c3f304 improve verbosity in the end 2020-09-03 15:12:03 +02:00
Jane Tournois f85ae5783a use cache value in cells
now that the cos formula is fixed, this trick works!
2020-09-03 12:05:31 +02:00
Jane Tournois 6af45bb316 fix cosine formula 2020-09-03 11:51:41 +02:00
Jane Tournois 8fae3519b7 fix comments 2020-09-03 11:26:38 +02:00
Jane Tournois 87e5978a00 use only one small_vector and avoid lots of allocations 2020-08-21 15:44:55 +02:00
Jane Tournois 16cfce5e77 sliver value caching must be wrong, because it degrades min dihedral angle 2020-08-21 11:27:05 +02:00
Jane Tournois 73b6a47947 use only one small_vector and avoid multiple allocations 2020-08-21 09:46:50 +02:00
Jane Tournois 198a60dd03 Merge remote-tracking branch 'cgal/master' into Tet_remeshing-speedup-GF 2020-08-20 12:48:12 +01:00
Jane Tournois df044c4fb2 fix collapse of edges on surface with only one vertex on a feature 2020-08-13 17:39:46 +02:00
Jane Tournois 915dd02ea1 use the cache value of cells to avoid computing more than once the Dihedral_angle_cosine
of a cell
2020-08-07 16:08:42 +02:00
Jane Tournois 12a3aa7605 avoid divisions - everything is >= 0 2020-08-07 15:42:19 +02:00
Jane Tournois 0b29434c15 operator< depends on the sign, and can be computed on square(cos(angle))
the comparison is < or > depending on the sign
2020-08-07 15:31:13 +02:00
Jane Tournois 79159faa00 replace cos double value with a struct
operator< can be improved in the future
2020-08-07 12:44:15 +02:00
Jane Tournois 32441a4a2a re-introduce sliver_value() for cos 2020-08-06 10:07:59 +02:00
Jane Tournois 7ba6059074 replace tangent with cosine
when abcd is positively oriented, cos(dihedral_angle(abcd)) is
monotonically decreasing from 1 to -1 between 0 and PI,
so we now deal with maximum cos
2020-08-06 10:01:22 +02:00
Jane Tournois a8155850e1 do not use tan when the criterion is AVERAGE_ANGLE_BASED 2020-08-04 17:40:58 +02:00
Jane Tournois 05b572d8e7 fix order of points to always have positive orientation 2020-08-04 16:57:04 +02:00
Laurent Rineau ee1ebabf88 Merge pull request #4881 from janetournois/Tet_remeshing-fix_compare_subdomains-jtournois
Tetrahedral remeshing - fix compare_subdomains()
2020-08-04 16:25:42 +02:00
Jane Tournois f15efb78f9 reorder points to always have positive orientation 2020-08-04 14:35:53 +02:00
Laurent Rineau 1454dd6e24 Fix typo 2020-08-03 17:11:23 +02:00
Jane Tournois a93d3ef9bd use tan(min dihedral angle) instead of min dihedral angle
this is cheaper and atan is monotonic so the comparison leads
to the same conclusion
2020-08-03 13:42:11 +02:00
Laurent Rineau 962b681abd Merge pull request #4871 from janetournois/Tet_remeshing-add_smoothing_of_features-jtournois
Tetrahedral remeshing - smoothing along 1D features
2020-07-31 15:52:56 +02:00
Jane Tournois 03c278b0ce make smoothing more verbose 2020-07-31 15:14:14 +02:00
Jane Tournois 57a1b128f5 Merge branch 'Tet_remeshing-add_smoothing_of_features-jtournois' into Tet_remeshing-speedup-GF 2020-07-31 11:37:43 +02:00
Jane Tournois b17fefdd4a Merge branch 'Tet_remeshing-fix_compare_subdomains-jtournois' into Tet_remeshing-speedup-GF 2020-07-31 09:23:01 +01:00
Jane Tournois 012a78e81c be lazy in computing incident_cells(vh)
try computing incident_cells(v) only once per vertex.
Each flip invalidates the vertices that take part into it,
but the economy is about 25% time
2020-07-30 17:06:04 +02:00
Jane Tournois 6851c7c3ef break as soon as an edge is found,
filter with infinite vertex,
and use cpp11 for loop
2020-07-29 17:17:28 +02:00
Jane Tournois 80c7ec54a7 avoid computing incident_cells(vh) at each loop 2020-07-29 12:22:20 +02:00
Jane Tournois 82a0f6152c avoid multiplication of calls to incident_cells(vh)
by extracting it from the loop
2020-07-28 12:33:18 +02:00
Jane Tournois 993e4b599a Use a small_vector as the third template arguments of the flat_set
That will avoid the memory allocation at each call of the function.
2020-07-28 10:34:10 +02:00
Jane Tournois 9e82356213 fix compare_subdomains
compared std::vector were not made unique!
always different in presence of different numbers of incident cells
2020-07-24 16:54:29 +02:00
Laurent Rineau 10f958c8e5
Merge pull request #4863 from janetournois/Tet_remeshing-fix_peeling_slivers-jtournois 2020-07-24 16:22:45 +02:00
Jane Tournois 5698056d6c fix counting of vertices moves 2020-07-24 11:19:51 +02:00
Jane Tournois 702976d242 separate smoothing of feature vertices (dim 1) and surface vertices (dim 2) 2020-07-24 10:49:56 +02:00
Jane Tournois f3699e9625 use new named parameters API for doc of smooth_constrained_edges 2020-07-23 17:23:03 +02:00
Jane Tournois 32edd68ab0 Merge remote-tracking branch 'cgal/master' into Tet_remeshing-add_smoothing_of_features-jtournois
# Conflicts:
#	Tetrahedral_remeshing/doc/Tetrahedral_remeshing/NamedParameters.txt
#	Tetrahedral_remeshing/include/CGAL/tetrahedral_remeshing.h
2020-07-23 17:08:12 +02:00
Jane Tournois 1ec3f51544 fix typo in debug code 2020-07-23 16:26:47 +02:00
Jane Tournois 42b272d8ca reintroduce smoothing along polyline features
introduce named parameter smooth_constrained_edges
2020-07-23 12:19:58 +02:00
Jane Tournois a5e193e736 check inversion before moving for smoothing along features 2020-07-22 13:18:41 +02:00
Jane Tournois 92d3754d02 fix peeling condition
sliver, blade, cap... should be peelable
a condition on area of boundary facets compared to internal facets is valid
2020-07-21 16:38:34 +02:00
Jane Tournois fe87eeb8ac change macro from DEBUG to VERBOSE 2020-07-21 16:37:10 +02:00
Mael Rouxel-Labbé 93f1cd99ca Merge remote-tracking branch 'cgal/master' into CGAL-Improve_NP_doc_presentation-GF 2020-07-16 09:53:31 +02:00
Mael Rouxel-Labbé d567a0d9d0 Fix doc warnings 2020-07-16 09:52:32 +02:00
Jane Tournois f48154aa9e fix maybe uninitialized warning 2020-07-07 14:20:44 +02:00
Jane Tournois 36386b0bab fix unused parameter warnings 2020-07-06 15:08:33 +02:00
Jane Tournois 036d044419 move debug code to debug macro (not verbose) 2020-07-03 08:21:24 +02:00
Jane Tournois 1fef3c6f7d add debug code 2020-07-03 07:36:14 +02:00
Jane Tournois 74835a9484 move set_index after setting Surface_patch_index 2020-07-03 07:33:01 +02:00
Jane Tournois 48ca4bcb42 dimension is just the max(dimension(v1), dimension(v2)) 2020-07-02 14:37:09 +02:00
Jane Tournois 460b1f29a6 Merge branch 'master' into Tet_remeshing-from_c3t3_input-jtournois
# Conflicts:
#	Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h
2020-07-01 08:01:05 +02:00
Jane Tournois 2ae4e28de7 do not collapse when the cells set for collapse does not represent a manifold surface
trying to make the cells set manifold is not easy, and quite costly, so let's just
check whether the cells set surface is manifold and cancel the collapse if not
2020-07-01 07:52:55 +02:00
Jane Tournois 33b1283030 remove capitals
Co-authored-by: Sebastien Loriot <sloriot.ml@gmail.com>
2020-06-26 15:58:44 +02:00
Jane Tournois 92f9802123 protect is_valid() tests with DEBUG macro
they are verbose and that's annoying
2020-06-26 15:58:44 +02:00
Jane Tournois c5081c7880 doc 2020-06-26 15:58:44 +02:00
Jane Tournois 8253c30e0f ref manual 2020-06-26 15:58:44 +02:00
Jane Tournois 6f610a4b6d do not use Tr::Tr_Base (not documented) but Triangulation_3
as input for convert_to_triangulation_3
2020-06-26 15:58:43 +02:00
Jane Tournois 5734200c51 add convert_to_base_triangulation
change the API and avoid tetrahedral_isotropic_remeshing(c3t3)
2020-06-26 15:58:43 +02:00
Jane Tournois 96e966509f missing comma
Co-authored-by: Mael <mael.rouxel.labbe@geometryfactory.com>
2020-06-26 15:58:43 +02:00
Jane Tournois 44d5a331fe doc improvement
Co-authored-by: Mael <mael.rouxel.labbe@geometryfactory.com>
2020-06-26 15:58:43 +02:00
Jane Tournois f8dc62ac57 missing comma
Co-authored-by: Mael <mael.rouxel.labbe@geometryfactory.com>
2020-06-26 15:58:43 +02:00
Jane Tournois 7e457ea8b9 fix typo
Co-authored-by: Mael <mael.rouxel.labbe@geometryfactory.com>
2020-06-26 15:58:34 +02:00
Jane Tournois 121fbbbb1c add example to the user manual 2020-06-26 15:54:17 +02:00
Jane Tournois 3385d3643c add doc for tetrahedral_isotropic_remeshing(c3t3)
and an example to run mesh_3 + remeshing in a row
2020-06-26 15:54:17 +02:00
Jane Tournois 7c97c86039 set Index in vertex_base
to have consistent typeq between what is stored in Index (a boost::variant)
and the dimension of the lowest-dimensional feature to which it belongs
2020-06-26 15:53:02 +02:00
Jane Tournois 2a3dba9156 make build_triangulation() more generic with Surface_patch_index instead of int
this is necessary to be able to remesh a C3t3 with a Surface_patch_index that
is not convertible to `int`
It is the case with meshes generated from images, which often use
std::pair<Subdomain_index, Subdomain_index>
2020-06-26 15:53:02 +02:00
Jane Tournois 5308db7bd8 fix the "peeling" of slivers
when only one facet of the sliver was on a surface,
it could happen that the 3 others where deeply traversing the volume,
leading to a sharp hole on the surface.
This should be fixed

+ add to the complex the new surface facets, after peeling
2020-06-26 06:39:15 +02:00
Jane Tournois c84e8cec42 update number_of_facets and number_of_cells of the c3t3 before init_c3t3() 2020-06-25 08:38:14 +02:00
Jane Tournois 1b25bd2c39 add_to_complex(v1, v2) can be used only if edge is not already in the complex 2020-06-25 08:19:12 +02:00
Jane Tournois ab05dde7c2 fix the list of authors
and add a longer "short description"
2020-06-12 08:08:56 +02:00
Mael Rouxel-Labbé f6d4c0ce42 Update NPs of Tetrahedral Remeshing 2020-06-03 19:12:30 +02:00
Sébastien Loriot 802eb6add5 add missing empty line 2020-05-28 08:01:01 +02:00
Sébastien Loriot 25b0dc5108 fix compilation issues 2020-05-27 19:04:46 +02:00
Sébastien Loriot e8b3abdc51 mimic Mesh_triangulation_3 2020-05-27 18:54:19 +02:00
Sébastien Loriot 9333cdb5b3 improvements 2020-05-27 18:45:00 +02:00
Sébastien Loriot f386790eaa add new concepts to ease the reading + few doc fixes 2020-05-27 18:38:38 +02:00
Sébastien Loriot 8b3c1eeb48 fix doc issues 2020-05-27 16:24:25 +02:00
Jane Tournois d2c88507e7 remove commented code 2020-05-18 14:50:35 +02:00
Jane Tournois 7eb640c655 warning "may be used uninitialized" 2020-05-15 14:53:47 +02:00
Jane Tournois b6912d92ea fix warnings
- move #define a better location
- conversion double/size_t
- unused parameters
- automatic conversion int/boolean
2020-05-15 13:54:19 +02:00
Jane Tournois c9fab91c9a fix conversion warnings
and constify what should be
2020-05-14 08:45:48 +02:00
Sébastien Loriot 41d1898abf fix warning 2020-05-13 18:45:54 +02:00
Jane Tournois 916d09f451 prevent surface from self-folding during collapse
collapse_preserves_surface_star() checks that normals to the surface
do not get inverted and the surface stars do not "fold" on themselves
2020-05-13 07:47:07 +02:00
Jane Tournois 83e007f59e fix conversion warnings and comment unused code 2020-05-07 08:54:44 +02:00
Jane Tournois a9b461c156 fix warnings 2020-05-07 06:31:14 +02:00
Jane Tournois 9f40dac8d9 fix warnings (conversion, initialization order, brackets...)
and minor cleaning
2020-05-06 16:26:48 +02:00
Jane Tournois 1482f32514 add missing helper functions 2020-05-06 15:23:34 +02:00
Jane Tournois cb2a346427 add make_cells_set_manifold
the surface of `cells_to_insert` may be non manifold
using this function improves the chances to build a valid triangulation

+ use the boolean return value of build_triangulation()
2020-05-06 15:23:04 +02:00
Jane Tournois 8ec09f40fc remove dependency on Skin_surface_3
by replacing Triangulation_incremental_builder_3 by
build_triangulation() from tet_soup_to_c3t3.h
(which is part of Mesh_3 as C3T3)
2020-05-04 16:09:27 +02:00
Jane Tournois ab1063194c fix conversion warnings 2020-05-04 07:51:03 +02:00
Jane Tournois b91eed1bfb more doc reviews 2020-05-04 07:39:31 +02:00
Jane Tournois 891c162c56 doc reviews 2020-05-04 07:32:55 +02:00
Jane Tournois 3f275b8fcb add missing include 2020-04-24 16:03:28 +02:00
Jane Tournois 09f98fc5cd remove trailing whitespaces 2020-04-24 13:51:25 +02:00
Jane Tournois 0039cf45cc fix compilation with some C3t3 types 2020-04-24 08:02:07 +02:00
Jane Tournois 206499d4aa fix the code when Surface_patch_index is pair<Subdomain_index, Subdomain_index> 2020-04-23 06:36:46 +02:00
Jane Tournois f4f3ec034f fix the code when Surface_patch_index is pair<Subdomain_index, Subdomain_index> 2020-04-23 06:32:19 +02:00
Jane Tournois adaa8e02bb remove extra template parameter 2020-04-22 15:50:43 +02:00
Jane Tournois 288c520cd0 fix more warnings 2020-04-22 07:20:47 +02:00
Laurent Rineau 3790250916 Fix a warning 2020-04-21 17:09:13 +02:00
Laurent Rineau fe1f731e22 Fix timestamps 2020-04-21 17:08:57 +02:00
Jane Tournois 4396909ea6 fix conversion warnings (and some indentation) 2020-04-20 14:51:31 +02:00
Jane Tournois 081b811cb0 fix warnings 2020-04-20 14:17:00 +02:00
Jane Tournois 96bab4d9e3 fix warning about double brackets
and use range iterators
2020-04-20 07:20:55 +02:00
Jane Tournois fbd1952169 use base class is_facet_on_surface() function 2020-04-17 16:46:43 +02:00
Jane Tournois 3d181f5fe2 use range iterators 2020-04-17 16:44:00 +02:00
Jane Tournois c951383f48 fix internal c3t3 when input is not a C3T3
because add_to_complex(cell) does not do anything when subdomain_index
is not null, we need to remove cell from c3t3 first
2020-04-17 16:33:01 +02:00
Jane Tournois dacca12c3f reorder Cb and Vb consistently with the ones of T3 and Tds 2020-04-17 15:05:19 +02:00
Jane Tournois 9a886d8f27 rename tetrahedral_adaptive_remeshing() to tetrahedral_isotropic_remeshing()
because it is not adaptive yet
the adaptive version will come later, with a named parameter
2020-04-17 09:32:36 +02:00
Jane Tournois 07f6879513 uniformize IO and add namespace 2020-04-17 09:06:34 +02:00
Jane Tournois 5b5595c08c add _3 to vertex base and cell base names 2020-04-17 06:52:30 +02:00
Jane Tournois 9dd3733efb complete IO test with both ascii and binary, save and load 2020-04-16 08:38:41 +02:00
Jane Tournois e2cd7c7a33 use base class operators << and >> for Remeshing cell base 2020-04-16 07:41:44 +02:00
Jane Tournois 07b221e703 move IO header 2020-04-16 07:41:00 +02:00
Jane Tournois 49d72dc30c get all inherited functions from Triangulation_3 2020-04-16 07:39:46 +02:00
Jane Tournois 0fae00577d explicitely use CGAL::NULL_VECTOR instead of Vector_3() 2020-04-15 11:42:21 +02:00
Jane Tournois 0a0f8a631a add missing initialization 2020-04-15 11:33:54 +02:00
Jane Tournois 807eac022d fix maybe uninitialized warning - important if default constructed is not 0,0,0 2020-04-14 15:25:57 +02:00
Jane Tournois 29350cb260 fix the update of c3t3 facets in the flip step 2020-04-14 15:09:59 +02:00
Jane Tournois 54d72e9533 remove (too) expensive assertion 2020-04-14 08:30:24 +02:00
Jane Tournois 9660846c03 reintroduce collapse/flip/smooth 2020-04-14 08:23:02 +02:00
Jane Tournois 32dfc3380a keep c3t3 number of facets valid during collapse
using add_to_complex(facet) and remove_from_complex(facet) increment
and decrement the number

this commit removes before collapse facets that will disappear from
triangulation
2020-04-14 08:22:05 +02:00
Jane Tournois 6220e11b59 avoid creation of degenerate cells with split() 2020-04-14 08:16:18 +02:00
Jane Tournois 844d7d697a Merge branch 'Tetrahedral_remeshing-new-jtournois' of github.com:janetournois/cgal into Tetrahedral_remeshing-new-jtournois 2020-04-14 05:41:19 +01:00
Jane Tournois d5a061a326 create single function for both dumps too ascii and medit 2020-04-14 06:38:13 +02:00
Sébastien Loriot 608272d2a5 fix compilation errors and a warning 2020-04-13 10:46:09 +02:00
Jane Tournois 2aac945e2f dump c3t3 using output_to_medit() 2020-04-11 15:44:36 +02:00
Jane Tournois de568c718b use range iterators 2020-04-10 16:14:41 +02:00
Jane Tournois 139ef738c4 remove member variables that are used only once 2020-04-10 14:56:36 +02:00
Sébastien Loriot 825f77baaa add license include directives 2020-04-10 14:14:30 +02:00
Sébastien Loriot c929edcfd6 more identation using astyle -s2 2020-04-10 11:26:31 +02:00
Sébastien Loriot e8295bee19 more identation 2020-04-10 11:26:31 +02:00
Sébastien Loriot 9b4a53326c remove extra indentation 2020-04-10 11:26:31 +02:00
Sébastien Loriot 81541b2981 fix warnings + compilation error 2020-04-10 11:26:31 +02:00