Andreas Fabri
dd99f3d526
PMP: Initialize to avoid warning
2025-03-23 23:46:50 +01:00
Sébastien Loriot
8abe5b0c23
make it work with Polyhedron
2025-03-19 19:47:08 +01:00
Sébastien Loriot
2e070b304a
qem required Eigen
2025-03-19 16:50:52 +01:00
Mael Rouxel-Labbé
d56fe72d33
Avoid some copies in loop iterating over maps
2025-03-18 09:33:46 +01:00
Mael Rouxel-Labbé
1c3ecfa2dd
Update API from linear_subdivision to Loop/CatmullClark + NP
2025-03-17 17:14:51 +01:00
Sébastien Loriot
1860c08586
address more review points
2025-03-04 13:51:06 +01:00
Léo Valque
765aa430a2
Fix warnings and compile error
2025-03-04 11:41:29 +01:00
Sébastien Loriot
0b55dc477d
look for a feature edge around the vertex
2025-03-03 20:37:08 +01:00
Mael Rouxel-Labbé
a1763eee4e
Use linear mask/subdivision
2025-02-20 11:10:19 +01:00
Mael Rouxel-Labbé
4719b55db6
Tiny doc fixes
2025-02-20 10:06:25 +01:00
Mael Rouxel-Labbé
b0be5427a4
edge_length needs a gt too
2025-02-20 10:06:09 +01:00
Sébastien Loriot
399c46bc7f
more clean-up
2025-02-20 07:28:30 +01:00
Sébastien Loriot
0a17d90841
use edge_length
2025-02-20 06:53:08 +01:00
Sébastien Loriot
3e34b08746
clean up
2025-02-20 06:50:23 +01:00
Sébastien Loriot
ee034985c3
fix missing include for CI
2025-02-20 06:33:57 +01:00
Mael Rouxel-Labbé
08e9a749b5
Complete headers
2025-02-19 11:53:40 +01:00
Mael Rouxel-Labbé
6956f56416
Clean code
2025-02-19 11:53:31 +01:00
Sébastien Loriot
a26733aeed
cosmetic cleanup + dynamic
2025-02-19 08:18:28 +01:00
Sébastien Loriot
faa93e2894
paste some comments from Sebastien Valette
2025-02-19 07:48:10 +01:00
Sébastien Loriot
b920c18b73
fix compilation error
2025-02-14 23:24:50 +01:00
Sébastien Loriot
7eae4f36e6
comment on topology
2025-02-14 23:01:54 +01:00
Sébastien Loriot
c1c6bd2ead
add macro to hide debug
2025-02-14 22:44:24 +01:00
Sébastien Loriot
a67a43b4be
cosmetic changes from the review
2025-02-14 22:36:56 +01:00
Sébastien Loriot
1aed5d6c9e
move example + accomodate reviews
2025-02-14 22:23:26 +01:00
Sebastien Loriot
bc3412cd24
Apply suggestions from code review
...
Co-authored-by: Mael <mael.rouxel.labbe@geometryfactory.com>
2025-02-14 21:56:29 +01:00
Sébastien Loriot
bd5a86f868
more doc fixes
2025-02-13 18:02:58 +01:00
Sébastien Loriot
7ceafd8a84
more review changes + way to disable ICC
2025-02-13 17:42:19 +01:00
Sébastien Loriot
3336d13aaf
backticks
2025-02-13 16:57:52 +01:00
Sébastien Loriot
c8ccdc6908
rename function/file
2025-02-13 16:41:16 +01:00
Sébastien Loriot
c46febee54
fixes thanks to review
2025-02-13 16:36:37 +01:00
Sébastien Loriot
b83b5c7f88
missing include
2025-02-13 01:16:19 +01:00
Sébastien Loriot
7ff76d605e
no need for a group
2025-02-13 01:11:52 +01:00
Sébastien Loriot
b589c88869
Merge remote-tracking branch 'cgal/master' into gsoc2023-hoskillua
2025-02-13 01:00:12 +01:00
Sébastien Loriot
837dfc45ab
fix pmap for curvature based version
2025-02-13 00:43:58 +01:00
Sébastien Loriot
2d0ffba5b4
rename parameters
2025-02-12 23:50:00 +01:00
Sébastien Loriot
21f615aa25
rename parameters
2025-02-12 22:21:59 +01:00
Sébastien Loriot
06b511cc65
Merge pull request #6088 from sloriot/PMP-add_discrete_curvature
...
Add functions to compute discrete curvatures
2025-02-12 21:22:40 +01:00
Sébastien Loriot
ae9d1bc7ad
write the result in the input mesh
2025-02-12 20:00:15 +01:00
Sebastien Valette
a640b925cd
early stop condition : only consider vertices in non-frozen clusters to compute modification ratio
2025-02-12 09:37:25 +01:00
Sébastien Loriot
e8f7fcc0ae
foldover are not coplanar patches
2025-02-12 01:16:54 +01:00
Sébastien Loriot
61e71d41b8
WIP make it manifold
2025-02-11 19:19:21 +01:00
Sébastien Loriot
01eb941a44
iterative edge split and do not handle twice the same edge per iteration
2025-02-11 15:50:22 +01:00
Sébastien Loriot
72f7fcc46d
black color for no cluster
2025-02-11 12:28:41 +01:00
Sébastien Loriot
1dcf7370a7
3 loops: no qem, qem, qem + topo criteria
2025-02-11 12:24:08 +01:00
Sebastien Valette
ed35662a9f
lambda function to push vertex edge ring
2025-02-11 10:55:08 +01:00
Sébastien Loriot
c7427fb729
split long edges
2025-02-11 08:38:04 +01:00
Sébastien Loriot
e12c739864
use dedicated energy for non qem case
...
taken from
commit e6961ef94c
Author: Sébastien Loriot <sebastien.loriot@cgal.org>
Date: Mon Feb 10 21:33:46 2025 +0100
factorize qem metric and non qem metric impl
2025-02-10 23:10:11 +01:00
Sébastien Loriot
40749e1893
more authors
2025-02-10 23:02:06 +01:00
Sébastien Loriot
dbf3e6a175
make representative computation lazy
2025-02-10 22:48:34 +01:00
Sébastien Loriot
b1e3ed1e3c
add ratio as parameter
2025-02-10 21:57:29 +01:00
Sébastien Loriot
e6961ef94c
factorize qem metric and non qem metric impl
2025-02-10 21:33:46 +01:00
Sébastien Loriot
328230c40e
warnings and TODOs
2025-02-10 19:50:43 +01:00
Sebastien Valette
634df03161
optimization : skip testing edges when their respective clusters have not been modified recently
2025-02-10 17:35:21 +01:00
Sebastien Valette
ec2a1a2f88
removed trailing spaces
2025-02-10 17:04:17 +01:00
Sebastien Valette
36b3532565
rename variable
2025-02-10 17:01:18 +01:00
Sebastien Valette
b48d66fd0a
reset cluster stats
...
lazy energy computations
2025-02-10 16:54:51 +01:00
Sebastien Valette
78bb2abf69
optim : lazy computations
2025-02-10 15:31:09 +01:00
Sébastien Loriot
65755d8717
topological test to avoid disconnected clusters
2025-02-10 12:53:26 +01:00
Sebastien Valette
c7e06de161
cleanup
2025-02-10 12:52:38 +01:00
Sebastien Valette
5039ab66bd
use temporary clusters
2025-02-10 12:46:51 +01:00
Sebastien Valette
a5bd577da1
let algorithm converge by itself
2025-02-10 10:48:54 +01:00
Sebastien Valette
b7f515923c
fix qem metric
2025-02-10 10:33:17 +01:00
Mael Rouxel-Labbé
07d7615d91
Require a FaceGraph for boundary checks
2025-02-06 10:16:10 +01:00
Sébastien Loriot
5b4b19a1c8
add cut_with_plane and new clip method
2025-01-28 14:54:27 +01:00
Sébastien Loriot
107f3696dc
boost::tie -> std::tie
2025-01-24 14:20:00 +01:00
Sebastien Loriot
db45571323
refactor: remove duplicate header file inclusion ( #8692 )
...
## Summary of Changes
remove duplicate header file inclusion
## Release Management
* Affected package(s): Polygon_mesh_processing
2025-01-22 10:46:18 +01:00
Sébastien Loriot
6d20c44ccf
Merge remote-tracking branch 'cgal/6.0.x-branch'
2025-01-17 18:52:55 +01:00
zfb132
d5d01a4d32
refactor: remove duplicate header file inclusion
2025-01-15 23:34:10 +08:00
Jane Tournois
8e0ebb9a39
update status of border edges when removing a (degenerate) border face
2025-01-10 13:42:33 +00:00
Mael Rouxel-Labbé
c418aea7c2
Document PMP/curvature.h
2025-01-10 13:11:21 +01:00
Mael Rouxel-Labbé
db297d7eff
Handle boundary vertices in angle_sum
2025-01-10 13:10:33 +01:00
Mael Rouxel-Labbé
26005e59f3
Fix compilation
2025-01-10 13:10:16 +01:00
Mael Rouxel-Labbé
6d68861f1e
Move PMP/curvature.h outside of 'internal'
2025-01-10 11:40:50 +01:00
Mael Rouxel-Labbé
d7791980d1
Move separator
2025-01-10 11:40:10 +01:00
albert-github
f5ec9b05b7
Spelling correction
...
Spelling correction
Note: we also have a similar spelling error in:
```
Surface_mesh_skeletonization/benchmark/Surface_mesh_skeletonization/mcf_scale_invariance.cpp:104: output.open("correspondance.cgal");
Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/MCF_Skeleton_example.cpp:68: output.open("correspondance-poly.polylines.txt");
Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/MCF_Skeleton_LCC_example.cpp:66: output.open("correspondance-lcc.polylines.txt");
Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/MCF_Skeleton_om_example.cpp:75: output.open("correspondance-sm.polylines.txt");
Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/MCF_Skeleton_sm_example.cpp:67: output.open("correspondance-sm.polylines.txt");
Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/simple_mcfskel_example.cpp:72: output.open("correspondance-poly.polylines.txt");
Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/simple_mcfskel_LCC_example.cpp:72: output.open("correspondance-lcc.polylines.txt");
Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/simple_mcfskel_sm_example.cpp:51: output.open("correspondance-sm.polylines.txt");
```
but as this in filenames I didn't change it.
2024-12-23 15:23:47 +01:00
Sébastien Loriot
f5f5dc7244
Merge remote-tracking branch 'cgal/6.0.x-branch' into HEAD
2024-12-23 09:40:20 +01:00
Sébastien Loriot
cb3e182284
Merge remote-tracking branch 'cgal/5.6.x-branch' into HEAD
2024-12-23 09:38:35 +01:00
Sebastien Loriot
06fa730c75
Flip it if you can't collapse it ( #8609 )
...
if a needle is also a cap, it will be handled as a needle only. But if
we can't collapse the edge, a flip will not be tried. Try the flip too.
Note that this will slow down the method as the status of a triangle is
tested twice.
Fix #8605
2024-12-23 09:34:33 +01:00
Sebastien Loriot
b55bdc0103
Fix link to replacement function ( #8657 )
...
## Release Management
* Affected package(s): `Polygon_mesh_processing`
* Issue(s) solved (if any): -
* Feature/Small Feature (if any): -
* License and copyright ownership: no change
2024-12-23 09:33:22 +01:00
Sébastien Loriot
8bc0b888b8
clean up patch and make filling lazy
2024-12-18 11:42:10 +01:00
Sébastien Loriot
a6f7b3c163
WIP handle nested coplanar CC
2024-12-18 11:37:14 +01:00
Sébastien Loriot
b32558b87e
Merge remote-tracking branch 'cgal/master' into gsoc2022-isosurface
2024-12-16 11:47:34 +01:00
Mael Rouxel-Labbé
4efaa1e9cb
Fix link to replacement function
2024-12-13 11:57:30 +01:00
Mael Rouxel-Labbé
373ad84461
Improve discrete curvature implementation
2024-12-10 21:17:36 +01:00
Sébastien Loriot
078053314e
Merge remote-tracking branch 'cgal/6.0.x-branch' in master
2024-12-10 16:33:32 +01:00
Sébastien Loriot
3fa3568e6b
Merge remote-tracking branch 'cgal/5.6.x-branch' into cgal/6.0.x-branch
2024-12-10 16:32:33 +01:00
Sebastien Loriot
289a8bda49
`PMP::isotropic_remeshing()` - fix relaxation of constrained vertices ( #8604 )
...
## Summary of Changes
Constrained vertices, and constrained edges were not properly protected
during the smoothing step.
## Release Management
* Affected package(s): PMP
* Issue(s) solved (if any): fix #8388
* License and copyright ownership: unchanged
2024-12-10 16:30:25 +01:00
Sébastien Loriot
0737a8f99b
do not put all the faces of the mesh in the hash map
2024-12-10 15:58:53 +01:00
Sébastien Loriot
c3e4e32fb7
factorize cap checks
2024-12-10 15:37:53 +01:00
Sébastien Loriot
116c0ec5d9
only use one container for the next loop
...
--> make the output of the function idempotent
2024-12-10 15:18:24 +01:00
Mael Rouxel-Labbé
b24e6509fe
Merge remote-tracking branch 'cgal/master' into PMP-add_discrete_curvature
2024-12-09 11:40:20 +01:00
Mael Rouxel-Labbé
e8602e1f4e
Use modern typedefs
2024-12-07 23:50:02 +01:00
Mael Rouxel-Labbé
25cd25c477
Tiny indentation fix
2024-12-07 23:49:55 +01:00
Mael Rouxel-Labbé
a0e319e67b
Re-attach convenience overloads to their respective main function
2024-12-07 23:43:07 +01:00
Mael Rouxel-Labbé
f2299f844f
Use plural for the all-vertices function
2024-12-07 23:42:49 +01:00
Mael Rouxel-Labbé
693fd25174
Use a capital 'G'
2024-12-07 23:42:31 +01:00
Mael Rouxel-Labbé
0fe940555d
Fix namespace
2024-12-07 23:41:38 +01:00
Mael Rouxel-Labbé
eb668da9ea
Misc cleaning
2024-12-07 23:34:23 +01:00
Mael Rouxel-Labbé
fda7b1ae6a
Avoid a lot of useless shape predicate calls
...
Here are some changes:
- Avoid a lot of redundant calls of is_it_a_needle / is_it_a_cap
- Do not test for cap-ness if it's already a needle
- Do not fill both ranges at the beginning, but fill
with everything: on the first round, needle-ness will
be tested, and the exit towards cap-ness will happen
- Wait for a needle to no longer be a needle, or not be
treatable to actually test cap-ness
- When the mesh is modified, do not test everything immediately,
just put them in the queue of the next iteration
Result: Fewer calls to shape predicates
- master -
needle calls = 828 668
cap calls = 803 330
- PR -
needle calls = 803 554
cap calls = 795 317
Should be fewer but two effects are balacing each other for the calls:
- much fewer calls to shape predicates (is_it_a_needle, is_it_a_cap)
by not calling until absolutely necessary (but still checking at pop time).
- when we modify the mesh, I no longer fill the CURRENT cap and needle
ranges, but the next ones. The point is to really prioritize all caps
BEFORE treating needles, whereas otherwise we would treat some needles
at the current iteration while there are still caps to treat.
So there are more iterations which add more useless calls (see below)
2024-12-07 23:31:57 +01:00
Mael Rouxel-Labbé
a4cb48a145
Fix never trying again a user-rejected cap
2024-12-07 23:29:04 +01:00