Sébastien Loriot
08d9ce3c8a
Merge pull request #6038 from MaelRL/PM-Fix_pmaps_reference_types-GF
...
Various fixes for property maps (5.2)
2021-10-29 17:30:47 +02:00
Laurent Rineau
d9a6062f87
Merge pull request #6051 from MaelRL/PMP-Forward_GT_orient_to_bound_volume-GF
...
PMP: Forward the geometric traits in `orient_to_bound_a_volume()`
2021-10-29 16:48:23 +02:00
Sébastien Loriot
b793e7cd90
fix NPs and improve doc
2021-10-19 17:38:12 +02:00
Mael Rouxel-Labbé
1ab6b44d7d
Fix NP forwarding in volume_CC
2021-10-15 10:22:08 +02:00
Mael Rouxel-Labbé
1f73af6cc4
Drive-by cleaning
2021-10-14 11:09:04 +02:00
Mael Rouxel-Labbé
91e7f1d20c
Forward the geom traits in orient_to_bound_a_volume
2021-10-14 11:06:04 +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
Mael Rouxel-Labbé
df560987a6
Whitespace & cleaning changes
2021-10-08 12:13:43 +02:00
Mael Rouxel-Labbé
863ab7541c
Various whitespace fixes
2021-10-05 12:14:03 +02:00
Mael Rouxel-Labbé
84d84278b9
Fix VPM type
2021-10-05 12:14:02 +02:00
Mael
4e5fbb6f22
Specify namespace
...
Co-authored-by: Laurent Rineau <Laurent.Rineau@cgal.org>
2021-09-27 12:15:09 +02:00
Mael Rouxel-Labbé
878d94e299
Fix sign call
2021-09-24 09:47:33 +02:00
Mael Rouxel-Labbé
2bc5643972
Fix comparison
2021-09-21 16:50:19 +02:00
Mael Rouxel-Labbé
c7519ef93c
Cache the squared cos value
2021-09-15 14:59:55 +02:00
Mael Rouxel-Labbé
a5bbd05c42
Do not compute square roots + various improvements
2021-09-15 14:46:56 +02:00
Mael Rouxel-Labbé
8b7ab25966
Minor cleaning
2021-09-15 14:08:25 +02:00
Sébastien Loriot
000b03b595
follow up of #5889
...
cherry-picking for autorefinement
2021-09-06 18:44:07 +02:00
Sebastien Loriot
2f0a643a84
Merge pull request #5889 from sloriot/PMP-cherry_picks_from_5089
...
Bug fixes cherry picked from #5049
2021-08-30 15:51:23 +02:00
Sébastien Loriot
050e81d5fd
set coplanar status of patches before classification
...
cherry-picked from #5049
2021-08-04 14:58:16 +02:00
Sébastien Loriot
8903e746f0
Correctly split intersection polylines when boundary/interior status changes along the polyline
...
Cherry-picked from #5049
2021-08-04 14:58:16 +02:00
Sébastien Loriot
6349441c4b
better handling of boundary cases (cherry-picked from #5049 )
2021-08-04 14:57:51 +02:00
Simon Lopez
7f6c39e898
Skip shared edges which are border edges
2021-07-29 10:52:13 +02:00
Laurent Rineau
49aff67985
Merge pull request #5689 from janetournois/PMP-isotropic_remeshing_fixes-jtournois
...
PMP::isotropic_remeshing - fixes about "isolated constraints"
# Conflicts:
# Polygon_mesh_processing/test/Polygon_mesh_processing/CMakeLists.txt
2021-05-18 17:31:55 +02:00
Jane Tournois
74e2ee9734
do not collapse isolated constraints
2021-05-06 19:40:52 +02:00
Jane Tournois
3a6e31de65
do not split isolated constraints
2021-05-06 15:56:23 +01:00
Jane Tournois
64e568f748
an isolated constraint can be on the mesh border
...
the halfedge status for a pair of opposite halfedges can be
MESH_BORDER and ISOLATED_CONSTRAINT, but MESH_BORDER has
priority
2021-05-06 16:56:05 +02:00
Jane Tournois
49fc218c45
avoid iterating over all halfedges, but only the ones of the patch to be remeshed
2021-05-06 15:55:19 +01:00
Jane Tournois
9d3d29fd6d
encapsulate debug code in debug macro
2021-05-06 16:55:02 +02:00
Laurent Rineau
795c931b55
Merge pull request #5637 from sloriot/PMP-hole_filling_empty_range_warning
...
Fix use of empty range
2021-04-28 15:22:41 +02:00
Sébastien Loriot
0eea836f1e
handle empty point range
2021-04-23 08:46:28 +02:00
Sébastien Loriot
eef92fbef7
Merge remote-tracking branch 'cgal/5.1.x-branch'
2021-04-21 15:47:06 +02:00
Sebastien Loriot
e9c97d2b59
Merge pull request #5539 from sloriot/PMP-coref_check_si
...
Collect faces incident to edges too
2021-04-17 11:04:38 +02:00
Jane Tournois
d61cf58f2f
add ISOLATED_CONSTRAINT halfedge status
...
this type is needed for edges that are part of the input constrained
edges property map, and are incident to a face to be remeshed only by a
vertex.
These edges contribute to creating corner vertices (incident to >= 3
constrained edges), but should still not be considered as patch borders
without dealing with these "isolated constraints", the corner vertices that
are incident to 2 patch borders and 1 of these edges was not considered
as a corner but as a simple patch border vertex, hence it could be
moved/deleted by a collapse or relaxation steps
2021-04-13 15:20:21 +02:00
Laurent Rineau
a11a7578f6
Merge pull request #5570 from MaelRL/PMP-Repair_PS_invalid_polygons_speed_up-GF
...
Speed up invalid polygon removal in repair_PS
2021-04-06 15:11:41 +02:00
Mael Rouxel-Labbé
dc854d8088
Use std::remove_if to speed-up invalid polygon removal
2021-03-31 11:54:38 +02:00
Sébastien Loriot
f5a6ff424e
collect face incident to edges too
2021-03-19 14:47:54 +01:00
Laurent Rineau
4dc8a341f9
Merge pull request #5423 from afabri/PMP-corefine_OM-GF
...
PMP:: Use operator< instead of operator> as OM only implements the former
2021-03-10 10:33:17 +01:00
Laurent Rineau
325436540f
Merge pull request #5429 from sloriot/PMP-coref_face_patch_init
...
Corefine: always init faces of patches
2021-03-03 17:10:16 +01:00
Laurent Rineau
3c3dad3243
Merge pull request #5435 from afabri/Intersect_3-fix_isocuboid_plane-GF
...
Intersect_3: Fix Iso_cuboid_3/Plane_3 and Tetrahedon_/Plane_3 intersection
2021-03-03 16:56:31 +01:00
Laurent Rineau
b5e6ef261f
Merge pull request #5442 from MaelRL/PMP-stitch_borders_reintroduce_zipping-GF
...
Re-introduce some kind of zipping as a first step to boundary cycle stitching
2021-03-03 16:39:54 +01:00
Laurent Rineau
e522630610
Merge pull request #5476 from sloriot/PMP-needle_caps_ecm_bug
...
PMP: Remove needles&caps fixes
2021-03-03 16:34:46 +01:00
Laurent Rineau
7e61495ef5
Merge pull request #5429 from sloriot/PMP-coref_face_patch_init
...
Corefine: always init faces of patches
2021-03-03 16:31:17 +01:00
Laurent Rineau
2800c8c587
Merge pull request #5435 from afabri/Intersect_3-fix_isocuboid_plane-GF
...
Intersect_3: Fix Iso_cuboid_3/Plane_3 and Tetrahedon_/Plane_3 intersection
2021-03-03 16:31:15 +01:00
Sébastien Loriot
fa47c35271
remove unused variable
2021-03-03 08:28:28 +01:00
Sébastien Loriot
c1dcaac020
remove TODOs
2021-03-02 16:21:06 +01:00
Sébastien Loriot
313f682b8c
use custom functor for bbox and split primitives
...
aabb tree build runtime is similar to using EPICK
2021-03-02 16:16:07 +01:00
Sébastien Loriot
20865d2544
robustify side_of test
2021-02-26 15:46:01 +01:00
Mael Rouxel-Labbé
abe1f6e577
Misc cleaning
2021-02-22 16:51:35 +01:00
Mael Rouxel-Labbé
b3d7977fac
Fix boundary cycle zipping not updating its representative
2021-02-22 16:50:52 +01:00
Sébastien Loriot
85a9962892
2 fixes:
...
- an edge cannot be collapsed if both its endpoints are constrained -> allow cap classification
- an edge with two constrained endpoints can be flipped (if not constrained)
2021-02-22 14:50:41 +01:00