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);
        }
 }
 

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to