diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-04-23 19:35:07 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-04-23 19:35:07 +0400 |
commit | f7a59fd1cf8cc732ad86ab2502dbe152cde1675d (patch) | |
tree | f077e3f0cef0bfed6333fae54d25c368e891aa49 /source/blender/editors/mesh/editmesh_rip.c | |
parent | cccd4b72e5ca172035a87d24ca6809c828a5e49b (diff) |
rip tool again (this in infact an old bug), when selecting an edge to extend the splitting to, dont step over manifold edges. - would result in duplicate edges.
Diffstat (limited to 'source/blender/editors/mesh/editmesh_rip.c')
-rw-r--r-- | source/blender/editors/mesh/editmesh_rip.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/source/blender/editors/mesh/editmesh_rip.c b/source/blender/editors/mesh/editmesh_rip.c index caf44987f54..15e77458e5e 100644 --- a/source/blender/editors/mesh/editmesh_rip.c +++ b/source/blender/editors/mesh/editmesh_rip.c @@ -652,11 +652,15 @@ static int edbm_rip_invoke__edge(bContext *C, wmOperator *op, wmEvent *event) edbm_rip_edge_side_measure(e2, l_b, ar, projectMat, fmval)) ? l_a : l_b; l = BM_face_other_edge_loop(l->f, e2, v); - l = l->radial_next; - l = BM_face_other_edge_loop(l->f, l->e, v); - - if (l) { - BM_elem_flag_enable(l->e, BM_ELEM_TAG); + /* important edge is manifold else we can be attempting to split off a fan that don't budge, + * not crashing but adds duplicate edge. */ + if (BM_edge_is_manifold(l->e)) { + l = l->radial_next; + l = BM_face_other_edge_loop(l->f, l->e, v); + + if (l) { + BM_elem_flag_enable(l->e, BM_ELEM_TAG); + } } } else { |