Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Parborg <darkdefende@gmail.com>2021-10-21 16:13:55 +0300
committerSebastian Parborg <darkdefende@gmail.com>2021-10-21 16:15:29 +0300
commit10fb5cc58d210592ef0ae410e305be906ad5ce51 (patch)
tree8c5c2c5269534c1ebedd77c9b7af486abec2fed2 /source/blender/editors/object/object_remesh.cc
parent91b4c1841a9b961a7361eb48bd349a674e0b61ae (diff)
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.
Diffstat (limited to 'source/blender/editors/object/object_remesh.cc')
-rw-r--r--source/blender/editors/object/object_remesh.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/source/blender/editors/object/object_remesh.cc b/source/blender/editors/object/object_remesh.cc
index d56cb3c7548..3bdf7e0d34d 100644
--- a/source/blender/editors/object/object_remesh.cc
+++ b/source/blender/editors/object/object_remesh.cc
@@ -708,12 +708,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;
+ }
}
}