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
Jane Tournois
b3c44b837a
replace all malloc/free code with std::vector's
...
and remove unused code
2020-04-10 11:26:31 +02:00
Sébastien Loriot
acd6d9d8de
removing tabs and trailing whitespaces
2020-04-10 11:26:31 +02:00
Jane Tournois
76cf92daaa
replace Vec3D.h with CGAL::Vector_3
2020-04-10 11:26:30 +02:00
Jane Tournois
a70473f361
rename debugging function
2020-04-10 11:26:17 +02:00
Jane Tournois
0446f85873
replace test on volume by test on orientation
...
CGAL::orientation is filtered, and CGAL::volume is not,
so there results can be different in nearly degenerate cases
2020-04-10 11:26:17 +02:00
Jane Tournois
022c261b93
make sure no cell has its volume negative after smoothing
...
if so, we shorten the move by 10% - several times is necessary -
while making sure every cell still has a positive volume
2020-04-10 11:26:17 +02:00
Sébastien Loriot
9a40e58877
fix warnings and compilation errors
2020-04-10 11:26:16 +02:00
Jane Tournois
933a5bc776
remove useless file
2020-04-10 11:26:14 +02:00
Jane Tournois
5e4de872a1
fix copyright headers
2020-04-10 11:25:32 +02:00
Jane Tournois
819aeded44
fix file name
2020-04-07 13:34:28 +02:00
Jane Tournois
82ca7db4c2
add const ref
2020-04-01 14:49:19 +02:00
Jane Tournois
feefdde5a1
use latest API of named parameters (after merging master)
2020-04-01 14:15:21 +02:00
Jane Tournois
53843de366
protect smoothing of sharp edges with a macro
2020-04-01 07:59:27 +02:00
Jane Tournois
b70b47fdd6
derecursify computation of facets normals
...
it was causing stack overflow on some models
2020-04-01 07:17:08 +02:00
Jane Tournois
3310ef054d
disable smoothing on sharp edges for now
...
reprojection does projection on incident patches successively,
and this tends to smooth the shape of complex polylines, though
this is not desired
it seems that 1d smoothing does not really improve the quality nor
complexity of the output mesh, so let's disable it for now
2020-03-30 15:45:51 +02:00
Jane Tournois
78fbe290d1
avoid dependency on PMP for computing normals
2020-03-30 13:59:59 +02:00
Jane Tournois
a0ee6b7ca9
use more boost::optional
2020-03-27 15:05:27 +01:00
Jane Tournois
69cf037280
extra iterations re-introduced
2020-03-27 07:54:43 +01:00
Jane Tournois
077a588bf2
during smoothing, always reproject to the input surface
...
instead of reprojecting to the evolving surface
this prevents from smoothing the shape again and again and "losing" features
2020-03-27 07:54:20 +01:00
Jane Tournois
8dab9317d0
remove outdated code
2020-03-26 16:35:22 +01:00
Jane Tournois
a9324d4128
get 3 extra iterations of flip/smooth back
2020-03-26 15:58:45 +01:00
Jane Tournois
cde5ec9e48
speedup normals computation
...
this new solution avoids all the calls to map.find(facet)
first fill a map with boundary facets and NULL_VECTOR the associated normal
facets are made canonical (with comparison of their 2 incident cells) to make
sure we always consider the same facet
2020-03-26 15:34:11 +01:00
Jane Tournois
91f1b1e7dd
remove debug code
2020-03-26 13:43:17 +01:00
Jane Tournois
b6c00b74b9
use boost::optional<Facet>
...
instead of returning a boolean and a facet if boolean is true
2020-03-26 13:31:05 +01:00
Jane Tournois
6bcb145163
speedup computation of facet normals
...
just counting the number of normals to be computed is 50 times
faster than testing find(f) and find(mf) successfully a lot
of times
this is a first shot and can definitely be improved a lot
2020-03-26 13:24:20 +01:00
Jane Tournois
66d3c1492f
compute consistently oriented normals on surface patches
...
walk on facets with same surface patch index, with no "crossing" of
complex edges, and a normal that evolves while walking to keep
a smooth transition between neighbor facets
2020-03-25 15:23:38 +01:00
Jane Tournois
cee1b435e7
not all edges should be update wrt the c3t3
2020-03-25 07:55:12 +01:00
Jane Tournois
3f6abd4ff7
fix smoothing of 3d vertices
...
count neighbors from 0, not -1, because there is no
pre-counting as it is done for surfaces
2020-03-20 06:37:38 +01:00
Jane Tournois
0f7a0eac64
add missing ifdef macro
2020-03-19 16:37:02 +01:00
Jane Tournois
62641ded15
simplify is_boundary(edge)
2020-03-19 16:16:51 +01:00
Jane Tournois
543ac23805
protect add_to_complex(vertex) with a condition
2020-03-19 16:15:31 +01:00
Jane Tournois
90653caddc
fix smoothing!
...
for each vertex :
- on complex edges, collect incident complex edges
- on surfaces, collect incident surface edges
- inside volume, collect incident volume edges
2020-03-19 16:10:24 +01:00
Jane Tournois
8ede983726
keep 1d complex valid throughout the collapse step
2020-03-19 13:49:20 +01:00
Jane Tournois
b8c9abd234
check normals per patch with dump
2020-03-18 08:19:48 +01:00
Jane Tournois
cd69e12d81
replace clear+resize by assign
2020-03-17 16:37:07 +01:00
Jane Tournois
94ed9b6f34
simplify smoothing code
...
is_feature_MAD is not needed anymore because it corresponds to
the info stored in the c3t3
2020-03-17 16:11:32 +01:00
Jane Tournois
bd6c8c03e1
add missing const
2020-03-17 15:58:38 +01:00
Jane Tournois
09ad664cb0
computing circumradius of degenerate cell crashes, avoid it
2020-03-17 15:58:10 +01:00
Jane Tournois
2645c1b47a
fix is_boundary(edge)
...
facets that have exactly one incident cell which is infinite
are facets of the convex hull, not of the domain boundary
2020-03-17 15:37:06 +01:00
Jane Tournois
5060fb8fb1
fix get_edge_info and protect corners
2020-03-17 13:29:27 +01:00
Jane Tournois
3e7f75b3db
use surface indices instead of subdomain indices when it makes more sense
...
- when we have surface indices, there is no need to count subdomains around,
- use c3t3 complex information instead of re-evaluating it
various cleaning and comments
2020-03-17 06:54:47 +01:00
Jane Tournois
08383dbf2d
do not add to complex an edge that already is
...
it's the case when the input is a c3t3 with edge protection
2020-03-16 14:34:22 +01:00
Jane Tournois
0b030ed9bd
use vertices_surface_indices
...
instead of the assumption that a surface is incident to two subdomains
There can always be a surface incident to 2 subvolumes with the same index
2020-03-16 14:29:37 +01:00
Jane Tournois
0ca5574c3f
add const
2020-03-13 15:24:23 +01:00
Jane Tournois
f421743670
fix indices in access to points
2020-03-13 15:24:06 +01:00
Jane Tournois
ad0c8d7680
fix orientation of normals
2020-03-13 14:43:41 +01:00
Jane Tournois
a8a74c4e19
sum of normals starts with n, not NULL_VECTOR
...
and add dump of normals for debugging purposes
2020-03-13 14:32:14 +01:00
Jane Tournois
096b724ec1
uncomment and adapt code with upsample > 0
2020-03-13 14:26:05 +01:00
Jane Tournois
eb1a8778a0
wip make code as similar as possible to initial code
2020-03-10 16:37:00 +01:00
Jane Tournois
f85e8549cf
make smoothing code as close as possible to original MAD mesher code
...
to fix bugs
with this version :
- internal smoothing works perfectly
- surface smoothing is still broken
2020-03-10 11:42:47 +01:00
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