Skip to content

Fix mesh warp failure on patches joined to the surface at a single vertex - #2620

Merged
akenmorris merged 1 commit into
masterfrom
amorris/fix-2619-mesh-warp
Aug 6, 2026
Merged

Fix mesh warp failure on patches joined to the surface at a single vertex#2620
akenmorris merged 1 commit into
masterfrom
amorris/fix-2619-mesh-warp

Conversation

@akenmorris

Copy link
Copy Markdown
Contributor

Fixes #2619

repair_mesh extracted the largest component using point connectivity and did so before remove_zero_area_triangles, so patches joined to the surface at a single vertex survived and igl::biharmonic_coordinates failed on them. Adds an edge-connected extraction at the end of repair_mesh, and stops an already-failed warp being regenerated once per queued mesh.

Two new MeshTests cases. Mesh, Groom, Optimize, Image, Particles and Project suites pass.

…rtex

repair_mesh extracted the largest component with
vtkPolyDataConnectivityFilter, which counts a shared corner as connected,
and ran it before remove_zero_area_triangles, which can strand patches of
its own. igl::biharmonic_coordinates joins faces by edge, so it saw those
as separate components and failed.

Add MeshUtils::extract_largest_edge_connected_component, run at the end of
repair_mesh instead. Also return early from check_warp_ready once a warp
has failed, so queued meshes don't each repeat it.

Fixes #2619
@akenmorris
akenmorris merged commit efcf25b into master Aug 6, 2026
3 of 5 checks passed
@akenmorris
akenmorris deleted the amorris/fix-2619-mesh-warp branch August 6, 2026 19:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mesh warp fails on patches joined to the surface at a single vertex, and Studio hangs retrying

1 participant