From f6c661a38f93500523e617b194ed350346d1830d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 20 Jun 2015 16:48:59 +1000 Subject: BMesh: simplify join-tri's --- .../blender/bmesh/operators/bmo_join_triangles.c | 29 ++++------------------ 1 file changed, 5 insertions(+), 24 deletions(-) (limited to 'source') diff --git a/source/blender/bmesh/operators/bmo_join_triangles.c b/source/blender/bmesh/operators/bmo_join_triangles.c index 841a68fbbe5..b873e6bacb3 100644 --- a/source/blender/bmesh/operators/bmo_join_triangles.c +++ b/source/blender/bmesh/operators/bmo_join_triangles.c @@ -257,10 +257,8 @@ fail: #define EDGE_MARK (1 << 0) -#define EDGE_CHOSEN (1 << 1) #define FACE_OUT (1 << 0) -#define FACE_MARK (1 << 1) #define FACE_INPUT (1 << 2) void bmo_join_triangles_exec(BMesh *bm, BMOperator *op) @@ -270,7 +268,7 @@ void bmo_join_triangles_exec(BMesh *bm, BMOperator *op) BMIter iter; BMOIter siter; BMFace *f; - BMEdge *e, *e_next; + BMEdge *e; /* data: edge-to-join, sort_value: error weight */ struct SortPointerByFloat *jedges; unsigned i, totedge; @@ -370,27 +368,8 @@ void bmo_join_triangles_exec(BMesh *bm, BMOperator *op) f_b = e->l->radial_next->f; /* check if another edge already claimed this face */ - if ((BMO_elem_flag_test(bm, f_a, FACE_MARK) == false) && - (BMO_elem_flag_test(bm, f_b, FACE_MARK) == false)) - { - BMO_elem_flag_enable(bm, f_a, FACE_MARK); - BMO_elem_flag_enable(bm, f_b, FACE_MARK); - BMO_elem_flag_enable(bm, e, EDGE_CHOSEN); - } - } - - MEM_freeN(jedges); - - /* join best weighted */ - BM_ITER_MESH_MUTABLE (e, e_next, &iter, bm, BM_EDGES_OF_MESH) { - BMFace *f_new; - BMFace *f_a, *f_b; - - if (!BMO_elem_flag_test(bm, e, EDGE_CHOSEN)) - continue; - - BM_edge_face_pair(e, &f_a, &f_b); /* checked above */ - if ((f_a->len == 3 && f_b->len == 3)) { + if ((f_a->len == 3) && (f_b->len == 3)) { + BMFace *f_new; f_new = BM_faces_join_pair(bm, f_a, f_b, e, true); if (f_new) { BMO_elem_flag_enable(bm, f_new, FACE_OUT); @@ -398,5 +377,7 @@ void bmo_join_triangles_exec(BMesh *bm, BMOperator *op) } } + MEM_freeN(jedges); + BMO_slot_buffer_from_enabled_flag(bm, op, op->slots_out, "faces.out", BM_FACE, FACE_OUT); } -- cgit v1.2.3