[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46606] trunk/blender/source/blender: code cleanup:

Campbell Barton ideasman42 at gmail.com
Sun May 13 16:47:53 CEST 2012


Revision: 46606
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46606
Author:   campbellbarton
Date:     2012-05-13 14:47:53 +0000 (Sun, 13 May 2012)
Log Message:
-----------
code cleanup:
- use bmesh iterator macros in more places
- rename scanfill variables (were using same names as mesh faces/verts which was confusing)

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/displist.c
    trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c
    trunk/blender/source/blender/blenkernel/intern/key.c
    trunk/blender/source/blender/blenkernel/intern/mesh.c
    trunk/blender/source/blender/blenlib/intern/scanfill.c
    trunk/blender/source/blender/bmesh/operators/bmo_triangulate.c
    trunk/blender/source/blender/editors/mesh/editmesh_knife.c
    trunk/blender/source/blender/editors/uvedit/uvedit_unwrap_ops.c
    trunk/blender/source/blender/windowmanager/intern/wm_gesture.c

Modified: trunk/blender/source/blender/blenkernel/intern/displist.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/displist.c	2012-05-13 13:32:48 UTC (rev 46605)
+++ trunk/blender/source/blender/blenkernel/intern/displist.c	2012-05-13 14:47:53 UTC (rev 46606)
@@ -425,8 +425,8 @@
 void BKE_displist_fill(ListBase *dispbase, ListBase *to, int flipnormal)
 {
 	ScanFillContext sf_ctx;
-	ScanFillVert *eve, *v1, *vlast;
-	ScanFillFace *efa;
+	ScanFillVert *sf_vert, *sf_vert_new, *sf_vert_last;
+	ScanFillFace *sf_tri;
 	DispList *dlnew = NULL, *dl;
 	float *f1;
 	int colnr = 0, charidx = 0, cont = 1, tot, a, *index, nextcol = 0;
@@ -454,24 +454,24 @@
 						/* make editverts and edges */
 						f1 = dl->verts;
 						a = dl->nr;
-						eve = v1 = NULL;
+						sf_vert = sf_vert_new = NULL;
 
 						while (a--) {
-							vlast = eve;
+							sf_vert_last = sf_vert;
 
-							eve = BLI_scanfill_vert_add(&sf_ctx, f1);
+							sf_vert = BLI_scanfill_vert_add(&sf_ctx, f1);
 							totvert++;
 
-							if (vlast == NULL)
-								v1 = eve;
+							if (sf_vert_last == NULL)
+								sf_vert_new = sf_vert;
 							else {
-								BLI_scanfill_edge_add(&sf_ctx, vlast, eve);
+								BLI_scanfill_edge_add(&sf_ctx, sf_vert_last, sf_vert);
 							}
 							f1 += 3;
 						}
 
-						if (eve != NULL && v1 != NULL) {
-							BLI_scanfill_edge_add(&sf_ctx, eve, v1);
+						if (sf_vert != NULL && sf_vert_new != NULL) {
+							BLI_scanfill_edge_add(&sf_ctx, sf_vert, sf_vert_new);
 						}
 					}
 					else if (colnr < dl->col) {
@@ -499,31 +499,31 @@
 				/* vert data */
 				f1 = dlnew->verts;
 				totvert = 0;
-				eve = sf_ctx.fillvertbase.first;
-				while (eve) {
-					copy_v3_v3(f1, eve->co);
+				sf_vert = sf_ctx.fillvertbase.first;
+				while (sf_vert) {
+					copy_v3_v3(f1, sf_vert->co);
 					f1 += 3;
 
 					/* index number */
-					eve->tmp.l = totvert;
+					sf_vert->tmp.l = totvert;
 					totvert++;
 
-					eve = eve->next;
+					sf_vert = sf_vert->next;
 				}
 
 				/* index data */
-				efa = sf_ctx.fillfacebase.first;
+				sf_tri = sf_ctx.fillfacebase.first;
 				index = dlnew->index;
-				while (efa) {
-					index[0] = (intptr_t)efa->v1->tmp.l;
-					index[1] = (intptr_t)efa->v2->tmp.l;
-					index[2] = (intptr_t)efa->v3->tmp.l;
+				while (sf_tri) {
+					index[0] = (intptr_t)sf_tri->v1->tmp.l;
+					index[1] = (intptr_t)sf_tri->v2->tmp.l;
+					index[2] = (intptr_t)sf_tri->v3->tmp.l;
 
 					if (flipnormal)
 						SWAP(int, index[0], index[2]);
 
 					index += 3;
-					efa = efa->next;
+					sf_tri = sf_tri->next;
 				}
 			}
 

Modified: trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c	2012-05-13 13:32:48 UTC (rev 46605)
+++ trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c	2012-05-13 14:47:53 UTC (rev 46606)
@@ -116,7 +116,7 @@
 	BMLoop *(*looptris)[3] = NULL;
 	BLI_array_declare(looptris);
 	BMIter iter, liter;
-	BMFace *f;
+	BMFace *efa;
 	BMLoop *l;
 	int i = 0, j;
 
@@ -150,9 +150,9 @@
 
 #endif
 
-	BM_ITER_MESH (f, &iter, bm, BM_FACES_OF_MESH) {
+	BM_ITER_MESH (efa, &iter, bm, BM_FACES_OF_MESH) {
 		/*don't consider two-edged faces*/
-		if (f->len < 3) {
+		if (efa->len < 3) {
 			/* do nothing */
 		}
 
@@ -160,20 +160,18 @@
 
 		/* no need to ensure the loop order, we know its ok */
 
-		else if (f->len == 3) {
+		else if (efa->len == 3) {
 			BLI_array_grow_one(looptris);
-			l = BM_iter_new(&liter, bm, BM_LOOPS_OF_FACE, f);
-			for (j = 0; l; l = BM_iter_step(&liter), j++) {
+			BM_ITER_ELEM_INDEX (l, &liter, efa, BM_LOOPS_OF_FACE, j) {
 				looptris[i][j] = l;
 			}
 			i += 1;
 		}
-		else if (f->len == 4) {
+		else if (efa->len == 4) {
 			BMLoop *ltmp[4];
 			BLI_array_grow_items(looptris, 2);
 
-			l = BM_iter_new(&liter, bm, BM_LOOPS_OF_FACE, f);
-			for (j = 0; l; l = BM_iter_step(&liter), j++) {
+			BM_ITER_ELEM_INDEX (l, &liter, efa, BM_LOOPS_OF_FACE, j) {
 				ltmp[j] = l;
 			}
 
@@ -191,39 +189,39 @@
 #endif /* USE_TESSFACE_SPEEDUP */
 
 		else {
-			ScanFillVert *v, *lastv = NULL, *firstv = NULL;
+			ScanFillVert *sf_vert, *sf_vert_last = NULL, *sf_vert_first = NULL;
 			/* ScanFillEdge *e; */ /* UNUSED */
-			ScanFillFace *efa;
+			ScanFillFace *sf_tri;
 			int totfilltri;
 
 			BLI_scanfill_begin(&sf_ctx);
-			/*scanfill time*/
-			l = BM_iter_new(&liter, bm, BM_LOOPS_OF_FACE, f);
-			for (j = 0; l; l = BM_iter_step(&liter), j++) {
+
+			/* scanfill time */
+			BM_ITER_ELEM_INDEX (l, &liter, efa, BM_LOOPS_OF_FACE, j) {
 				/*mark order*/
 				BM_elem_index_set(l, j); /* set_loop */
 
-				v = BLI_scanfill_vert_add(&sf_ctx, l->v->co);
-				v->tmp.p = l;
+				sf_vert = BLI_scanfill_vert_add(&sf_ctx, l->v->co);
+				sf_vert->tmp.p = l;
 
-				if (lastv) {
-					/* e = */ BLI_scanfill_edge_add(&sf_ctx, lastv, v);
+				if (sf_vert_last) {
+					/* e = */ BLI_scanfill_edge_add(&sf_ctx, sf_vert_last, sf_vert);
 				}
 
-				lastv = v;
-				if (firstv == NULL) firstv = v;
+				sf_vert_last = sf_vert;
+				if (sf_vert_first == NULL) sf_vert_first = sf_vert;
 			}
 
-			/*complete the loop*/
-			BLI_scanfill_edge_add(&sf_ctx, firstv, v);
+			/* complete the loop */
+			BLI_scanfill_edge_add(&sf_ctx, sf_vert_first, sf_vert);
 
-			totfilltri = BLI_scanfill_calc_ex(&sf_ctx, FALSE, f->no);
+			totfilltri = BLI_scanfill_calc_ex(&sf_ctx, FALSE, efa->no);
 			BLI_array_grow_items(looptris, totfilltri);
 
-			for (efa = sf_ctx.fillfacebase.first; efa; efa = efa->next) {
-				BMLoop *l1 = efa->v1->tmp.p;
-				BMLoop *l2 = efa->v2->tmp.p;
-				BMLoop *l3 = efa->v3->tmp.p;
+			for (sf_tri = sf_ctx.fillfacebase.first; sf_tri; sf_tri = sf_tri->next) {
+				BMLoop *l1 = sf_tri->v1->tmp.p;
+				BMLoop *l2 = sf_tri->v2->tmp.p;
+				BMLoop *l3 = sf_tri->v3->tmp.p;
 
 				if (BM_elem_index_get(l1) > BM_elem_index_get(l2)) { SWAP(BMLoop *, l1, l2); }
 				if (BM_elem_index_get(l2) > BM_elem_index_get(l3)) { SWAP(BMLoop *, l2, l3); }
@@ -384,16 +382,16 @@
 
 		BM_mesh_elem_index_ensure(bmdm->tc->bm, BM_VERT);
 
-		eed = BM_iter_new(&iter, bmdm->tc->bm, BM_EDGES_OF_MESH, NULL);
-		for (i = 0; eed; i++, eed = BM_iter_step(&iter))
+		BM_ITER_MESH_INDEX (eed, &iter, bmdm->tc->bm, BM_EDGES_OF_MESH, i) {
 			func(userData, i,
 			     bmdm->vertexCos[BM_elem_index_get(eed->v1)],
 			     bmdm->vertexCos[BM_elem_index_get(eed->v2)]);
+		}
 	}
 	else {
-		eed = BM_iter_new(&iter, bmdm->tc->bm, BM_EDGES_OF_MESH, NULL);
-		for (i = 0; eed; i++, eed = BM_iter_step(&iter))
+		BM_ITER_MESH_INDEX (eed, &iter, bmdm->tc->bm, BM_EDGES_OF_MESH, i) {
 			func(userData, i, eed->v1->co, eed->v2->co);
+		}
 	}
 }
 
@@ -411,8 +409,7 @@
 		BM_mesh_elem_index_ensure(bmdm->tc->bm, BM_VERT);
 
 		glBegin(GL_LINES);
-		eed = BM_iter_new(&iter, bmdm->tc->bm, BM_EDGES_OF_MESH, NULL);
-		for (i = 0; eed; i++, eed = BM_iter_step(&iter)) {
+		BM_ITER_MESH_INDEX (eed, &iter, bmdm->tc->bm, BM_EDGES_OF_MESH, i) {
 			if (!setDrawOptions || (setDrawOptions(userData, i) != DM_DRAW_OPTION_SKIP)) {
 				glVertex3fv(bmdm->vertexCos[BM_elem_index_get(eed->v1)]);
 				glVertex3fv(bmdm->vertexCos[BM_elem_index_get(eed->v2)]);
@@ -422,8 +419,7 @@
 	}
 	else {
 		glBegin(GL_LINES);
-		eed = BM_iter_new(&iter, bmdm->tc->bm, BM_EDGES_OF_MESH, NULL);
-		for (i = 0; eed; i++, eed = BM_iter_step(&iter)) {
+		BM_ITER_MESH_INDEX (eed, &iter, bmdm->tc->bm, BM_EDGES_OF_MESH, i) {
 			if (!setDrawOptions || (setDrawOptions(userData, i) != DM_DRAW_OPTION_SKIP)) {
 				glVertex3fv(eed->v1->co);
 				glVertex3fv(eed->v2->co);
@@ -454,8 +450,7 @@
 		BM_mesh_elem_index_ensure(bmdm->tc->bm, BM_VERT);
 
 		glBegin(GL_LINES);
-		eed = BM_iter_new(&iter, bmdm->tc->bm, BM_EDGES_OF_MESH, NULL);
-		for (i = 0; eed; i++, eed = BM_iter_step(&iter)) {
+		BM_ITER_MESH_INDEX (eed, &iter, bmdm->tc->bm, BM_EDGES_OF_MESH, i) {
 			if (!setDrawOptions || (setDrawOptions(userData, i) != DM_DRAW_OPTION_SKIP)) {
 				setDrawInterpOptions(userData, i, 0.0);
 				glVertex3fv(bmdm->vertexCos[BM_elem_index_get(eed->v1)]);
@@ -467,8 +462,7 @@
 	}
 	else {
 		glBegin(GL_LINES);
-		eed = BM_iter_new(&iter, bmdm->tc->bm, BM_EDGES_OF_MESH, NULL);
-		for (i = 0; eed; i++, eed = BM_iter_step(&iter)) {
+		BM_ITER_MESH_INDEX (eed, &iter, bmdm->tc->bm, BM_EDGES_OF_MESH, i) {
 			if (!setDrawOptions || (setDrawOptions(userData, i) != DM_DRAW_OPTION_SKIP)) {
 				setDrawInterpOptions(userData, i, 0.0);
 				glVertex3fv(eed->v1->co);
@@ -518,9 +512,9 @@
 	glEnd();
 }
 
-static void emDM__calcFaceCent(BMesh *bm, BMFace *efa, float cent[3], float (*vertexCos)[3])
+static void emDM__calcFaceCent(BMFace *efa, float cent[3], float (*vertexCos)[3])
 {
-	BMIter iter;
+	BMIter liter;
 	BMLoop *l;
 	int tot = 0;
 
@@ -529,15 +523,13 @@
 	/*simple (and stupid) median (average) based method :/ */
 
 	if (vertexCos) {
-		l = BM_iter_new(&iter, bm, BM_LOOPS_OF_FACE, efa);
-		for (; l; l = BM_iter_step(&iter)) {
+		BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) {
 			add_v3_v3(cent, vertexCos[BM_elem_index_get(l->v)]);
 			tot++;
 		}
 	}
 	else {
-		l = BM_iter_new(&iter, bm, BM_LOOPS_OF_FACE, efa);
-		for (; l; l = BM_iter_step(&iter)) {
+		BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) {
 			add_v3_v3(cent, l->v->co);
 			tot++;
 		}
@@ -567,7 +559,7 @@
 	}
 
 	BM_ITER_MESH_INDEX (efa, &iter, bmdm->tc->bm, BM_FACES_OF_MESH, i) {
-		emDM__calcFaceCent(bmdm->tc->bm, efa, cent, bmdm->vertexCos);
+		emDM__calcFaceCent(efa, cent, bmdm->vertexCos);
 		func(userData, i, cent, polyNos ? polyNos[i] : efa->no);
 	}
 }
@@ -1369,23 +1361,34 @@
 {
 	EditDerivedBMesh *bmdm = (EditDerivedBMesh *)dm;
 	BMesh *bm = bmdm->tc->bm;
-	BMVert *ev;
+	BMVert *eve;
 	BMIter iter;
-	int i;
+	const int has_bweight = CustomData_has_layer(&bm->vdata, CD_BWEIGHT);
 
-	ev = BM_iter_new(&iter, bm, BM_VERTS_OF_MESH, NULL);
-	for (i = 0; ev; ev = BM_iter_step(&iter), ++vert_r, ++i) {
-		if (bmdm->vertexCos)
+	if (bmdm->vertexCos) {
+		int i;
+
+		BM_ITER_MESH_INDEX (eve, &iter, bm, BM_VERTS_OF_MESH, i) {
 			copy_v3_v3(vert_r->co, bmdm->vertexCos[i]);
-		else
-			copy_v3_v3(vert_r->co, ev->co);
+			normal_float_to_short_v3(vert_r->no, eve->no);
+			vert_r->flag = BM_vert_flag_to_mflag(eve);
 
-		normal_float_to_short_v3(vert_r->no, ev->no);
+			if (has_bweight) {
+				vert_r->bweight = (unsigned char) (BM_elem_float_data_get(&bm->vdata, eve, CD_BWEIGHT) * 255.0f);
+			}
+			vert_r++;
+		}
+	}
+	else {
+		BM_ITER_MESH (eve, &iter, bm, BM_VERTS_OF_MESH) {

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list