Bump libigl to f68f01c2 and add bindings for new/missing functions - #314
Merged
Conversation
Bump the pinned libigl commit from 477e15a3 to f68f01c2 (latest main) and expose the functions added upstream in that range, plus a couple of trivial overloads that were already available in libigl but unbound. New upstream functions: - igl::simplex_simplex_squared_distance (libigl #2548): squared distance and barycentric coordinates of the closest points between two simplices. - igl::triangle::remesh_at_points (libigl #2556): remesh a triangle mesh to include a set of barycentric sample points as vertices. Trivial missing overloads/bindings on existing functions: - igl.face_areas(L): tet-mesh face areas from intrinsic edge lengths. - igl.per_face_normals_stable(V, F): order-independent per-face normals. Adds call tests for all four to tests/test_all.py. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Bumps the pinned libigl commit from
477e15a3tof68f01c2(latestmain) and adds Python bindings for the functions introduced upstream in that range, plus two trivial overloads that libigl already offered but were unbound.New upstream functions
igl.simplex_simplex_squared_distance(V1, V2)(libigl #2548) — squared distance between the closest points on two simplices, together with the barycentric coordinates of those closest points on each simplex. Returns(sqrD, B1, B2).igl.triangle.remesh_at_points(V, F, B, FI)(libigl #2556) — remesh a triangle mesh so that a set of barycentric sample points become vertices (vertex-points tracked, edge-points split across incident faces, face-points inserted). Returns(VV, FF, J, K).Trivial missing overloads on existing functions
igl.face_areas(L)— tet-mesh face areas from intrinsic edge lengths (the existing binding only exposed the(V, T)form).igl.per_face_normals_stable(V, F)— order-independent per-face normals (previously unbound; the plain/degenerate-handling overloads were already exposed).Notes on what was not added
igl::marching_cubesgained a sparse-grid overload that also returns anE2Vedge→vertex map; it differs from the existing sparse binding only by an added output, so it can't be exposed as a distinct nanobind overload without changing the current return type. Skipped to avoid a breaking change.swept_volume*overloads changed upstream but those functions are not bound at all, so they're out of scope here.Testing
Call tests added to
tests/test_all.pyfor all four functions (geometric sanity checks: known distances, barycentric sums, centroid insertion, intrinsic-vs-extrinsic agreement, normal alignment). Full suite passes locally:🤖 Generated with Claude Code