[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46606] trunk/blender/source/blender: code cleanup:
Campbell Barton
ideasman42 at gmail.com
Sun May 13 16:47:53 CEST 2012
Revision: 46606
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46606
Author: campbellbarton
Date: 2012-05-13 14:47:53 +0000 (Sun, 13 May 2012)
Log Message:
-----------
code cleanup:
- use bmesh iterator macros in more places
- rename scanfill variables (were using same names as mesh faces/verts which was confusing)
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/displist.c
trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c
trunk/blender/source/blender/blenkernel/intern/key.c
trunk/blender/source/blender/blenkernel/intern/mesh.c
trunk/blender/source/blender/blenlib/intern/scanfill.c
trunk/blender/source/blender/bmesh/operators/bmo_triangulate.c
trunk/blender/source/blender/editors/mesh/editmesh_knife.c
trunk/blender/source/blender/editors/uvedit/uvedit_unwrap_ops.c
trunk/blender/source/blender/windowmanager/intern/wm_gesture.c
Modified: trunk/blender/source/blender/blenkernel/intern/displist.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/displist.c 2012-05-13 13:32:48 UTC (rev 46605)
+++ trunk/blender/source/blender/blenkernel/intern/displist.c 2012-05-13 14:47:53 UTC (rev 46606)
@@ -425,8 +425,8 @@
void BKE_displist_fill(ListBase *dispbase, ListBase *to, int flipnormal)
{
ScanFillContext sf_ctx;
- ScanFillVert *eve, *v1, *vlast;
- ScanFillFace *efa;
+ ScanFillVert *sf_vert, *sf_vert_new, *sf_vert_last;
+ ScanFillFace *sf_tri;
DispList *dlnew = NULL, *dl;
float *f1;
int colnr = 0, charidx = 0, cont = 1, tot, a, *index, nextcol = 0;
@@ -454,24 +454,24 @@
/* make editverts and edges */
f1 = dl->verts;
a = dl->nr;
- eve = v1 = NULL;
+ sf_vert = sf_vert_new = NULL;
while (a--) {
- vlast = eve;
+ sf_vert_last = sf_vert;
- eve = BLI_scanfill_vert_add(&sf_ctx, f1);
+ sf_vert = BLI_scanfill_vert_add(&sf_ctx, f1);
totvert++;
- if (vlast == NULL)
- v1 = eve;
+ if (sf_vert_last == NULL)
+ sf_vert_new = sf_vert;
else {
- BLI_scanfill_edge_add(&sf_ctx, vlast, eve);
+ BLI_scanfill_edge_add(&sf_ctx, sf_vert_last, sf_vert);
}
f1 += 3;
}
- if (eve != NULL && v1 != NULL) {
- BLI_scanfill_edge_add(&sf_ctx, eve, v1);
+ if (sf_vert != NULL && sf_vert_new != NULL) {
+ BLI_scanfill_edge_add(&sf_ctx, sf_vert, sf_vert_new);
}
}
else if (colnr < dl->col) {
@@ -499,31 +499,31 @@
/* vert data */
f1 = dlnew->verts;
totvert = 0;
- eve = sf_ctx.fillvertbase.first;
- while (eve) {
- copy_v3_v3(f1, eve->co);
+ sf_vert = sf_ctx.fillvertbase.first;
+ while (sf_vert) {
+ copy_v3_v3(f1, sf_vert->co);
f1 += 3;
/* index number */
- eve->tmp.l = totvert;
+ sf_vert->tmp.l = totvert;
totvert++;
- eve = eve->next;
+ sf_vert = sf_vert->next;
}
/* index data */
- efa = sf_ctx.fillfacebase.first;
+ sf_tri = sf_ctx.fillfacebase.first;
index = dlnew->index;
- while (efa) {
- index[0] = (intptr_t)efa->v1->tmp.l;
- index[1] = (intptr_t)efa->v2->tmp.l;
- index[2] = (intptr_t)efa->v3->tmp.l;
+ while (sf_tri) {
+ index[0] = (intptr_t)sf_tri->v1->tmp.l;
+ index[1] = (intptr_t)sf_tri->v2->tmp.l;
+ index[2] = (intptr_t)sf_tri->v3->tmp.l;
if (flipnormal)
SWAP(int, index[0], index[2]);
index += 3;
- efa = efa->next;
+ sf_tri = sf_tri->next;
}
}
Modified: trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c 2012-05-13 13:32:48 UTC (rev 46605)
+++ trunk/blender/source/blender/blenkernel/intern/editderivedmesh.c 2012-05-13 14:47:53 UTC (rev 46606)
@@ -116,7 +116,7 @@
BMLoop *(*looptris)[3] = NULL;
BLI_array_declare(looptris);
BMIter iter, liter;
- BMFace *f;
+ BMFace *efa;
BMLoop *l;
int i = 0, j;
@@ -150,9 +150,9 @@
#endif
- BM_ITER_MESH (f, &iter, bm, BM_FACES_OF_MESH) {
+ BM_ITER_MESH (efa, &iter, bm, BM_FACES_OF_MESH) {
/*don't consider two-edged faces*/
- if (f->len < 3) {
+ if (efa->len < 3) {
/* do nothing */
}
@@ -160,20 +160,18 @@
/* no need to ensure the loop order, we know its ok */
- else if (f->len == 3) {
+ else if (efa->len == 3) {
BLI_array_grow_one(looptris);
- l = BM_iter_new(&liter, bm, BM_LOOPS_OF_FACE, f);
- for (j = 0; l; l = BM_iter_step(&liter), j++) {
+ BM_ITER_ELEM_INDEX (l, &liter, efa, BM_LOOPS_OF_FACE, j) {
looptris[i][j] = l;
}
i += 1;
}
- else if (f->len == 4) {
+ else if (efa->len == 4) {
BMLoop *ltmp[4];
BLI_array_grow_items(looptris, 2);
- l = BM_iter_new(&liter, bm, BM_LOOPS_OF_FACE, f);
- for (j = 0; l; l = BM_iter_step(&liter), j++) {
+ BM_ITER_ELEM_INDEX (l, &liter, efa, BM_LOOPS_OF_FACE, j) {
ltmp[j] = l;
}
@@ -191,39 +189,39 @@
#endif /* USE_TESSFACE_SPEEDUP */
else {
- ScanFillVert *v, *lastv = NULL, *firstv = NULL;
+ ScanFillVert *sf_vert, *sf_vert_last = NULL, *sf_vert_first = NULL;
/* ScanFillEdge *e; */ /* UNUSED */
- ScanFillFace *efa;
+ ScanFillFace *sf_tri;
int totfilltri;
BLI_scanfill_begin(&sf_ctx);
- /*scanfill time*/
- l = BM_iter_new(&liter, bm, BM_LOOPS_OF_FACE, f);
- for (j = 0; l; l = BM_iter_step(&liter), j++) {
+
+ /* scanfill time */
+ BM_ITER_ELEM_INDEX (l, &liter, efa, BM_LOOPS_OF_FACE, j) {
/*mark order*/
BM_elem_index_set(l, j); /* set_loop */
- v = BLI_scanfill_vert_add(&sf_ctx, l->v->co);
- v->tmp.p = l;
+ sf_vert = BLI_scanfill_vert_add(&sf_ctx, l->v->co);
+ sf_vert->tmp.p = l;
- if (lastv) {
- /* e = */ BLI_scanfill_edge_add(&sf_ctx, lastv, v);
+ if (sf_vert_last) {
+ /* e = */ BLI_scanfill_edge_add(&sf_ctx, sf_vert_last, sf_vert);
}
- lastv = v;
- if (firstv == NULL) firstv = v;
+ sf_vert_last = sf_vert;
+ if (sf_vert_first == NULL) sf_vert_first = sf_vert;
}
- /*complete the loop*/
- BLI_scanfill_edge_add(&sf_ctx, firstv, v);
+ /* complete the loop */
+ BLI_scanfill_edge_add(&sf_ctx, sf_vert_first, sf_vert);
- totfilltri = BLI_scanfill_calc_ex(&sf_ctx, FALSE, f->no);
+ totfilltri = BLI_scanfill_calc_ex(&sf_ctx, FALSE, efa->no);
BLI_array_grow_items(looptris, totfilltri);
- for (efa = sf_ctx.fillfacebase.first; efa; efa = efa->next) {
- BMLoop *l1 = efa->v1->tmp.p;
- BMLoop *l2 = efa->v2->tmp.p;
- BMLoop *l3 = efa->v3->tmp.p;
+ for (sf_tri = sf_ctx.fillfacebase.first; sf_tri; sf_tri = sf_tri->next) {
+ BMLoop *l1 = sf_tri->v1->tmp.p;
+ BMLoop *l2 = sf_tri->v2->tmp.p;
+ BMLoop *l3 = sf_tri->v3->tmp.p;
if (BM_elem_index_get(l1) > BM_elem_index_get(l2)) { SWAP(BMLoop *, l1, l2); }
if (BM_elem_index_get(l2) > BM_elem_index_get(l3)) { SWAP(BMLoop *, l2, l3); }
@@ -384,16 +382,16 @@
BM_mesh_elem_index_ensure(bmdm->tc->bm, BM_VERT);
- eed = BM_iter_new(&iter, bmdm->tc->bm, BM_EDGES_OF_MESH, NULL);
- for (i = 0; eed; i++, eed = BM_iter_step(&iter))
+ BM_ITER_MESH_INDEX (eed, &iter, bmdm->tc->bm, BM_EDGES_OF_MESH, i) {
func(userData, i,
bmdm->vertexCos[BM_elem_index_get(eed->v1)],
bmdm->vertexCos[BM_elem_index_get(eed->v2)]);
+ }
}
else {
- eed = BM_iter_new(&iter, bmdm->tc->bm, BM_EDGES_OF_MESH, NULL);
- for (i = 0; eed; i++, eed = BM_iter_step(&iter))
+ BM_ITER_MESH_INDEX (eed, &iter, bmdm->tc->bm, BM_EDGES_OF_MESH, i) {
func(userData, i, eed->v1->co, eed->v2->co);
+ }
}
}
@@ -411,8 +409,7 @@
BM_mesh_elem_index_ensure(bmdm->tc->bm, BM_VERT);
glBegin(GL_LINES);
- eed = BM_iter_new(&iter, bmdm->tc->bm, BM_EDGES_OF_MESH, NULL);
- for (i = 0; eed; i++, eed = BM_iter_step(&iter)) {
+ BM_ITER_MESH_INDEX (eed, &iter, bmdm->tc->bm, BM_EDGES_OF_MESH, i) {
if (!setDrawOptions || (setDrawOptions(userData, i) != DM_DRAW_OPTION_SKIP)) {
glVertex3fv(bmdm->vertexCos[BM_elem_index_get(eed->v1)]);
glVertex3fv(bmdm->vertexCos[BM_elem_index_get(eed->v2)]);
@@ -422,8 +419,7 @@
}
else {
glBegin(GL_LINES);
- eed = BM_iter_new(&iter, bmdm->tc->bm, BM_EDGES_OF_MESH, NULL);
- for (i = 0; eed; i++, eed = BM_iter_step(&iter)) {
+ BM_ITER_MESH_INDEX (eed, &iter, bmdm->tc->bm, BM_EDGES_OF_MESH, i) {
if (!setDrawOptions || (setDrawOptions(userData, i) != DM_DRAW_OPTION_SKIP)) {
glVertex3fv(eed->v1->co);
glVertex3fv(eed->v2->co);
@@ -454,8 +450,7 @@
BM_mesh_elem_index_ensure(bmdm->tc->bm, BM_VERT);
glBegin(GL_LINES);
- eed = BM_iter_new(&iter, bmdm->tc->bm, BM_EDGES_OF_MESH, NULL);
- for (i = 0; eed; i++, eed = BM_iter_step(&iter)) {
+ BM_ITER_MESH_INDEX (eed, &iter, bmdm->tc->bm, BM_EDGES_OF_MESH, i) {
if (!setDrawOptions || (setDrawOptions(userData, i) != DM_DRAW_OPTION_SKIP)) {
setDrawInterpOptions(userData, i, 0.0);
glVertex3fv(bmdm->vertexCos[BM_elem_index_get(eed->v1)]);
@@ -467,8 +462,7 @@
}
else {
glBegin(GL_LINES);
- eed = BM_iter_new(&iter, bmdm->tc->bm, BM_EDGES_OF_MESH, NULL);
- for (i = 0; eed; i++, eed = BM_iter_step(&iter)) {
+ BM_ITER_MESH_INDEX (eed, &iter, bmdm->tc->bm, BM_EDGES_OF_MESH, i) {
if (!setDrawOptions || (setDrawOptions(userData, i) != DM_DRAW_OPTION_SKIP)) {
setDrawInterpOptions(userData, i, 0.0);
glVertex3fv(eed->v1->co);
@@ -518,9 +512,9 @@
glEnd();
}
-static void emDM__calcFaceCent(BMesh *bm, BMFace *efa, float cent[3], float (*vertexCos)[3])
+static void emDM__calcFaceCent(BMFace *efa, float cent[3], float (*vertexCos)[3])
{
- BMIter iter;
+ BMIter liter;
BMLoop *l;
int tot = 0;
@@ -529,15 +523,13 @@
/*simple (and stupid) median (average) based method :/ */
if (vertexCos) {
- l = BM_iter_new(&iter, bm, BM_LOOPS_OF_FACE, efa);
- for (; l; l = BM_iter_step(&iter)) {
+ BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) {
add_v3_v3(cent, vertexCos[BM_elem_index_get(l->v)]);
tot++;
}
}
else {
- l = BM_iter_new(&iter, bm, BM_LOOPS_OF_FACE, efa);
- for (; l; l = BM_iter_step(&iter)) {
+ BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) {
add_v3_v3(cent, l->v->co);
tot++;
}
@@ -567,7 +559,7 @@
}
BM_ITER_MESH_INDEX (efa, &iter, bmdm->tc->bm, BM_FACES_OF_MESH, i) {
- emDM__calcFaceCent(bmdm->tc->bm, efa, cent, bmdm->vertexCos);
+ emDM__calcFaceCent(efa, cent, bmdm->vertexCos);
func(userData, i, cent, polyNos ? polyNos[i] : efa->no);
}
}
@@ -1369,23 +1361,34 @@
{
EditDerivedBMesh *bmdm = (EditDerivedBMesh *)dm;
BMesh *bm = bmdm->tc->bm;
- BMVert *ev;
+ BMVert *eve;
BMIter iter;
- int i;
+ const int has_bweight = CustomData_has_layer(&bm->vdata, CD_BWEIGHT);
- ev = BM_iter_new(&iter, bm, BM_VERTS_OF_MESH, NULL);
- for (i = 0; ev; ev = BM_iter_step(&iter), ++vert_r, ++i) {
- if (bmdm->vertexCos)
+ if (bmdm->vertexCos) {
+ int i;
+
+ BM_ITER_MESH_INDEX (eve, &iter, bm, BM_VERTS_OF_MESH, i) {
copy_v3_v3(vert_r->co, bmdm->vertexCos[i]);
- else
- copy_v3_v3(vert_r->co, ev->co);
+ normal_float_to_short_v3(vert_r->no, eve->no);
+ vert_r->flag = BM_vert_flag_to_mflag(eve);
- normal_float_to_short_v3(vert_r->no, ev->no);
+ if (has_bweight) {
+ vert_r->bweight = (unsigned char) (BM_elem_float_data_get(&bm->vdata, eve, CD_BWEIGHT) * 255.0f);
+ }
+ vert_r++;
+ }
+ }
+ else {
+ BM_ITER_MESH (eve, &iter, bm, BM_VERTS_OF_MESH) {
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list