diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-10-03 14:29:53 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-10-03 14:29:53 +0400 |
commit | 6d1dba7c371551c83db1112fa2ecd049ff8dce95 (patch) | |
tree | e62d0985e874e703590cdb8ba9f56a234a771fa3 /source/blender/bmesh | |
parent | 253e9fb04188765e4471b64795dd5da4613260e0 (diff) |
overlapping faces made join-triangles fail, check for this case and silently ignore them.
Diffstat (limited to 'source/blender/bmesh')
-rw-r--r-- | source/blender/bmesh/operators/bmo_join_triangles.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/bmesh/operators/bmo_join_triangles.c b/source/blender/bmesh/operators/bmo_join_triangles.c index b77e99b4a13..6562f26062f 100644 --- a/source/blender/bmesh/operators/bmo_join_triangles.c +++ b/source/blender/bmesh/operators/bmo_join_triangles.c @@ -326,7 +326,11 @@ void bmo_join_triangles_exec(BMesh *bm, BMOperator *op) (BMO_elem_flag_test(bm, l_a->next->e, EDGE_MARK) == false) && (BMO_elem_flag_test(bm, l_a->prev->e, EDGE_MARK) == false) && (BMO_elem_flag_test(bm, l_b->next->e, EDGE_MARK) == false) && - (BMO_elem_flag_test(bm, l_b->prev->e, EDGE_MARK) == false)) + (BMO_elem_flag_test(bm, l_b->prev->e, EDGE_MARK) == false) && + /* check for faces that use same verts, this is supported but raises an error + * and cancels the operation when performed from editmode, since this is only + * two triangles we only need to compare a single vertex */ + (LIKELY(l_a->prev->v != l_b->prev->v))) { BMFace *f_new; f_new = BM_faces_join_pair(bm, f_a, f_b, e, true); |