diff options
Diffstat (limited to 'source/blender/bmesh/operators/bmo_join_triangles.c')
-rw-r--r-- | source/blender/bmesh/operators/bmo_join_triangles.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/source/blender/bmesh/operators/bmo_join_triangles.c b/source/blender/bmesh/operators/bmo_join_triangles.c index 76e64aee821..433b91c198e 100644 --- a/source/blender/bmesh/operators/bmo_join_triangles.c +++ b/source/blender/bmesh/operators/bmo_join_triangles.c @@ -251,14 +251,11 @@ void bmo_join_triangles_exec(BMesh *bm, BMOperator *op) if (!BMO_elem_flag_test(bm, e, EDGE_MARK)) continue; - if (BM_edge_face_count(e) != 2) { + if (!BM_edge_face_pair(e, &f1, &f2)) { BMO_elem_flag_disable(bm, e, EDGE_MARK); continue; } - f1 = e->l->f; - f2 = e->l->radial_next->f; - if (f1->len != 3 || f2->len != 3) { BMO_elem_flag_disable(bm, e, EDGE_MARK); continue; @@ -332,10 +329,9 @@ void bmo_join_triangles_exec(BMesh *bm, BMOperator *op) if (!BMO_elem_flag_test(bm, e, EDGE_CHOSEN)) continue; - f1 = e->l->f; - f2 = e->l->radial_next->f; - BM_faces_join_pair(bm, f1, f2, e); + BM_edge_face_pair(e, &f1, &f2); /* checked above */ + BM_faces_join_pair(bm, f1, f2, e, TRUE); } BM_ITER(e, &iter, bm, BM_EDGES_OF_MESH, NULL) { @@ -367,7 +363,7 @@ void bmo_join_triangles_exec(BMesh *bm, BMOperator *op) continue; } - BM_faces_join_pair(bm, f1, f2, e); + BM_faces_join_pair(bm, f1, f2, e, TRUE); } } |