Closed supersubscript closed 5 years ago
Thanks for pointing this out. I'm in the process of refactoring this module and I'll have an update soon.
There's some sort of bug with the subdivision filter, and I've found that I've had better luck just creating my own method. The following code snippet should work for you with the latest version of pyacvd
import pyvista as pv
from pyacvd import Clustering
pv.set_plot_theme('document')
mesh = pv.read('shoot_manifold_acvd_crash.ply')
clus = Clustering(mesh)
clus.subdivide(3) # 2 also works
clus.cluster(10000)
remesh = clus.create_mesh()
remesh.plot(color='w', show_edges=True, smooth_shading=True)
I have a mesh, that I'm trying to resample with the ACVD algorithm. While the mesh is manifold, the subdivision filter employed by the ACVD algorithm appears to return a non-manifold mesh, that makes the algorithm crash mid-way.
In particular:
The step that fails is the generation of the clusters:
Digging deeper shows that this is due to the subdivision that is happening inside the mesh preparation step:
Notably, the issue doesn't arise for when only a single subdivision is needed, but the output of that is non-manifold.