[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(®walker, bm, BMW_ISLAND, 0, 0, 0, FACE_MARK, BMW_NIL_LAY);
+ BMW_Init(®walker, bm, BMW_ISLAND,
+ BMW_MASK_NOP, BMW_MASK_NOP, BMW_MASK_NOP, FACE_MARK,
+ BMW_NIL_LAY);
f2 = BMW_Begin(®walker, f);
for ( ; f2; f2 = BMW_Step(®walker)) {
l2 = BMIter_New(&liter2, bm, BM_LOOPS_OF_FACE, f2);
@@ -69,7 +71,10 @@
faces = NULL; /* forces different allocatio */
/* yay, walk */
- BMW_Init(®walker, bm, BMW_ISLAND, 0, 0, 0, FACE_MARK, BMW_NIL_LAY);
+ BMW_Init(®walker, bm, BMW_ISLAND,
+ BMW_MASK_NOP, BMW_MASK_NOP, BMW_MASK_NOP, FACE_MARK,
+ BMW_NIL_LAY);
+
f2 = BMW_Begin(®walker, f);
for ( ; f2; f2 = BMW_Step(®walker)) {
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