diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-04-19 13:38:07 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-04-19 13:38:07 +0400 |
commit | 2251e05c30131cff3d46f5b3f685b5579881db49 (patch) | |
tree | 40dd1ef7b7db7f9950180c2acce8b32d7f5768ee /source/blender/bmesh/operators | |
parent | 2e734e47356e52b5df9d03b221a6e1ed4b6e3605 (diff) |
Fix #31009: edge split did not split non-manifold edges correctly, it should
create a separate edge for each face.
Diffstat (limited to 'source/blender/bmesh/operators')
-rw-r--r-- | source/blender/bmesh/operators/bmo_edgesplit.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/bmesh/operators/bmo_edgesplit.c b/source/blender/bmesh/operators/bmo_edgesplit.c index 557860e1056..dd03401ab57 100644 --- a/source/blender/bmesh/operators/bmo_edgesplit.c +++ b/source/blender/bmesh/operators/bmo_edgesplit.c @@ -135,7 +135,11 @@ void bmo_edgesplit_exec(BMesh *bm, BMOperator *op) /* this flag gets copied so we can be sure duplicate edges get it too (important) */ BM_elem_flag_enable(e, BM_ELEM_INTERNAL_TAG); - bmesh_edge_separate(bm, e, e->l); + /* keep splitting until each loop has its own edge */ + do { + bmesh_edge_separate(bm, e, e->l); + } while (!BM_edge_is_boundary(e)); + BM_elem_flag_enable(e->v1, BM_ELEM_TAG); BM_elem_flag_enable(e->v2, BM_ELEM_TAG); } |