From e20d09f079f9ed9a68075927519d5104f331df69 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 25 Feb 2012 23:29:12 +0000 Subject: fix [#30352] Dissolving a vert in an edgeloop (no faces) just deletes the verts killing connections collapse the vertex into an edge when it has 2 edges connected to it. --- source/blender/bmesh/intern/bmesh_mods.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'source') diff --git a/source/blender/bmesh/intern/bmesh_mods.c b/source/blender/bmesh/intern/bmesh_mods.c index 19aa37ca22b..dff05df5e66 100644 --- a/source/blender/bmesh/intern/bmesh_mods.c +++ b/source/blender/bmesh/intern/bmesh_mods.c @@ -82,8 +82,15 @@ int BM_vert_dissolve(BMesh *bm, BMVert *v) if (!BM_vert_is_manifold(bm, v)) { if (!v->e) BM_vert_kill(bm, v); else if (!v->e->l) { - BM_edge_kill(bm, v->e); - BM_vert_kill(bm, v); + if (len == 2) { + BM_vert_collapse_edge(bm, v->e, v); + } + else { + /* this may be too harsh, we could do nothing here instead. + * To test, connect 3 edges to a vert and dissolve the vert. It will be removed */ + BM_edge_kill(bm, v->e); + BM_vert_kill(bm, v); + } } else { return FALSE; -- cgit v1.2.3