[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53707] trunk/blender/source/blender/ editors/space_view3d/view3d_buttons.c: simple speedup for view3d numeric panel - dont loop on verts or edges if none are selected .

Campbell Barton ideasman42 at gmail.com
Thu Jan 10 15:38:30 CET 2013


Revision: 53707
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53707
Author:   campbellbarton
Date:     2013-01-10 14:38:30 +0000 (Thu, 10 Jan 2013)
Log Message:
-----------
simple speedup for view3d numeric panel - dont loop on verts or edges if none are selected.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c	2013-01-10 14:36:08 UTC (rev 53706)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c	2013-01-10 14:38:30 UTC (rev 53707)
@@ -184,21 +184,21 @@
 		const int cd_edge_bweight_offset = CustomData_get_offset(&bm->edata, CD_BWEIGHT);
 		const int cd_edge_crease_offset  = CustomData_get_offset(&bm->edata, CD_CREASE);
 
-		BM_ITER_MESH (eve, &iter, bm, BM_VERTS_OF_MESH) {
-			if (BM_elem_flag_test(eve, BM_ELEM_SELECT)) {
-				MVertSkin *vs;
+		if (bm->totvertsel) {
+			BM_ITER_MESH (eve, &iter, bm, BM_VERTS_OF_MESH) {
+				if (BM_elem_flag_test(eve, BM_ELEM_SELECT)) {
+					evedef = eve;
+					tot++;
+					add_v3_v3(&median[LOC_X], eve->co);
 
-				evedef = eve;
-				tot++;
-				add_v3_v3(&median[LOC_X], eve->co);
+					/* TODO cd_vert_bweight_offset */
+					(void)cd_vert_bweight_offset;
 
-				/* TODO cd_vert_bweight_offset */
-				(void)cd_vert_bweight_offset;
-
-				if (cd_vert_skin_offset != -1) {
-					vs = BM_ELEM_CD_GET_VOID_P(eve, cd_vert_skin_offset);
-					add_v2_v2(&median[M_SKIN_X], vs->radius); /* Third val not used currently. */
-					totskinradius++;
+					if (cd_vert_skin_offset != -1) {
+						MVertSkin *vs = BM_ELEM_CD_GET_VOID_P(eve, cd_vert_skin_offset);
+						add_v2_v2(&median[M_SKIN_X], vs->radius); /* Third val not used currently. */
+						totskinradius++;
+					}
 				}
 			}
 		}
@@ -206,17 +206,19 @@
 		if ((cd_edge_bweight_offset != -1) ||
 		    (cd_edge_crease_offset  != -1))
 		{
-			BM_ITER_MESH (eed, &iter, bm, BM_EDGES_OF_MESH) {
-				if (BM_elem_flag_test(eed, BM_ELEM_SELECT)) {
-					if (cd_edge_bweight_offset != -1) {
-						median[M_WEIGHT] += BM_ELEM_CD_GET_FLOAT(eed, cd_edge_bweight_offset);
-					}
+			if (bm->totedgesel) {
+				BM_ITER_MESH (eed, &iter, bm, BM_EDGES_OF_MESH) {
+					if (BM_elem_flag_test(eed, BM_ELEM_SELECT)) {
+						if (cd_edge_bweight_offset != -1) {
+							median[M_WEIGHT] += BM_ELEM_CD_GET_FLOAT(eed, cd_edge_bweight_offset);
+						}
 
-					if (cd_edge_crease_offset != -1) {
-						median[M_CREASE] += BM_ELEM_CD_GET_FLOAT(eed, cd_edge_crease_offset);
+						if (cd_edge_crease_offset != -1) {
+							median[M_CREASE] += BM_ELEM_CD_GET_FLOAT(eed, cd_edge_crease_offset);
+						}
+
+						totedgedata++;
 					}
-
-					totedgedata++;
 				}
 			}
 		}




More information about the Bf-blender-cvs mailing list