pyvista / pyacvd

Python implementation of surface mesh resampling algorithm ACVD
MIT License
186 stars 16 forks source link

anisotropic remeshing #10

Open kayarre opened 4 years ago

kayarre commented 4 years ago

What would it take to implement the anisotropic remeshing similar to ACVD?

akaszynski commented 4 years ago

Probably a bit of work as I'd have to go over the algorithm again. The paper I used to reference isn't out there, do you know where I could find it?

kayarre commented 4 years ago

Are you talking about ACVD?

here are the links for the three papers mentioned in ACVD repo. https://hal.archives-ouvertes.fr/hal-00537025/document https://hal.archives-ouvertes.fr/hal-00534535/document http://www2.imm.dtu.dk/projects/MeshMed/2011/MeshMed2011Proceedings.pdf (starting at page 176)

akaszynski commented 4 years ago

I'm not seeing references to anisotropic remeshing in the referenced papers. pyacvd currently implements the uniform remeshing algorithm using voronoi tessellation which is nearly identical to that in ACVD. I'd have to go through his code (which would take quite some time) to figure out exactly how he implemented anisotropic remeshing.

Currently, I think I've only implemented isotropic (uniform) remeshing, though there is an option to increase the density of the mesh nearby areas of high curvature.

kayarre commented 4 years ago

Essentially that is anisotropic remeshing. “Increase the density at areas of high curvature” I didn’t see where this option is in pyavcd. In acvd there was an option to specify 0 for uniform and higher to increase the density as a function of curvature.

akaszynski commented 4 years ago

I'll have to add that in. Let me see if I can get an update over the weekend.

akaszynski commented 4 years ago

Took a look at this again today and it's not something I'll be able to easily implement. pyacvd really takes only a tiny subset of the acvd code and implements that within cython. I'm considering just wrapping the acvd interface with a small interface file to provide a python interface to the actual acvd code, but I'm quite busy at the moment and this might take a while to accomplish.