[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41913] branches/bmesh/blender/source/ blender/bmesh/intern/bmesh_mesh.c: BM_Compute_Normals was setting invalid edge index values when it didn' t need to.

Campbell Barton ideasman42 at gmail.com
Wed Nov 16 14:23:30 CET 2011


Revision: 41913
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41913
Author:   campbellbarton
Date:     2011-11-16 13:23:29 +0000 (Wed, 16 Nov 2011)
Log Message:
-----------
BM_Compute_Normals was setting invalid edge index values when it didn't need to.

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_mesh.c

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_mesh.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_mesh.c	2011-11-16 13:06:49 UTC (rev 41912)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_mesh.c	2011-11-16 13:23:29 UTC (rev 41913)
@@ -271,12 +271,15 @@
 	edgevec = MEM_callocN(sizeof(float) * 3 * bm->totedge, "BM normal computation array");
 	BM_ITER(e, &edges, bm, BM_EDGES_OF_MESH, NULL) {
 		BM_SetIndex(e, index); /* set_inline */
-		if (!e->l) {
+
+		if (e->l) {
+			sub_v3_v3v3(edgevec[index], e->v2->co, e->v1->co);
+			normalize_v3(edgevec[index]);
+		}
+		else {
 			/* the edge vector will not be needed when the edge has no radial */
-			continue;
 		}
-		sub_v3_v3v3(edgevec[index], e->v2->co, e->v1->co);
-		normalize_v3(edgevec[index]);
+
 		index++;
 	}
 	bm->elem_index_dirty &= ~BM_EDGE;
@@ -498,6 +501,7 @@
 			index++;
 		}
 		bm->elem_index_dirty &= ~BM_VERT;
+		BLI_assert(index == bm->totvert);
 	}
 
 	if ((hflag & BM_EDGE) /* && (bm->elem_index_dirty & BM_EDGE) */) {
@@ -507,6 +511,7 @@
 			index++;
 		}
 		bm->elem_index_dirty &= ~BM_EDGE;
+		BLI_assert(index == bm->totedge);
 	}
 
 	if ((hflag & BM_FACE) /* && (bm->elem_index_dirty & BM_FACES) */) {
@@ -516,6 +521,7 @@
 			index++;
 		}
 		bm->elem_index_dirty &= ~BM_FACE;
+		BLI_assert(index == bm->totface);
 	}
 }
 




More information about the Bf-blender-cvs mailing list