nmwsharp / potpourri3d

An invigorating blend of 3D geometry tools in Python.
MIT License
414 stars 31 forks source link

Exposing face correspondence for geodesic edges derived from EdgeFlipGeodesicSolver #10

Open variant-tech opened 2 years ago

variant-tech commented 2 years ago

Currently we are building a feature that requires us to find which face IDs the edges that connects geodesic point pairs lie on. Currently, we have to solve this in R3 since we have to perform barycentric check on all of the faces, and it gets extremely slow on large meshes. Similar performance is observed when we use trimesh. It would be very useful to have EdgeFlipGeodesicSolver to return geodesic points, geodesic edges, and the face id on which the geodesic edges lie on (instead of just geodesic points) in the case that the mesh is triangular. I hope it would be useful for other users too, especially if they have to propagate linear equations from the derived geodesic path.

nmwsharp commented 2 months ago

(pardon the slow response!)

This makes sense. In the underlying C++ code, this is tracked via a SurfacePoint class --- we could expose that class in these python bindings to give the richer output you describe. I don't have time to implement this at the moment, but would happily take a PR.