diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-11-19 07:28:18 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-11-19 14:52:17 +0300 |
commit | 93fb07fbd55afcaac15e96b93892e65341bb92c4 (patch) | |
tree | de7928f6805dc3d116aeea5c3a2e7e78e14748bb /source/blender/bmesh/intern/bmesh_mods.c | |
parent | ae8e4d37180b0fd24a6565551a8d63101555cad9 (diff) |
BMesh: bmesh_jekv check for degenerate faces
Move check for degenerate faces from BM_vert_collapse_faces into bmesh_jekv.
Diffstat (limited to 'source/blender/bmesh/intern/bmesh_mods.c')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_mods.c | 26 |
1 files changed, 1 insertions, 25 deletions
diff --git a/source/blender/bmesh/intern/bmesh_mods.c b/source/blender/bmesh/intern/bmesh_mods.c index 1b693f8e97d..66be8e0e757 100644 --- a/source/blender/bmesh/intern/bmesh_mods.c +++ b/source/blender/bmesh/intern/bmesh_mods.c @@ -1066,32 +1066,8 @@ BMEdge *BM_vert_collapse_faces( /* single face or no faces */ /* same as BM_vert_collapse_edge() however we already * have vars to perform this operation so don't call. */ - e_new = bmesh_jekv(bm, e_kill, v_kill, do_del, true); + e_new = bmesh_jekv(bm, e_kill, v_kill, do_del, true, kill_degenerate_faces); /* e_new = BM_edge_exists(tv, tv2); */ /* same as return above */ - - if (e_new && kill_degenerate_faces) { - BMFace **bad_faces = NULL; - BLI_array_staticdeclare(bad_faces, BM_DEFAULT_ITER_STACK_SIZE); - - BMIter fiter; - BMFace *f; - BMVert *verts[2] = {e_new->v1, e_new->v2}; - int i; - - for (i = 0; i < 2; i++) { - /* cant kill data we loop on, build a list and remove those */ - BLI_array_empty(bad_faces); - BM_ITER_ELEM (f, &fiter, verts[i], BM_FACES_OF_VERT) { - if (UNLIKELY(f->len < 3)) { - BLI_array_append(bad_faces, f); - } - } - while ((f = BLI_array_pop(bad_faces))) { - BM_face_kill(bm, f); - } - } - BLI_array_free(bad_faces); - } } return e_new; |