[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