[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56580] trunk/blender/source/blender/bmesh /operators/bmo_dissolve.c: code cleanup: dissolve - use iterator macros, remove unused function.

Campbell Barton ideasman42 at gmail.com
Wed May 8 16:08:37 CEST 2013


Revision: 56580
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56580
Author:   campbellbarton
Date:     2013-05-08 14:08:37 +0000 (Wed, 08 May 2013)
Log Message:
-----------
code cleanup: dissolve - use iterator macros, remove unused function.

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/operators/bmo_dissolve.c

Modified: trunk/blender/source/blender/bmesh/operators/bmo_dissolve.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_dissolve.c	2013-05-08 14:01:38 UTC (rev 56579)
+++ trunk/blender/source/blender/bmesh/operators/bmo_dissolve.c	2013-05-08 14:08:37 UTC (rev 56580)
@@ -385,7 +385,7 @@
 		}
 	}
 
-	for (v = BM_iter_new(&iter, bm, BM_VERTS_OF_MESH, NULL); v; v = BM_iter_step(&iter)) {
+	BM_ITER_MESH (v, &iter, bm, BM_VERTS_OF_MESH) {
 		if (BMO_elem_flag_test(bm, v, VERT_MARK)) {
 			/* check if it's a two-valence ver */
 			if (BM_vert_edge_count(v) == 2) {
@@ -402,8 +402,7 @@
 				continue;
 			}
 
-			f = BM_iter_new(&fiter, bm, BM_FACES_OF_VERT, v);
-			for ( ; f; f = BM_iter_step(&fiter)) {
+			BM_ITER_ELEM (f, &fiter, v, BM_FACES_OF_VERT) {
 				BMO_elem_flag_enable(bm, f, FACE_ORIG);
 				BMO_elem_flag_enable(bm, f, FACE_MARK);
 			}
@@ -411,8 +410,7 @@
 			/* check if our additions to the input to face dissolve
 			 * will destroy nonmarked vertices. */
 			if (!test_extra_verts(bm, v)) {
-				f = BM_iter_new(&fiter, bm, BM_FACES_OF_VERT, v);
-				for ( ; f; f = BM_iter_step(&fiter)) {
+				BM_ITER_ELEM (f, &fiter, v, BM_FACES_OF_VERT) {
 					if (BMO_elem_flag_test(bm, f, FACE_ORIG)) {
 						BMO_elem_flag_disable(bm, f, FACE_MARK);
 						BMO_elem_flag_disable(bm, f, FACE_ORIG);
@@ -420,8 +418,7 @@
 				}
 			}
 			else {
-				f = BM_iter_new(&fiter, bm, BM_FACES_OF_VERT, v);
-				for ( ; f; f = BM_iter_step(&fiter)) {
+				BM_ITER_ELEM (f, &fiter, v, BM_FACES_OF_VERT) {
 					BMO_elem_flag_disable(bm, f, FACE_ORIG);
 				}
 			}
@@ -438,7 +435,7 @@
 	}
 	
 	/* clean up any remainin */
-	for (v = BM_iter_new(&iter, bm, BM_VERTS_OF_MESH, NULL); v; v = BM_iter_step(&iter)) {
+	BM_ITER_MESH (v, &iter, bm, BM_VERTS_OF_MESH) {
 		if (BMO_elem_flag_test(bm, v, VERT_MARK)) {
 			if (!BM_vert_dissolve(bm, v)) {
 				BMO_error_raise(bm, op, BMERR_DISSOLVEVERTS_FAILED, NULL);
@@ -449,78 +446,6 @@
 
 }
 
-/* this code is for cleaning up two-edged faces, it shall become
- * it's own function one day */
-#if 0
-void dummy_exec(BMesh *bm, BMOperator *op)
-{
-	{
-		/* clean up two-edged face */
-		/* basic idea is to keep joining 2-edged faces until their
-		 * gone.  this however relies on joining two 2-edged faces
-		 * together to work, which doesn't */
-		found3 = 1;
-		while (found3) {
-			found3 = 0;
-			for (f = BM_iter_new(&iter, bm, BM_FACES_OF_MESH, NULL); f; f = BM_iter_step(&iter)) {
-				if (!BM_face_validate(bm, f, stderr)) {
-					printf("error.\n");
-				}
-
-				if (f->len == 2) {
-					//this design relies on join faces working
-					//with two-edged faces properly.
-					//commenting this line disables the
-					//outermost loop.
-					//found3 = 1;
-					found2 = 0;
-					l = BM_iter_new(&liter, bm, BM_LOOPS_OF_FACE, f);
-					fe = l->e;
-					for ( ; l; l = BM_iter_step(&liter)) {
-						f2 = BM_iter_new(&fiter, bm,
-						                 BM_FACES_OF_EDGE, l->e);
-						for (; f2; f2 = BM_iter_step(&fiter)) {
-							if (f2 != f) {
-								BM_faces_join_pair(bm, f, f2, l->e);
-								found2 = 1;
-								break;
-							}
-						}
-						if (found2) break;
-					}
-
-					if (!found2) {
-						BM_face_kill(bm, f);
-						BM_edge_kill(bm, fe);
-					}
-				}
-#if 0
-				else if (f->len == 3) {
-					BMEdge *ed[3];
-					BMVert *vt[3];
-					BMLoop *lp[3];
-					int i = 0;
-
-					//check for duplicate edges
-					l = BM_iter_new(&liter, bm, BM_LOOPS_OF_FACE, f);
-					for ( ; l; l = BM_iter_step(&liter)) {
-						ed[i] = l->e;
-						lp[i] = l;
-						vt[i++] = l->v;
-					}
-					if (vt[0] == vt[1] || vt[0] == vt[2]) {
-						i += 1;
-					}
-#endif
-			}
-		}
-		if (oldlen == len) break;
-		oldlen = len;
-	}
-}
-
-#endif
-
 /* Limited Dissolve */
 void bmo_dissolve_limit_exec(BMesh *bm, BMOperator *op)
 {




More information about the Bf-blender-cvs mailing list