diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-08-21 18:38:03 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-08-21 18:38:03 +0400 |
commit | 809fce9d00ecf8eea2c3d2ea52c3de2ec2ede1ee (patch) | |
tree | eb1926ecc661e9cda7acc647f37f465e9d5f0a30 | |
parent | 63e6fbfbd4b598f79522b98b11ee33dbfd8d041d (diff) |
Fix #32341: extrude with a mirror modifier could lead to orphan vertices, it
was already removing unnecessary edges, just not vertices of those edges.
-rw-r--r-- | source/blender/bmesh/operators/bmo_extrude.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/bmesh/operators/bmo_extrude.c b/source/blender/bmesh/operators/bmo_extrude.c index 7b59a4a9101..9ea8e631435 100644 --- a/source/blender/bmesh/operators/bmo_extrude.c +++ b/source/blender/bmesh/operators/bmo_extrude.c @@ -380,10 +380,18 @@ void bmo_extrude_face_region_exec(BMesh *bm, BMOperator *op) /* this should always be wire, so this is mainly a speedup to avoid map lookup */ if (BM_edge_is_wire(e) && BMO_slot_map_contains(bm, op, "exclude", e)) { + BMVert *v1 = e->v1, *v2 = e->v2; + /* The original edge was excluded, * this would result in a standalone wire edge - see [#30399] */ BM_edge_kill(bm, e); + /* kill standalone vertices from this edge - see [#32341] */ + if (!v1->e) + BM_vert_kill(bm, v1); + if (!v2->e) + BM_vert_kill(bm, v1); + continue; } |