Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/bmesh/intern/bmesh_delete.c45
-rw-r--r--source/blender/bmesh/intern/bmesh_operator_api.h1
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
};