Revision: 52503
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52503
Author:   campbellbarton
Date:     2012-11-23 06:09:03 +0000 (Fri, 23 Nov 2012)
Log Message:
-----------
skip some redundant looping in bevel code.

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/tools/bmesh_bevel.c

Modified: trunk/blender/source/blender/bmesh/tools/bmesh_bevel.c
===================================================================
--- trunk/blender/source/blender/bmesh/tools/bmesh_bevel.c      2012-11-23 
05:49:00 UTC (rev 52502)
+++ trunk/blender/source/blender/bmesh/tools/bmesh_bevel.c      2012-11-23 
06:09:03 UTC (rev 52503)
@@ -52,7 +52,7 @@
 typedef struct NewVert {
        BMVert *v;
        float co[3];
-       int _pad;
+//     int _pad;
 } NewVert;
 
 struct BoundVert;
@@ -295,12 +295,7 @@
 static BMFace *bev_create_quad_tri(BMesh *bm, BMVert *v1, BMVert *v2, BMVert 
*v3, BMVert *v4,
                                    BMFace *facerep)
 {
-       BMVert *varr[4];
-
-       varr[0] = v1;
-       varr[1] = v2;
-       varr[2] = v3;
-       varr[3] = v4;
+       BMVert *varr[4] = {v1, v2, v3, v4};
        return bev_create_ngon(bm, varr, v4 ? 4 : 3, facerep);
 }
 
@@ -482,15 +477,13 @@
 static void vmesh_cent(VMesh *vm, float r_cent[3])
 {
        BoundVert *v;
-       int tot = 0;
        zero_v3(r_cent);
 
        v = vm->boundstart;
        do {
                add_v3_v3(r_cent, v->nv.co);
-               tot++;
        } while ((v = v->next) != vm->boundstart);
-       mul_v3_fl(r_cent, 1.0f / (float)tot);
+       mul_v3_fl(r_cent, 1.0f / (float)vm->count);
 }
 
 /**
@@ -1413,8 +1406,9 @@
        BMFace *f;
        BMIter iter, iter2;
        EdgeHalf *e;
-       int i, ntot, found_shared_face, ccw_test_sum;
+       int i, found_shared_face, ccw_test_sum;
        int nsel = 0;
+       int ntot = 0;
 
        /* Gather input selected edges.
         * Only bevel selected edges that have exactly two incident faces.
@@ -1425,6 +1419,7 @@
                        BLI_assert(BM_edge_is_manifold(bme));
                        nsel++;
                }
+               ntot++;
        }
 
        if (nsel == 0) {
@@ -1433,7 +1428,10 @@
                return;
        }
 
-       ntot = BM_vert_edge_count(v);
+       /* avoid calling BM_vert_edge_count since we loop over edges already */
+       // ntot = BM_vert_edge_count(v);
+       // BLI_assert(ntot == BM_vert_edge_count(v));
+
        bv = (BevVert *)BLI_memarena_alloc(bp->mem_arena, (sizeof(BevVert)));
        bv->v = v;
        bv->edgecount = ntot;
@@ -1503,10 +1501,13 @@
                }
        }
 
+       /* do later when we loop over edges */
+#if 0
        /* clear BEVEL_EDGE_TAG now that we are finished with it*/
        for (i = 0; i < ntot; i++) {
                BM_BEVEL_EDGE_TAG_DISABLE(bv->edges[i].e);
        }
+#endif
 
        /* if edge array doesn't go CCW around vertex from average normal side,
         * reverse the array, being careful to reverse face pointers too */
@@ -1528,10 +1529,10 @@
                }
        }
 
-       for (i = 0; i < ntot; i++) {
-               e = &bv->edges[i];
+       for (i = 0, e = bv->edges; i < ntot; i++, e++) {
                e->next = &bv->edges[(i + 1) % ntot];
                e->prev = &bv->edges[(i + ntot - 1) % ntot];
+               BM_BEVEL_EDGE_TAG_DISABLE(e->e);
        }
 
        build_boundary(bp->mem_arena, bv);

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

Reply via email to