[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44143] branches/bmesh/blender/source/ blender: style cleanup for code relating to BMLoop next/prev checks.

Campbell Barton ideasman42 at gmail.com
Thu Feb 16 10:44:33 CET 2012


Revision: 44143
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44143
Author:   campbellbarton
Date:     2012-02-16 09:44:22 +0000 (Thu, 16 Feb 2012)
Log Message:
-----------
style cleanup for code relating to BMLoop next/prev checks. 

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/bmesh/bmesh_class.h
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_interp.c
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_marking.c
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_mods.c
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_newcore.c
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_polygon.c
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_queries.c
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_structure.c
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_walkers_impl.c
    branches/bmesh/blender/source/blender/bmesh/operators/bmo_bevel.c
    branches/bmesh/blender/source/blender/bmesh/operators/bmo_extrude.c
    branches/bmesh/blender/source/blender/bmesh/operators/bmo_removedoubles.c
    branches/bmesh/blender/source/blender/bmesh/tools/BME_bevel.c
    branches/bmesh/blender/source/blender/editors/mesh/knifetool.c
    branches/bmesh/blender/source/blender/editors/uvedit/uvedit_ops.c

Modified: branches/bmesh/blender/source/blender/bmesh/bmesh_class.h
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/bmesh_class.h	2012-02-16 08:48:28 UTC (rev 44142)
+++ branches/bmesh/blender/source/blender/bmesh/bmesh_class.h	2012-02-16 09:44:22 UTC (rev 44143)
@@ -92,8 +92,9 @@
 
 	struct BMLoop *radial_next, *radial_prev;
 	
-	/*private variables*/
-	struct BMLoop *next, *prev; /* won't be able to use listbase API, ger, due to head */
+	/* these were originally commented as private but are used all over the code */
+	/* can't use ListBase API, due to head */
+	struct BMLoop *next, *prev;
 } BMLoop;
 
 /* eventually, this structure will be used for supporting holes in faces */

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_interp.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_interp.c	2012-02-16 08:48:28 UTC (rev 44142)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_interp.c	2012-02-16 09:44:22 UTC (rev 44143)
@@ -112,23 +112,27 @@
 {
 	void *src[2];
 	float w[2];
-	BMLoop *l = NULL, *v1loop = NULL, *vloop = NULL, *v2loop = NULL;
-	
+	BMLoop *v1loop = NULL, *vloop = NULL, *v2loop = NULL;
+	BMLoop *l_iter = NULL;
+
+	if (!e1->l) {
+		return;
+	}
+
 	w[1] = 1.0f - fac;
 	w[0] = fac;
 
-	if (!e1->l) return;
-	l = e1->l;
+	l_iter = e1->l;
 	do {
-		if (l->v == v1) {
-			v1loop = l;
+		if (l_iter->v == v1) {
+			v1loop = l_iter;
 			vloop = v1loop->next;
 			v2loop = vloop->next;
 		}
-		else if (l->v == v) {
-			v1loop = l->next;
-			vloop = l;
-			v2loop = l->prev;
+		else if (l_iter->v == v) {
+			v1loop = l_iter->next;
+			vloop = l_iter;
+			v2loop = l_iter->prev;
 		}
 		
 		if (!v1loop || !v2loop)
@@ -138,8 +142,7 @@
 		src[1] = v2loop->head.data;
 
 		CustomData_bmesh_interp(&bm->ldata, src, w, NULL, 2, vloop->head.data);
-		l = l->radial_next;
-	} while (l != e1->l);
+	} while ((l_iter = l_iter->radial_next) != e1->l);
 }
 
 void BM_loops_to_corners(BMesh *bm, Mesh *me, int findex,

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_marking.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_marking.c	2012-02-16 08:48:28 UTC (rev 44142)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_marking.c	2012-02-16 09:44:22 UTC (rev 44143)
@@ -358,7 +358,9 @@
 	}
 
 	if (select) {
-		if (!BM_elem_flag_test(f, BM_ELEM_SELECT)) bm->totfacesel += 1;
+		if (!BM_elem_flag_test(f, BM_ELEM_SELECT)) {
+			bm->totfacesel++;
+		}
 
 		BM_elem_flag_enable(&(f->head), BM_ELEM_SELECT);
 		l_iter = l_first = BM_FACE_FIRST_LOOP(f);

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_mods.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_mods.c	2012-02-16 08:48:28 UTC (rev 44142)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_mods.c	2012-02-16 09:44:22 UTC (rev 44143)
@@ -412,7 +412,7 @@
 	BMVert *tv2;
 
 	BMIter iter;
-	BMLoop *l = NULL, *kvloop = NULL, *tvloop = NULL;
+	BMLoop *l_iter = NULL, *kvloop = NULL, *tvloop = NULL;
 
 	void *src[2];
 	float w[2];
@@ -426,18 +426,17 @@
 	w[1] = fac;
 
 	if (ke->l) {
-		l = ke->l;
+		l_iter = ke->l;
 		do {
-			if (l->v == tv && l->next->v == kv) {
-				tvloop = l;
-				kvloop = l->next;
+			if (l_iter->v == tv && l_iter->next->v == kv) {
+				tvloop = l_iter;
+				kvloop = l_iter->next;
 
 				src[0] = kvloop->head.data;
 				src[1] = tvloop->head.data;
 				CustomData_bmesh_interp(&bm->ldata, src, w, NULL, 2, kvloop->head.data);
 			}
-			l = l->radial_next;
-		} while (l != ke->l);
+		} while ((l_iter = l_iter->radial_next) != ke->l);
 	}
 
 	/* now interpolate the vertex data */

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_newcore.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_newcore.c	2012-02-16 08:48:28 UTC (rev 44142)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_newcore.c	2012-02-16 09:44:22 UTC (rev 44143)
@@ -287,8 +287,8 @@
 
 	startl = lastl = bm_face_boundry_add(bm, (BMFace *)f, verts[0], edges[0]);
 	
-	startl->v = (BMVert *) verts[0];
-	startl->e = (BMEdge *) edges[0];
+	startl->v = (BMVert *)verts[0];
+	startl->e = (BMEdge *)edges[0];
 	for (i = 1; i < len; i++) {
 		l = bmesh_create_loop(bm, verts[i], edges[i], (BMFace *)f, edges[i]->l);
 		
@@ -374,12 +374,12 @@
 			l2 = l;
 			i = 0;
 			do {
-				if (i >= BM_NGON_MAX)
+				if (i >= BM_NGON_MAX) {
 					break;
+				}
 
 				i++;
-				l2 = l2->next;
-			} while (l2 != l);
+			} while ((l2 = l2->next) != l);
 
 			if (i != l->f->len || l2 != l)
 				err |= (1 << 14);
@@ -618,13 +618,12 @@
 
 static int bmesh_loop_length(BMLoop *l)
 {
-	BMLoop *ol = l;
+	BMLoop *l_first = l;
 	int i = 0;
 
 	do {
-		l = l->next;
 		i++;
-	} while (l != ol);
+	} while ((l = l->next) != l_first);
 
 	return i;
 }
@@ -1056,16 +1055,16 @@
 {
 
 	BMFace *f2;
-	BMLoop *v1loop = NULL, *v2loop = NULL, *curloop, *f1loop = NULL, *f2loop = NULL;
+	BMLoop *v1loop = NULL, *v2loop = NULL, *l_iter, *f1loop = NULL, *f2loop = NULL;
 	BMEdge *e;
 	BMLoopList *lst, *lst2;
 	int i, len, f1len, f2len;
 
 	/* verify that v1 and v2 are in face */
 	len = f->len;
-	for (i = 0, curloop = BM_FACE_FIRST_LOOP(f); i < len; i++, curloop = curloop->next) {
-		if (curloop->v == v1) v1loop = curloop;
-		else if (curloop->v == v2) v2loop = curloop;
+	for (i = 0, l_iter = BM_FACE_FIRST_LOOP(f); i < len; i++, l_iter = l_iter->next) {
+		if (l_iter->v == v1) v1loop = l_iter;
+		else if (l_iter->v == v2) v2loop = l_iter;
 	}
 
 	if (!v1loop || !v2loop) {
@@ -1099,14 +1098,12 @@
 	/* I dont know how many loops are supposed to be in each face at this point! FIXME */
 
 	/* go through all of f2's loops and make sure they point to it properly */
-	curloop = lst2->first;
+	l_iter = lst2->first;
 	f2len = 0;
 	do {
-		curloop->f = f2;
-
-		curloop = curloop->next;
+		l_iter->f = f2;
 		f2len++;
-	} while (curloop != lst2->first);
+	} while ((l_iter = l_iter->next) != lst2->first);
 
 	/* link up the new loops into the new edges radia */
 	bmesh_radial_append(e, f1loop);
@@ -1115,11 +1112,10 @@
 	f2->len = f2len;
 
 	f1len = 0;
-	curloop = lst->first;
+	l_iter = lst->first;
 	do {
 		f1len++;
-		curloop = curloop->next;
-	} while (curloop != lst->first);
+	} while ((l_iter = l_iter->next) != lst->first);
 
 	f->len = f1len;
 
@@ -1278,11 +1274,13 @@
 		for (i = 0, l = e->l; i < radlen; i++, l = l->radial_next) {
 			if (!(l->e == e)) bmesh_error();
 			//if (!(l->radial_next == l)) bmesh_error();
-			if (l->prev->e != ne && l->next->e != ne) bmesh_error();
+			if (l->prev->e != ne && l->next->e != ne) {
+				bmesh_error();
+			}
 			edok = bmesh_verts_in_edge(l->v, l->next->v, e);
-			if (!edok) bmesh_error();
-			if (l->v == l->next->v) bmesh_error();
-			if (l->e == l->next->e) bmesh_error();
+			if (!edok)               bmesh_error();
+			if (l->v == l->next->v)  bmesh_error();
+			if (l->e == l->next->e)  bmesh_error();
 
 			/* verify loop cycle for kloop-> */
 			BM_CHECK_ELEMENT(bm, l);
@@ -1296,9 +1294,9 @@
 			//if (!(l->radial_next == l)) bmesh_error();
 			if (l->prev->e != e && l->next->e != e) bmesh_error();
 			edok = bmesh_verts_in_edge(l->v, l->next->v, ne);
-			if (!edok) bmesh_error();
-			if (l->v == l->next->v) bmesh_error();
-			if (l->e == l->next->e) bmesh_error();
+			if (!edok)                bmesh_error();
+			if (l->v == l->next->v)  bmesh_error();
+			if (l->e == l->next->e)  bmesh_error();
 
 			BM_CHECK_ELEMENT(bm, l);
 			BM_CHECK_ELEMENT(bm, l->v);
@@ -1390,12 +1388,15 @@
 				/* first step, fix the neighboring loops of all loops in ke's radial cycl */
 				for (i = 0, killoop = ke->l; i < radlen; i++, killoop = bmesh_radial_nextloop(killoop)) {
 					/* relink loops and fix vertex pointer */
-					if (killoop->next->v == kv) killoop->next->v = tv;
+					if (killoop->next->v == kv) {
+						killoop->next->v = tv;
+					}
 
 					killoop->next->prev = killoop->prev;
 					killoop->prev->next = killoop->next;
-					if (BM_FACE_FIRST_LOOP(killoop->f) == killoop)
+					if (BM_FACE_FIRST_LOOP(killoop->f) == killoop) {
 						BM_FACE_FIRST_LOOP(killoop->f) = killoop->next;
+					}
 					killoop->next = NULL;
 					killoop->prev = NULL;
 
@@ -1918,18 +1919,20 @@
  */
 BMVert *bmesh_urmv(BMesh *bm, BMFace *sf, BMVert *sv)
 {
-	BMLoop *hl, *sl;
+	BMLoop *l_first;
+	BMLoop *l_iter;
 
-	hl = sl = BM_FACE_FIRST_LOOP(sf);
+	l_iter = l_first = BM_FACE_FIRST_LOOP(sf);
 	do {
-		if (sl->v == sv) break;
-		sl = sl->next;
-	} while (sl != hl);
+		if (l_iter->v == sv) {
+			break;
+		}
+	} while ((l_iter = l_iter->next) != l_first);
 
-	if (sl->v != sv) {
+	if (l_iter->v != sv) {
 		/* sv is not part of sf */
 		return NULL;
 	}
 
-	return bmesh_urmv_loop(bm, sl);
+	return bmesh_urmv_loop(bm, l_iter);
 }

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_polygon.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_polygon.c	2012-02-16 08:48:28 UTC (rev 44142)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_polygon.c	2012-02-16 09:44:22 UTC (rev 44143)
@@ -457,6 +457,8 @@
 
 void BM_vert_normal_update(BMesh *bm, BMVert *v)
 {
+	/* TODO, we can normalize each edge only once, then compare with previous edge */
+
 	BMIter eiter, liter;
 	BMEdge *e;
 	BMLoop *l;
@@ -977,9 +979,8 @@
 	compute_poly_normal(no, projverts, f->len);
 	poly_rotate_plane(no, projverts, f->len);
 	poly_rotate_plane(no, edgeverts, len * 2);
-	
-	l = BM_FACE_FIRST_LOOP(f);
-	for (i = 0; i < f->len; i++) {
+
+	for (i = 0, l = BM_FACE_FIRST_LOOP(f); i < f->len; i++, l = l->next) {
 		p1 = projverts[i];
 		out[0] = MAX2(out[0], p1[0]) + 0.01f;
 		out[1] = MAX2(out[1], p1[1]) + 0.01f;
@@ -987,8 +988,6 @@
 		p1[2] = 0.0f;
 
 		//copy_v3_v3(l->v->co, p1);
-
-		l = l->next;
 	}
 	
 	for (i = 0; i < len; i++) {

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_queries.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_queries.c	2012-02-16 08:48:28 UTC (rev 44142)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_queries.c	2012-02-16 09:44:22 UTC (rev 44143)
@@ -126,20 +126,20 @@
 int BM_verts_in_face(BMesh *bm, BMFace *f, BMVert **varr, int len)
 {

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list