[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