diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-02-26 09:47:41 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-02-26 09:49:21 +0300 |
commit | d282728f1d742e84314da8d2ed23eb831806e99b (patch) | |
tree | f2cad1307a788bd4bac6b22540269e71eac8f059 /source/blender/blenkernel/intern/mesh_validate.c | |
parent | 7708012b9daddbbdc6bb949f9610537754db3887 (diff) |
mesh_validate: don't add invalid edges into the hash
Diffstat (limited to 'source/blender/blenkernel/intern/mesh_validate.c')
-rw-r--r-- | source/blender/blenkernel/intern/mesh_validate.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/mesh_validate.c b/source/blender/blenkernel/intern/mesh_validate.c index 05dca62f919..42e9709cc92 100644 --- a/source/blender/blenkernel/intern/mesh_validate.c +++ b/source/blender/blenkernel/intern/mesh_validate.c @@ -308,6 +308,7 @@ bool BKE_mesh_validate_arrays(Mesh *mesh, for (i = 0, me = medges; i < totedge; i++, me++) { bool remove = false; + if (me->v1 == me->v2) { PRINT_ERR("\tEdge %u: has matching verts, both %u\n", i, me->v1); remove = do_fixes; @@ -321,14 +322,16 @@ bool BKE_mesh_validate_arrays(Mesh *mesh, remove = do_fixes; } - if (BLI_edgehash_haskey(edge_hash, me->v1, me->v2)) { + if ((me->v1 != me->v2) && BLI_edgehash_haskey(edge_hash, me->v1, me->v2)) { PRINT_ERR("\tEdge %u: is a duplicate of %d\n", i, GET_INT_FROM_POINTER(BLI_edgehash_lookup(edge_hash, me->v1, me->v2))); remove = do_fixes; } if (remove == false) { - BLI_edgehash_insert(edge_hash, me->v1, me->v2, SET_INT_IN_POINTER(i)); + if (me->v1 != me->v2) { + BLI_edgehash_insert(edge_hash, me->v1, me->v2, SET_INT_IN_POINTER(i)); + } } else { REMOVE_EDGE_TAG(me); |