Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GSoC2023 - ACVD for Simplification & Remeshing #7837

Open
wants to merge 152 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
152 commits
Select commit Hold shift + click to select a range
3230628
ACVD initial cluster expansion
hoskillua Jul 19, 2023
6625e10
energy minimzaition (not stable yet)
hoskillua Jul 20, 2023
b7512e7
temp fix
hoskillua Jul 20, 2023
c9e4db0
weight (dual area computation)
hoskillua Jul 22, 2023
809e22f
pushing same edge if no update
hoskillua Jul 22, 2023
190ac09
some fixes (now clusters look very clean)
hoskillua Aug 1, 2023
8817c27
constructing mesh
hoskillua Aug 1, 2023
4907b3b
Minor initializtions and fixes
hoskillua Aug 18, 2023
7d4d0c9
fixing random initialization and weighting
hoskillua Aug 19, 2023
e132021
boundary ring
hoskillua Aug 23, 2023
2344871
upsample subdivision
hoskillua Aug 31, 2023
d4cb18f
disconnection check + using subdivision
hoskillua Aug 31, 2023
b98477e
guarantee with subdivision steps for remeshing
hoskillua Aug 31, 2023
793959b
minor fix
hoskillua Aug 31, 2023
9838426
orient polygon soup
hoskillua Sep 1, 2023
21effb4
added upsample subdivision to demo
hoskillua Sep 7, 2023
d2e4f36
Polyhedron demo (incomplete)
hoskillua Sep 15, 2023
fa30609
use a dialog instead of the widget
sloriot Sep 15, 2023
cbd4c0c
demo plugin action
hoskillua Sep 22, 2023
dbda656
minor changes
hoskillua Sep 22, 2023
4f99fdd
Func Documentation
hoskillua Sep 22, 2023
bbc5a34
adaptive clustering first version
hoskillua Oct 5, 2023
0a4a4f4
curvature weight
hoskillua Oct 5, 2023
0868dcc
minor changes
hoskillua Oct 5, 2023
1bf9693
curvature interpolation and other fixes
hoskillua Oct 20, 2023
6f07f4b
qem init
hoskillua Oct 31, 2023
99d8741
commenting out incomplete part
hoskillua Oct 31, 2023
613ca2e
adding qem file from another gsoc proj
hoskillua Nov 7, 2023
c4d02d1
update example file
hoskillua Nov 7, 2023
54a1d2d
qem metric moved
hoskillua Nov 7, 2023
7aa5b66
fixed isolated vertices + clean up
hoskillua Nov 7, 2023
3ea551c
bibliography
hoskillua Nov 7, 2023
41b726e
function returning a triangle soup
hoskillua Nov 7, 2023
e37f568
reference documentation
hoskillua Nov 7, 2023
7cfcd59
user doc (imp history, example file ...)
hoskillua Nov 7, 2023
0ecab9b
WIP: user doc
hoskillua Nov 7, 2023
8ea673d
linux build fixes
hoskillua Nov 8, 2023
8d15e0c
wip: qem incomplete
hoskillua Nov 8, 2023
1c114c8
minor fix (std::max)
hoskillua Nov 8, 2023
603cac2
some cleanup and comments
hoskillua Nov 8, 2023
9ed6d1a
typo fix
hoskillua Nov 8, 2023
5e5b97a
user manual API doc
hoskillua Nov 8, 2023
38339b7
Merge remote-tracking branch 'cgal/master' into HEAD
sloriot Mar 25, 2024
8b64955
fix compilation issues
sloriot Mar 25, 2024
37b16ab
fix warnings
sloriot Mar 25, 2024
9c6aa8c
Optimizing Cluster Rep-Points with Qem (PostProcessing)
hoskillua Mar 27, 2024
6e145b2
double -> typename GT::FT
hoskillua Mar 27, 2024
e417a32
doc improvements
sloriot Mar 27, 2024
97102e3
add license file
sloriot Mar 27, 2024
83f06b5
remove unused file
sloriot Mar 27, 2024
ad926fe
remove tabs
sloriot Mar 27, 2024
9a292fa
Merge branch 'gsoc2023' of https://github.com/hoskillua/cgal into gso…
hoskillua Mar 27, 2024
97917c3
qt6
sloriot Mar 27, 2024
916e5f5
Making PostProcessing QEM Optional (np)
hoskillua Mar 28, 2024
4130a35
renaming a variable
hoskillua Mar 28, 2024
349c526
update plugin
sloriot Mar 28, 2024
3bd0a7c
QEM Minimization (still a bit buggy)
hoskillua Mar 28, 2024
74f6f46
Merge branch 'gsoc2023' of https://github.com/hoskillua/cgal into gso…
hoskillua Mar 28, 2024
410ecb9
update plugin with different options
sloriot Mar 28, 2024
6198753
Merge branch 'gsoc2023' into master
sloriot Oct 18, 2024
70326e3
Read file as given in argv and write output to same stem and extension
afabri Oct 18, 2024
0afe4f0
Change output file names; Fix dependency
afabri Oct 18, 2024
07963c3
fix copy/paste error: put hedges in the right container
sloriot Oct 21, 2024
89331d1
init dynamic maps using new API
sloriot Oct 21, 2024
e045c48
warnings and questions
sloriot Oct 21, 2024
b7f5159
fix qem metric
valette Feb 10, 2025
a5bd577
let algorithm converge by itself
valette Feb 10, 2025
5039ab6
use temporary clusters
valette Feb 10, 2025
c7e06de
cleanup
valette Feb 10, 2025
65755d8
topological test to avoid disconnected clusters
sloriot Feb 10, 2025
78bb2ab
optim : lazy computations
valette Feb 10, 2025
b48d66f
reset cluster stats
valette Feb 10, 2025
36b3532
rename variable
valette Feb 10, 2025
ec2a1a2
removed trailing spaces
valette Feb 10, 2025
634df03
optimization : skip testing edges when their respective clusters have…
valette Feb 10, 2025
328230c
warnings and TODOs
sloriot Feb 10, 2025
e6961ef
factorize qem metric and non qem metric impl
sloriot Feb 10, 2025
b1e3ed1
add ratio as parameter
sloriot Feb 10, 2025
dbf3e6a
make representative computation lazy
sloriot Feb 10, 2025
40749e1
more authors
sloriot Feb 10, 2025
e12c739
use dedicated energy for non qem case
sloriot Feb 10, 2025
692e0ef
fix macro usage
sloriot Feb 11, 2025
c7427fb
split long edges
sloriot Feb 11, 2025
c0f2f7f
new test seed
valette Feb 11, 2025
ed35662
lambda function to push vertex edge ring
valette Feb 11, 2025
1dcf737
3 loops: no qem, qem, qem + topo criteria
sloriot Feb 11, 2025
72f7fcc
black color for no cluster
sloriot Feb 11, 2025
01eb941
iterative edge split and do not handle twice the same edge per iteration
sloriot Feb 11, 2025
61e71d4
WIP make it manifold
sloriot Feb 11, 2025
a640b92
early stop condition : only consider vertices in non-frozen clusters …
valette Feb 12, 2025
ae9d1bc
write the result in the input mesh
sloriot Feb 12, 2025
21f615a
rename parameters
sloriot Feb 12, 2025
2d0ffba
rename parameters
sloriot Feb 12, 2025
10cf3cd
update user manual
sloriot Feb 12, 2025
37e3368
add missing refs
sloriot Feb 12, 2025
837dfc4
fix pmap for curvature based version
sloriot Feb 12, 2025
dab465d
add fig
sloriot Feb 12, 2025
e4bf1e2
Merge remote-tracking branch 'cgal/master' into gsoc2023-hoskillua
sloriot Feb 13, 2025
f9bae01
no need for a group
sloriot Feb 13, 2025
5921c2e
missing include
sloriot Feb 13, 2025
b1ade79
fix compilation issues
sloriot Feb 13, 2025
a9cd1b2
fixes thanks to review
sloriot Feb 13, 2025
171750f
rename function/file
sloriot Feb 13, 2025
a86bd7e
backticks
sloriot Feb 13, 2025
3536e71
more review changes + way to disable ICC
sloriot Feb 13, 2025
a5c5a53
more doc fixes
sloriot Feb 13, 2025
b1e992c
...buffer not reloaded...
sloriot Feb 13, 2025
ce8196f
Apply suggestions from code review
sloriot Feb 14, 2025
e3ab195
move example + accomodate reviews
sloriot Feb 14, 2025
6459cb2
cosmetic changes from the review
sloriot Feb 14, 2025
4ed445b
add macro to hide debug
sloriot Feb 14, 2025
62daaa2
remove empty line
sloriot Feb 14, 2025
7828f2a
Apply suggestions from code review
sloriot Feb 14, 2025
b16a0bd
comment on topology
sloriot Feb 14, 2025
c460951
left over after example renaming
sloriot Feb 14, 2025
05eb2f0
fix compilation error
sloriot Feb 14, 2025
980309e
paste some comments from Sebastien Valette
sloriot Feb 19, 2025
161cbd0
remove seeds
sloriot Feb 19, 2025
711b45e
cosmetic cleanup + dynamic
sloriot Feb 19, 2025
77384f4
Clean code
MaelRL Feb 19, 2025
8544864
Complete headers
MaelRL Feb 19, 2025
8b17758
fix missing include for CI
sloriot Feb 20, 2025
395ac93
clean up
sloriot Feb 20, 2025
9a511fa
use edge_length
sloriot Feb 20, 2025
1876bc4
more clean-up
sloriot Feb 20, 2025
f6315ac
auto -> Mesh
sloriot Feb 20, 2025
3ef926d
lost Mael's rewriting suggestion
sloriot Feb 20, 2025
6bfe41a
edge_length needs a gt too
MaelRL Feb 20, 2025
ae77f4c
Tiny doc fixes
MaelRL Feb 20, 2025
d90f46a
Add missing target computation in Linear_mask's border_edge()
MaelRL Feb 20, 2025
779f4e5
Add linear_subdivision
MaelRL Feb 20, 2025
7ea34bf
Remove redundant mask
MaelRL Feb 20, 2025
184b3a0
Use linear mask/subdivision
MaelRL Feb 20, 2025
582206b
Include the header to test first
afabri Feb 22, 2025
607fbfd
Fix typo
MaelRL Feb 25, 2025
283c78d
address more review points
sloriot Mar 4, 2025
6d15c71
Replace linear_subdivision with a NP in Loop and Catmull-Clark methods
MaelRL Mar 17, 2025
47d097d
Improve subdivision tests
MaelRL Mar 17, 2025
b054194
Add a sentence about fixed subdivision in the user manual
MaelRL Mar 17, 2025
fe1fdde
Misc doc fixes
MaelRL Mar 17, 2025
42c6572
Remove obsolete requirements on the graph having a sequential data st…
MaelRL Mar 17, 2025
17523cd
Remove namespace alias in global namespace
MaelRL Mar 17, 2025
3607f7a
Purge some obsolete links to method that no longer exists
MaelRL Mar 17, 2025
be35f47
Add some Extra in NP description to add links fixed Loop <-> fixed Ca…
MaelRL Mar 17, 2025
811456e
Update example of linear subdivision
MaelRL Mar 17, 2025
8e475d9
Update API from linear_subdivision to Loop/CatmullClark + NP
MaelRL Mar 17, 2025
cfa4289
Revert indentation change
MaelRL Mar 17, 2025
fc92775
Remove doc leftovers of previous implementations
MaelRL Mar 18, 2025
73160fe
Avoid some copies in loop iterating over maps
MaelRL Mar 18, 2025
0e4b82e
add test
sloriot Mar 19, 2025
c23336f
qem required Eigen
sloriot Mar 19, 2025
3124d0e
make it work with Polyhedron
sloriot Mar 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Func Documentation
hoskillua committed Oct 31, 2023
commit 4f99fddb39270d60cc9f10ddd3693d7908864a73
Original file line number Diff line number Diff line change
@@ -629,6 +629,43 @@ PolygonMesh acvd_simplification(

} // namespace internal

/**
* \ingroup ACVD_grp
*
* Performs uniform (isotropic) centroidal voronoi diagram simplification on a polygon mesh.
* This can also be used for remeshing by setting the number of clusters to the desired number of vertices.
* The number of clusters is the number of vertices in the output mesh.
*
* @tparam PolygonMesh a model of `FaceListGraph`
* @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters".
*
* @param pmesh input polygon mesh
* @param nb_vertices number of target vertices in the output mesh
* @param np optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below
* `GT` stands for the type of the object provided to the named parameter `geom_traits()`.
*
* \cgalNamedParamsBegin
* \cgalParamNBegin{vertex_point_map}
* \cgalParamDescription{a property map associating points to the vertices of `pmesh`.}
* \cgalParamType{a class model of `ReadablePropertyMap` with
* `boost::graph_traits<PolygonMesh>::%vertex_descriptor`
* as key type and `GT::Point_3` as value type.}
* \cgalParamDefault{`boost::get(CGAL::vertex_point, pmesh)`.}
* \cgalParamExtra{If this parameter is omitted, an internal property map for
* `CGAL::vertex_point_t` must be available in `PolygonMesh`.}
* \cgalParamNEnd
*
* \cgalParamNBegin{geom_traits}
* \cgalParamDescription{an instance of a geometric traits class.}
* \cgalParamType{a class model of `Kernel`}
* \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`.}
* \cgalParamExtra{The geometric traits class must be compatible with the vertex point type.}
* \cgalParamNEnd
*
* \cgalNamedParamsEnd
*
*/

template <typename PolygonMesh,
typename NamedParameters = parameters::Default_named_parameters>
PolygonMesh acvd_isotropic_simplification(