Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2012-04-19 13:38:07 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-04-19 13:38:07 +0400
commit2251e05c30131cff3d46f5b3f685b5579881db49 (patch)
tree40dd1ef7b7db7f9950180c2acce8b32d7f5768ee /source/blender/bmesh
parent2e734e47356e52b5df9d03b221a6e1ed4b6e3605 (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')
-rw-r--r--source/blender/bmesh/operators/bmo_edgesplit.c6
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);
}