diff options
-rw-r--r-- | source/blender/bmesh/intern/bmesh_delete.c | 45 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_operator_api.h | 1 |
2 files changed, 16 insertions, 30 deletions
diff --git a/source/blender/bmesh/intern/bmesh_delete.c b/source/blender/bmesh/intern/bmesh_delete.c index 45d95fce546..2afcb090bdb 100644 --- a/source/blender/bmesh/intern/bmesh_delete.c +++ b/source/blender/bmesh/intern/bmesh_delete.c @@ -203,21 +203,27 @@ void BMO_remove_tagged_context(BMesh *bm, const short oflag, const int type) /* go through and mark all edges and all verts of all faces for delete */ BM_ITER_MESH (f, &fiter, bm, BM_FACES_OF_MESH) { if (BMO_elem_flag_test(bm, f, oflag)) { - for (e = BM_iter_new(&eiter, bm, BM_EDGES_OF_FACE, f); e; e = BM_iter_step(&eiter)) - BMO_elem_flag_enable(bm, e, oflag); - for (v = BM_iter_new(&viter, bm, BM_VERTS_OF_FACE, f); v; v = BM_iter_step(&viter)) - BMO_elem_flag_enable(bm, v, oflag); + BMLoop *l_first = BM_FACE_FIRST_LOOP(f); + BMLoop *l_iter; + + l_iter = l_first; + do { + BMO_elem_flag_enable(bm, l_iter->v, oflag); + BMO_elem_flag_enable(bm, l_iter->e, oflag); + } while ((l_iter = l_iter->next) != l_first); } } /* now go through and mark all remaining faces all edges for keeping */ BM_ITER_MESH (f, &fiter, bm, BM_FACES_OF_MESH) { if (!BMO_elem_flag_test(bm, f, oflag)) { - for (e = BM_iter_new(&eiter, bm, BM_EDGES_OF_FACE, f); e; e = BM_iter_step(&eiter)) { - BMO_elem_flag_disable(bm, e, oflag); - } - for (v = BM_iter_new(&viter, bm, BM_VERTS_OF_FACE, f); v; v = BM_iter_step(&viter)) { - BMO_elem_flag_disable(bm, v, oflag); - } + BMLoop *l_first = BM_FACE_FIRST_LOOP(f); + BMLoop *l_iter; + + l_iter = l_first; + do { + BMO_elem_flag_disable(bm, l_iter->v, oflag); + BMO_elem_flag_disable(bm, l_iter->e, oflag); + } while ((l_iter = l_iter->next) != l_first); } } /* also mark all the vertices of remaining edges for keeping */ @@ -236,24 +242,5 @@ void BMO_remove_tagged_context(BMesh *bm, const short oflag, const int type) break; } - case DEL_ALL: - { - /* does this option even belong in here? */ - BM_ITER_MESH (f, &fiter, bm, BM_FACES_OF_MESH) { - BMO_elem_flag_enable(bm, f, oflag); - } - BM_ITER_MESH (e, &eiter, bm, BM_EDGES_OF_MESH) { - BMO_elem_flag_enable(bm, e, oflag); - } - BM_ITER_MESH (v, &viter, bm, BM_VERTS_OF_MESH) { - BMO_elem_flag_enable(bm, v, oflag); - } - - BMO_remove_tagged_faces(bm, oflag); - BMO_remove_tagged_edges(bm, oflag); - BMO_remove_tagged_verts(bm, oflag); - - break; - } } } diff --git a/source/blender/bmesh/intern/bmesh_operator_api.h b/source/blender/bmesh/intern/bmesh_operator_api.h index 7de158f3c29..7fad3a8c20e 100644 --- a/source/blender/bmesh/intern/bmesh_operator_api.h +++ b/source/blender/bmesh/intern/bmesh_operator_api.h @@ -283,7 +283,6 @@ enum { DEL_ONLYFACES, DEL_EDGESFACES, DEL_FACES, - DEL_ALL, DEL_ONLYTAGGED }; |