[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