Commit Graph

677 Commits

Author SHA1 Message Date
Jane Tournois 619871e04d minor cleaning 2023-12-21 11:07:07 +01:00
Jane Tournois 71c0a48154 fix compilation after updating branch 2023-12-21 10:34:56 +01:00
Jane Tournois cddd344d11 add assertions 2023-12-21 09:26:51 +01:00
Jane Tournois ff1b3e0a95 re-introduce flips inside volume
# Conflicts:
#	Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h
2023-12-21 09:26:50 +01:00
Jane Tournois 6ec474f5e2 filling the surface valence container fixed
it was not counting surface patches properly for vertices
incident to 2 patches, when the vertex is on a complex edge
2023-12-21 09:25:18 +01:00
Jane Tournois 4bbdabce20 use set and not vector to count incident subdomains 2023-12-21 09:25:17 +01:00
Jane Tournois e5ebc849f5 fix case 2023-12-21 09:25:16 +01:00
Jane Tournois 51c2b80330 remove trailing whitespaces 2023-12-21 09:25:15 +01:00
Jane Tournois 390f95cb13 wip improve collapse 2023-12-21 09:25:14 +01:00
Jane Tournois 1952060039 wrap debug code in macro 2023-12-21 09:25:13 +01:00
Jane Tournois d9e0b19b20 comment debug variables 2023-12-21 09:25:12 +01:00
Jane Tournois adf7812bc6 comment extra-verbosity 2023-12-21 09:25:11 +01:00
Jane Tournois 51401bae7c fix surface flips for n/m cells
the angle condition is checked only for in-complex cells
2023-12-21 09:25:10 +01:00
Jane Tournois e4fc54c973 all surface flips succeed
todo : check that dihedral angles do not get worse

# Conflicts:
#	Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h
2023-12-21 09:25:09 +01:00
Jane Tournois fd65b6a0cd check angles before surface-flipping
and add experimental and unused code for n/m flips on surfaces
2023-12-21 09:24:49 +01:00
Jane Tournois 37db44c1d1 fix 4-4 flips on surface with valid c3t3
# Conflicts:
#	Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h
2023-12-21 09:24:48 +01:00
Jane Tournois 9734585b35 wip flip on surfaces
there are holes on surfaces

# Conflicts:
#	Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h
2023-12-21 09:24:34 +01:00
Jane Tournois 5345520091 introduce edge flips on surfaces
this version works with 4-4 flips where an edge is flipped on the surface, and
each pair of incident faces is incident to exactly 2 cells

# Conflicts:
#	Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h
2023-12-21 09:24:05 +01:00
Jane Tournois 18facb24de add missing nb_extra_iterations = 0 when macro is on (for debugging purposes) 2023-12-21 09:23:33 +01:00
Jane Tournois e31259e7da use sizing and density to define masses in smoothing 2023-12-21 09:20:54 +01:00
Jane Tournois 32b5492bd5 make fastProjectionCPU more consistent with original code 2023-12-21 09:20:02 +01:00
Jane Tournois b533acf2d7 wip sizing in smoothing 2023-12-21 09:13:44 +01:00
Sebastien Loriot ec9de37b61
Tetrahedral remeshing - move sliver peeling to its own header file (#7930)
## Summary of Changes

This PR moves the "sliver peeling" function to its own internal header
file.

## Release Management

* Affected package(s): Tetrahedral remeshing
* License and copyright ownership: unchanged
2023-12-18 13:29:37 +01:00
Jane Tournois 17016b64bc reorganization by dimension 2023-12-14 13:05:00 +01:00
Jane Tournois bb0fed541f smoothed_positions and neighbors can be made internal 2023-12-14 12:58:20 +01:00
Jane Tournois e560936f4a reordering and reduce duplicate code 2023-12-14 12:45:40 +01:00
Jane Tournois 9731aec758 extract code to smooth_vertices_on_surfaces() 2023-12-14 10:58:18 +01:00
Jane Tournois dc51bcc58d Merge branch 'Tet_remeshing-with_sizing_field-jtournois' of https://github.com/janetournois/cgal into Tet_remeshing-with_sizing_field-jtournois 2023-12-12 17:01:54 +00:00
Jane Tournois a8e4387bdd factorization of duplicate code 2023-12-12 18:01:36 +01:00
Jane Tournois 3000767c69 extract smooth_edges_in_complex 2023-12-12 16:19:02 +01:00
Jane Tournois fa052c3d84 move sliver peeling to its own header file
# Conflicts:
#	Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h
2023-12-12 16:09:54 +01:00
Jane Tournois 41a480082f add vertex_id_map() function
for cleaning
2023-12-11 17:15:15 +01:00
Jane Tournois 2874c2be60 add debug counting far points 2023-12-08 13:52:09 +01:00
Jane Tournois b0361f7e14 set_index(v) must be able dimension -1 to deal with far points
far points inserted by concurrent Mesh_3
2023-12-08 13:51:47 +01:00
Jane Tournois d09e1fe00b add missing template 2023-12-05 18:08:53 +01:00
Jane Tournois f6a988664b add missing namespace 2023-12-05 18:08:15 +01:00
Jane Tournois 43b8b694d0 use is_in_complex() inside bigger condition 2023-12-05 17:32:54 +01:00
Jane Tournois d98a6233f0 collect features and use edge_is_constrained_map in demo code 2023-12-05 17:32:26 +01:00
Jane Tournois 1d5bef3906 use ordered pair 2023-12-05 17:29:24 +01:00
Jane Tournois a91f8d038e doc 2023-12-05 15:08:03 +01:00
Jane Tournois ef7ab56229 add missing using 2023-12-05 14:41:22 +01:00
Sébastien Loriot d9df1108f3 fix more warnings 2023-12-05 12:01:09 +01:00
Jane Tournois a66999d932 fill the edge_is_constrained_map based on the c3t3 complex edges 2023-12-05 11:10:19 +01:00
Sébastien Loriot 00166a99c5 fix warnings 2023-12-05 11:08:46 +01:00
Jane Tournois 8a2b2bbcb3 add hidden named parameter for extra flip-and-smooth iterations 2023-12-01 16:13:46 +01:00
Jane Tournois a3a1a32256 add concept RemeshingSizingField_3 2023-12-01 15:42:03 +01:00
Jane Tournois 494c18e0aa use sqd from traits 2023-11-23 15:11:36 +01:00
Jane Tournois 55780bf089 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-11-21 16:48:51 +01:00
Laurent Rineau 049042c2d7 Merge pull request #7797 from janetournois/Tet_remeshing-c3t3_initialization-jtournois
Tetrahedral remeshing - fix internal C3t3

# Conflicts:
#	Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h
2023-11-15 15:45:28 +01:00
Jane Tournois d586305c49 reorder functions to document the one with sizing field
+ add default NP template type
2023-11-07 16:21:10 +01:00
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