diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-08-01 22:33:35 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-08-01 22:33:35 +0400 |
commit | 78820edafcad730493e95d0dfdeccba02445c1f3 (patch) | |
tree | 69c99dc8102f03a90f719fa760e51f149a55b99e | |
parent | e03b1668e0106019eed6097678cdaf7df3885638 (diff) |
use bmesh for loop macros for looping over mesh verts/edges/faces
-rw-r--r-- | source/blender/blenkernel/intern/cdderivedmesh.c | 19 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_marking.c | 6 | ||||
-rw-r--r-- | source/blender/bmesh/operators/bmo_dupe.c | 23 | ||||
-rw-r--r-- | source/blender/bmesh/operators/bmo_edgenet.c | 3 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_select.c | 11 |
5 files changed, 28 insertions, 34 deletions
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 60f6bb0a736..6205c8016b6 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -1969,8 +1969,7 @@ static DerivedMesh *cddm_from_bmesh_ex(struct BMesh *bm, int use_mdisps, index = dm->getVertDataArray(dm, CD_ORIGINDEX); - eve = BM_iter_new(&iter, bm, BM_VERTS_OF_MESH, NULL); - for (i = 0; eve; eve = BM_iter_step(&iter), i++, index++) { + BM_ITER_MESH_INDEX (eve, &iter, bm, BM_VERTS_OF_MESH, i) { MVert *mv = &mvert[i]; copy_v3_v3(mv->co, eve->co); @@ -1983,15 +1982,14 @@ static DerivedMesh *cddm_from_bmesh_ex(struct BMesh *bm, int use_mdisps, if (cd_vert_bweight_offset != -1) mv->bweight = BM_ELEM_CD_GET_FLOAT_AS_UCHAR(eve, cd_vert_bweight_offset); - if (add_orig) *index = i; + if (add_orig) *index++ = i; CustomData_from_bmesh_block(&bm->vdata, &dm->vertData, eve->head.data, i); } bm->elem_index_dirty &= ~BM_VERT; index = dm->getEdgeDataArray(dm, CD_ORIGINDEX); - eed = BM_iter_new(&iter, bm, BM_EDGES_OF_MESH, NULL); - for (i = 0; eed; eed = BM_iter_step(&iter), i++, index++) { + BM_ITER_MESH_INDEX (eed, &iter, bm, BM_EDGES_OF_MESH, i) { MEdge *med = &medge[i]; BM_elem_index_set(eed, i); /* set_inline */ @@ -2013,7 +2011,7 @@ static DerivedMesh *cddm_from_bmesh_ex(struct BMesh *bm, int use_mdisps, if (cd_edge_bweight_offset != -1) med->bweight = BM_ELEM_CD_GET_FLOAT_AS_UCHAR(eed, cd_edge_bweight_offset); CustomData_from_bmesh_block(&bm->edata, &dm->edgeData, eed->head.data, i); - if (add_orig) *index = i; + if (add_orig) *index++ = i; } bm->elem_index_dirty &= ~BM_EDGE; @@ -2023,7 +2021,7 @@ static DerivedMesh *cddm_from_bmesh_ex(struct BMesh *bm, int use_mdisps, BM_mesh_elem_index_ensure(bm, BM_FACE); index = dm->getTessFaceDataArray(dm, CD_ORIGINDEX); - for (i = 0; i < dm->numTessFaceData; i++, index++) { + for (i = 0; i < dm->numTessFaceData; i++) { MFace *mf = &mface[i]; const BMLoop **l = em_looptris[i]; efa = l[0]->f; @@ -2036,7 +2034,7 @@ static DerivedMesh *cddm_from_bmesh_ex(struct BMesh *bm, int use_mdisps, mf->flag = BM_face_flag_to_mflag(efa); /* map mfaces to polygons in the same cddm intentionally */ - *index = BM_elem_index_get(efa); + *index++ = BM_elem_index_get(efa); loops_to_customdata_corners(bm, &dm->faceData, i, l, numCol, numTex); test_index_face(mf, &dm->faceData, i, 3); @@ -2045,8 +2043,7 @@ static DerivedMesh *cddm_from_bmesh_ex(struct BMesh *bm, int use_mdisps, index = CustomData_get_layer(&dm->polyData, CD_ORIGINDEX); j = 0; - efa = BM_iter_new(&iter, bm, BM_FACES_OF_MESH, NULL); - for (i = 0; efa; i++, efa = BM_iter_step(&iter), index++) { + BM_ITER_MESH_INDEX (efa, &iter, bm, BM_FACES_OF_MESH, i) { BMLoop *l_iter; BMLoop *l_first; MPoly *mp = &mpoly[i]; @@ -2070,7 +2067,7 @@ static DerivedMesh *cddm_from_bmesh_ex(struct BMesh *bm, int use_mdisps, CustomData_from_bmesh_block(&bm->pdata, &dm->polyData, efa->head.data, i); - if (add_orig) *index = i; + if (add_orig) *index++ = i; } bm->elem_index_dirty &= ~BM_FACE; diff --git a/source/blender/bmesh/intern/bmesh_marking.c b/source/blender/bmesh/intern/bmesh_marking.c index 61a326bbf97..d66e478cf22 100644 --- a/source/blender/bmesh/intern/bmesh_marking.c +++ b/source/blender/bmesh/intern/bmesh_marking.c @@ -501,19 +501,19 @@ static int bm_mesh_flag_count(BMesh *bm, const char htype, const char hflag, BLI_assert((htype & ~BM_ALL_NOLOOP) == 0); if (htype & BM_VERT) { - for (ele = BM_iter_new(&iter, bm, BM_VERTS_OF_MESH, NULL); ele; ele = BM_iter_step(&iter)) { + BM_ITER_MESH (ele, &iter, bm, BM_VERTS_OF_MESH) { if (respecthide && BM_elem_flag_test(ele, BM_ELEM_HIDDEN)) continue; if (BM_elem_flag_test_bool(ele, hflag) == test_for_enabled) tot++; } } if (htype & BM_EDGE) { - for (ele = BM_iter_new(&iter, bm, BM_EDGES_OF_MESH, NULL); ele; ele = BM_iter_step(&iter)) { + BM_ITER_MESH (ele, &iter, bm, BM_EDGES_OF_MESH) { if (respecthide && BM_elem_flag_test(ele, BM_ELEM_HIDDEN)) continue; if (BM_elem_flag_test_bool(ele, hflag) == test_for_enabled) tot++; } } if (htype & BM_FACE) { - for (ele = BM_iter_new(&iter, bm, BM_FACES_OF_MESH, NULL); ele; ele = BM_iter_step(&iter)) { + BM_ITER_MESH (ele, &iter, bm, BM_FACES_OF_MESH) { if (respecthide && BM_elem_flag_test(ele, BM_ELEM_HIDDEN)) continue; if (BM_elem_flag_test_bool(ele, hflag) == test_for_enabled) tot++; } diff --git a/source/blender/bmesh/operators/bmo_dupe.c b/source/blender/bmesh/operators/bmo_dupe.c index f9ff308b706..1dc7b0a414d 100644 --- a/source/blender/bmesh/operators/bmo_dupe.c +++ b/source/blender/bmesh/operators/bmo_dupe.c @@ -385,33 +385,30 @@ void bmo_split_exec(BMesh *bm, BMOperator *op) BMEdge *e; BMFace *f; BMIter iter, iter2; - int found; /* make sure to remove edges and verts we don't need */ - for (e = BM_iter_new(&iter, bm, BM_EDGES_OF_MESH, NULL); e; e = BM_iter_step(&iter)) { - found = 0; - f = BM_iter_new(&iter2, bm, BM_FACES_OF_EDGE, e); - for ( ; f; f = BM_iter_step(&iter2)) { + BM_ITER_MESH (e, &iter, bm, BM_EDGES_OF_MESH) { + bool found = false; + BM_ITER_ELEM (f, &iter2, e, BM_FACES_OF_EDGE) { if (!BMO_elem_flag_test(bm, f, SPLIT_INPUT)) { - found = 1; + found = true; break; } } - if (!found) { + if (found == false) { BMO_elem_flag_enable(bm, e, SPLIT_INPUT); } } - for (v = BM_iter_new(&iter, bm, BM_VERTS_OF_MESH, NULL); v; v = BM_iter_step(&iter)) { - found = 0; - e = BM_iter_new(&iter2, bm, BM_EDGES_OF_VERT, v); - for ( ; e; e = BM_iter_step(&iter2)) { + BM_ITER_MESH (v, &iter, bm, BM_VERTS_OF_MESH) { + bool found = false; + BM_ITER_ELEM (e, &iter2, v, BM_EDGES_OF_VERT) { if (!BMO_elem_flag_test(bm, e, SPLIT_INPUT)) { - found = 1; + found = true; break; } } - if (!found) { + if (found == false) { BMO_elem_flag_enable(bm, v, SPLIT_INPUT); } } diff --git a/source/blender/bmesh/operators/bmo_edgenet.c b/source/blender/bmesh/operators/bmo_edgenet.c index 903cef05604..325b40cb935 100644 --- a/source/blender/bmesh/operators/bmo_edgenet.c +++ b/source/blender/bmesh/operators/bmo_edgenet.c @@ -302,8 +302,7 @@ static void rotsys_make_consistent(BMesh *bm, EdgeData *edata, VertData *vdata) BMVert *startv = NULL; float dis; - v = BM_iter_new(&iter, bm, BM_VERTS_OF_MESH, NULL); - for (i = 0; i < bm->totvert; i++, BM_iter_step(&iter)) { + BM_ITER_MESH (v, &iter, bm, BM_VERTS_OF_MESH) { vd = vdata + BM_elem_index_get(v); if (vd->tag) diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index 16282b0d49c..4724d061909 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -146,12 +146,13 @@ static void edbm_backbuf_check_and_select_verts(BMEditMesh *em, const bool selec BMIter iter; unsigned int index = bm_wireoffs; - for (eve = BM_iter_new(&iter, em->bm, BM_VERTS_OF_MESH, NULL); eve; eve = BM_iter_step(&iter), index++) { + BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) { if (!BM_elem_flag_test(eve, BM_ELEM_HIDDEN)) { if (EDBM_backbuf_check(index)) { BM_vert_select_set(em->bm, eve, select); } } + index++; } } @@ -161,13 +162,13 @@ static void edbm_backbuf_check_and_select_edges(BMEditMesh *em, const bool selec BMIter iter; int index = bm_solidoffs; - eed = BM_iter_new(&iter, em->bm, BM_EDGES_OF_MESH, NULL); - for (; eed; eed = BM_iter_step(&iter), index++) { + BM_ITER_MESH (eed, &iter, em->bm, BM_EDGES_OF_MESH) { if (!BM_elem_flag_test(eed, BM_ELEM_HIDDEN)) { if (EDBM_backbuf_check(index)) { BM_edge_select_set(em->bm, eed, select); } } + index++; } } @@ -177,13 +178,13 @@ static void edbm_backbuf_check_and_select_faces(BMEditMesh *em, const bool selec BMIter iter; unsigned int index = 1; - efa = BM_iter_new(&iter, em->bm, BM_FACES_OF_MESH, NULL); - for (; efa; efa = BM_iter_step(&iter), index++) { + BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { if (!BM_elem_flag_test(efa, BM_ELEM_HIDDEN)) { if (EDBM_backbuf_check(index)) { BM_face_select_set(em->bm, efa, select); } } + index++; } } |