[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [43925] branches/bmesh/blender/source/ blender: replace some hard coded limits with defines

Campbell Barton ideasman42 at gmail.com
Mon Feb 6 06:18:09 CET 2012


Revision: 43925
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43925
Author:   campbellbarton
Date:     2012-02-06 05:18:08 +0000 (Mon, 06 Feb 2012)
Log Message:
-----------
replace some hard coded limits with defines 

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/bmesh/bmesh.h
    branches/bmesh/blender/source/blender/bmesh/bmesh_walkers.h
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_newcore.c
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_structure.c
    branches/bmesh/blender/source/blender/bmesh/operators/createops.c
    branches/bmesh/blender/source/blender/bmesh/operators/dissolveops.c
    branches/bmesh/blender/source/blender/bmesh/operators/removedoubles.c
    branches/bmesh/blender/source/blender/editors/mesh/bmesh_select.c
    branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c
    branches/bmesh/blender/source/blender/editors/mesh/loopcut.c

Modified: branches/bmesh/blender/source/blender/bmesh/bmesh.h
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/bmesh.h	2012-02-06 04:37:27 UTC (rev 43924)
+++ branches/bmesh/blender/source/blender/bmesh/bmesh.h	2012-02-06 05:18:08 UTC (rev 43925)
@@ -371,6 +371,11 @@
  * this value is rather arbitrary */
 #define BM_NGON_STACK_SIZE 32
 
+/* avoid inf loop, this value is arbtrary
+ * but should not error on valid cases */
+#define BM_LOOP_RADIAL_MAX 10000
+#define BM_NGON_MAX 100000
+
 /* include the rest of the API */
 #include "bmesh_filters.h"
 #include "bmesh_marking.h"

Modified: branches/bmesh/blender/source/blender/bmesh/bmesh_walkers.h
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/bmesh_walkers.h	2012-02-06 04:37:27 UTC (rev 43924)
+++ branches/bmesh/blender/source/blender/bmesh/bmesh_walkers.h	2012-02-06 05:18:08 UTC (rev 43925)
@@ -37,8 +37,11 @@
 	int depth;
 } BMWalker;
 
-/*initialize a walker.  searchmask restricts some (not all) walkers to
-  elements with a specific tool flag set.  flags is specific to each walker.*/
+/* define to make BMW_Init more clear */
+#define BMW_MASK_NOP 0
+
+/* initialize a walker.  searchmask restricts some (not all) walkers to
+ * elements with a specific tool flag set.  flags is specific to each walker.*/
 void BMW_Init(struct BMWalker *walker, BMesh *bm, int type,
               short mask_vert, short mask_edge, short mask_loop, short mask_face,
               int layer);

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_newcore.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_newcore.c	2012-02-06 04:37:27 UTC (rev 43924)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_newcore.c	2012-02-06 05:18:08 UTC (rev 43925)
@@ -386,7 +386,7 @@
 		l2 = l;
 		i = 0;
 		do {
-			if (i >= 9999999)
+			if (i >= BM_NGON_MAX)
 				break;
 
 			i++;
@@ -760,7 +760,7 @@
 		
 		i += bmesh_api_getflag(l2->f, flag) ? 1 : 0;
 		l2 = bmesh_radial_nextloop(l2);
-		if (c >= 800000) {
+		if (c >= BM_LOOP_RADIAL_MAX) {
 			bmesh_error();
 			goto error;
 		}

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_structure.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_structure.c	2012-02-06 04:37:27 UTC (rev 43924)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_structure.c	2012-02-06 05:18:08 UTC (rev 43925)
@@ -354,7 +354,7 @@
 		if (l2->v != l->e->v1 && l2->v != l->e->v2)
 			return 0;
 		
-		if (i > 3000000) {
+		if (i > BM_LOOP_RADIAL_MAX) {
 			bmesh_error();
 			return 0;
 		}
@@ -417,7 +417,10 @@
 	BMLoop *curloop;
 	curloop = l;
 	do {
-		if (curloop->v == v) return curloop;
+		if (curloop->v == v) {
+			return curloop;
+		}
+
 		curloop = bmesh_radial_nextloop(curloop);
 	} while (curloop != l);
 	return NULL;
@@ -428,7 +431,10 @@
 	BMLoop *curloop;
 	curloop = bmesh_radial_nextloop(l);
 	do {
-		if (curloop->v == v) return curloop;
+		if (curloop->v == v) {
+			return curloop;
+		}
+
 		curloop = bmesh_radial_nextloop(curloop);
 	} while (curloop != l);
 	return l;
@@ -456,7 +462,7 @@
 		
 		i++;
 		l2 = l2->radial_next;
-		if (i >= 555555) {
+		if (i >= BM_LOOP_RADIAL_MAX) {
 			bmesh_error();
 			return -1;
 		}
@@ -990,7 +996,10 @@
 	BMLoop *curloop;
 	curloop = bmesh_radial_nextloop(l);
 	do {
-		if (curloop->v == v) return curloop;
+		if (curloop->v == v) {
+			return curloop;
+		}
+
 		curloop = bmesh_radial_nextloop(curloop);
 	} while (curloop != l);
 	return l;

Modified: branches/bmesh/blender/source/blender/bmesh/operators/createops.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/createops.c	2012-02-06 04:37:27 UTC (rev 43924)
+++ branches/bmesh/blender/source/blender/bmesh/operators/createops.c	2012-02-06 05:18:08 UTC (rev 43925)
@@ -1351,7 +1351,7 @@
 	if (amount == 2) {
 		/* create edg */
 		e = BM_Make_Edge(bm, verts[0], verts[1], NULL, 1);
-		BMO_SetFlag(bm, e, ELE_OUT);		
+		BMO_SetFlag(bm, e, ELE_OUT);
 	}
 	else if (amount == 3) {
 		/* create triangl */

Modified: branches/bmesh/blender/source/blender/bmesh/operators/dissolveops.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/dissolveops.c	2012-02-06 04:37:27 UTC (rev 43924)
+++ branches/bmesh/blender/source/blender/bmesh/operators/dissolveops.c	2012-02-06 05:18:08 UTC (rev 43925)
@@ -28,7 +28,9 @@
 
 	/* checks if there are any unmarked boundary edges in the face regio */
 
-	BMW_Init(&regwalker, bm, BMW_ISLAND,  0, 0, 0, FACE_MARK,  BMW_NIL_LAY);
+	BMW_Init(&regwalker, bm, BMW_ISLAND,
+	         BMW_MASK_NOP, BMW_MASK_NOP, BMW_MASK_NOP, FACE_MARK,
+	         BMW_NIL_LAY);
 	f2 = BMW_Begin(&regwalker, f);
 	for ( ; f2; f2 = BMW_Step(&regwalker)) {
 		l2 = BMIter_New(&liter2, bm, BM_LOOPS_OF_FACE, f2);
@@ -69,7 +71,10 @@
 		faces = NULL; /* forces different allocatio */
 
 		/* yay, walk */
-		BMW_Init(&regwalker, bm, BMW_ISLAND,  0, 0, 0, FACE_MARK,  BMW_NIL_LAY);
+		BMW_Init(&regwalker, bm, BMW_ISLAND,
+		         BMW_MASK_NOP, BMW_MASK_NOP, BMW_MASK_NOP, FACE_MARK,
+		         BMW_NIL_LAY);
+
 		f2 = BMW_Begin(&regwalker, f);
 		for ( ; f2; f2 = BMW_Step(&regwalker)) {
 			BLI_array_append(faces, f2);

Modified: branches/bmesh/blender/source/blender/bmesh/operators/removedoubles.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/removedoubles.c	2012-02-06 04:37:27 UTC (rev 43924)
+++ branches/bmesh/blender/source/blender/bmesh/operators/removedoubles.c	2012-02-06 05:18:08 UTC (rev 43925)
@@ -344,9 +344,12 @@
 	BMO_CallOpf(bm, "collapse_uvs edges=%s", op, "edges");
 	BMO_Init_Op(bm, &weldop, "weldverts");
 
-	BMO_Flag_Buffer(bm, op, "edges", EDGE_MARK, BM_EDGE);	
-	BMW_Init(&walker, bm, BMW_SHELL,  0, EDGE_MARK, 0, 0,  BMW_NIL_LAY);
+	BMO_Flag_Buffer(bm, op, "edges", EDGE_MARK, BM_EDGE);
 
+	BMW_Init(&walker, bm, BMW_SHELL,
+	         BMW_MASK_NOP, EDGE_MARK, BMW_MASK_NOP, BMW_MASK_NOP,
+	         BMW_NIL_LAY);
+
 	BM_ITER(e, &iter, bm, BM_EDGES_OF_MESH, NULL) {
 		if (!BMO_TestFlag(bm, e, EDGE_MARK))
 			continue;
@@ -400,8 +403,11 @@
 	BMO_Clear_Flag_All(bm, op, BM_ALL, 65535);
 
 	BMO_Flag_Buffer(bm, op, "edges", EDGE_MARK, BM_EDGE);
-	BMW_Init(&walker, bm, BMW_LOOPDATA_ISLAND,  0, EDGE_MARK, 0, 0,  layer);
 
+	BMW_Init(&walker, bm, BMW_LOOPDATA_ISLAND,
+	         BMW_MASK_NOP, EDGE_MARK, BMW_MASK_NOP, BMW_MASK_NOP,
+	         layer);
+
 	BM_ITER(f, &iter, bm, BM_FACES_OF_MESH, NULL) {
 		BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, f) {
 			if (BMO_TestFlag(bm, l->e, EDGE_MARK)) {

Modified: branches/bmesh/blender/source/blender/editors/mesh/bmesh_select.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/mesh/bmesh_select.c	2012-02-06 04:37:27 UTC (rev 43924)
+++ branches/bmesh/blender/source/blender/editors/mesh/bmesh_select.c	2012-02-06 05:18:08 UTC (rev 43925)
@@ -891,11 +891,14 @@
 	BMHeader *h;
 	BMWalker walker;
 
-	BMW_Init(&walker, bm, walkercode, 0,0,0,0, BMW_NIL_LAY);
+	BMW_Init(&walker, bm, walkercode,
+	         BMW_MASK_NOP, BMW_MASK_NOP, BMW_MASK_NOP, BMW_MASK_NOP,
+	         BMW_NIL_LAY);
 	h = BMW_Begin(&walker, start);
-	for (; h; h=BMW_Step(&walker)) {
-		if (!select)
+	for ( ; h; h = BMW_Step(&walker)) {
+		if (!select) {
 			BM_remove_selection(bm, h);
+		}
 		BM_Select(bm, h, select);
 	}
 	BMW_End(&walker);
@@ -1747,7 +1750,10 @@
 		}
 
 		/* walk */
-		BMW_Init(&walker, bm, BMW_ISLAND,  0,BM_SELECT,0,0,  BMW_NIL_LAY);
+		BMW_Init(&walker, bm, BMW_ISLAND,
+		         BMW_MASK_NOP, BM_SELECT, BMW_MASK_NOP, BMW_MASK_NOP,
+		         BMW_NIL_LAY);
+
 		e = BMW_Begin(&walker, efa);
 		for (; efa; efa=BMW_Step(&walker)) {
 			BM_Select(bm, efa, sel);
@@ -1765,7 +1771,10 @@
 			eed = eve->e;
 		}
 
-		BMW_Init(&walker, bm, BMW_SHELL, 0,0,0,0, BMW_NIL_LAY);
+		BMW_Init(&walker, bm, BMW_SHELL,
+		         BMW_MASK_NOP, BMW_MASK_NOP, BMW_MASK_NOP, BMW_MASK_NOP,
+		         BMW_NIL_LAY);
+
 		e = BMW_Begin(&walker, eed->v1);
 		for (; e; e=BMW_Step(&walker)) {
 				BM_Select(bm, e->v1, sel);
@@ -1825,7 +1834,10 @@
 			else                           BMO_ClearFlag(bm, e, BM_SELECT); /* is this needed ? */
 		}
 
-		BMW_Init(&walker, bm, BMW_ISLAND,  0,BM_SELECT,0,0,  BMW_NIL_LAY);
+		BMW_Init(&walker, bm, BMW_ISLAND,
+		         BMW_MASK_NOP, BM_SELECT, BMW_MASK_NOP, BMW_MASK_NOP,
+		         BMW_NIL_LAY);
+
 		BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
 			if (BM_TestHFlag(efa, BM_TMP_TAG)) {
 				e = BMW_Begin(&walker, efa);
@@ -1846,7 +1858,9 @@
 			}
 		}
 
-		BMW_Init(&walker, em->bm, BMW_SHELL, 0,0,0,0, BMW_NIL_LAY);
+		BMW_Init(&walker, em->bm, BMW_SHELL,
+		         BMW_MASK_NOP, BMW_MASK_NOP, BMW_MASK_NOP, BMW_MASK_NOP,
+		         BMW_NIL_LAY);
 		BM_ITER(v, &iter, em->bm, BM_VERTS_OF_MESH, NULL) {
 			if (BM_TestHFlag(v, BM_TMP_TAG)) {
 				e = BMW_Begin(&walker, v);
@@ -2008,7 +2022,10 @@
 	}
 
 	/* Walk over selected elements starting at active */
-	BMW_Init(&walker, bm, walktype,  mask_vert,mask_edge,mask_loop,mask_face,  BMW_NIL_LAY);
+	BMW_Init(&walker, bm, walktype,
+	         mask_vert, mask_edge, mask_loop, mask_face,
+	         BMW_NIL_LAY);
+
 	BLI_assert(walker.order == BMW_BREADTH_FIRST);
 	for (h = BMW_Begin(&walker, h_act); h != NULL; h = BMW_Step(&walker)) {
 		/* Deselect elements that aren't at "nth" depth from active */

Modified: branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c	2012-02-06 04:37:27 UTC (rev 43924)
+++ branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c	2012-02-06 05:18:08 UTC (rev 43925)
@@ -3353,17 +3353,19 @@
 		}
 
 		/* No vertices available, can't do anything */
-		if (v_seed == NULL)
-		{
+		if (v_seed == NULL) {
 			break;
 		}
 
 		/*Select the seed explicitly, in case it has no edges*/
 		BM_Select(bm, v_seed, TRUE);
 
-		/*Walk from the single vertex, selecting everything connected
-		  to it*/
-		BMW_Init(&walker, bm, BMW_SHELL,  0,0,0,0,  BMW_NIL_LAY);
+		/* Walk from the single vertex, selecting everything connected
+		 * to it*/

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list