From 77104bf31891229e7d18ab56506ce6f456491eb0 Mon Sep 17 00:00:00 2001 From: Sebastian Parborg Date: Thu, 21 Oct 2021 15:13:55 +0200 Subject: Fix T92355: Quadriflow crashes with zero length edges Add a check for zero length edges to the manifold check as quadriflow doesn't handle meshes with these. --- source/blender/editors/object/object_remesh.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'source') diff --git a/source/blender/editors/object/object_remesh.c b/source/blender/editors/object/object_remesh.c index 9ef2cce875f..24de6b6052e 100644 --- a/source/blender/editors/object/object_remesh.c +++ b/source/blender/editors/object/object_remesh.c @@ -699,12 +699,19 @@ static bool mesh_is_manifold_consistent(Mesh *mesh) } if (is_manifold_consistent) { - /* check for wire edges */ for (uint i = 0; i < mesh->totedge; i++) { + /* Check for wire edges. */ if (edge_faces[i] == 0) { is_manifold_consistent = false; break; } + /* Check for zero length edges */ + MVert *v1 = &mesh->mvert[mesh->medge[i].v1]; + MVert *v2 = &mesh->mvert[mesh->medge[i].v2]; + if (compare_v3v3(v1->co, v2->co, 1e-4f)) { + is_manifold_consistent = false; + break; + } } } -- cgit v1.2.3