[Bf-blender-cvs] [d282728] master: mesh_validate: don't add invalid edges into the hash
Campbell Barton
noreply at git.blender.org
Thu Feb 26 07:51:03 CET 2015
Commit: d282728f1d742e84314da8d2ed23eb831806e99b
Author: Campbell Barton
Date: Thu Feb 26 17:47:41 2015 +1100
Branches: master
https://developer.blender.org/rBd282728f1d742e84314da8d2ed23eb831806e99b
mesh_validate: don't add invalid edges into the hash
===================================================================
M source/blender/blenkernel/intern/mesh_validate.c
===================================================================
diff --git a/source/blender/blenkernel/intern/mesh_validate.c b/source/blender/blenkernel/intern/mesh_validate.c
index 05dca62..42e9709 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);
More information about the Bf-blender-cvs
mailing list