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
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/blender/bmesh/intern/bmesh_mods.c11
1 files changed, 9 insertions, 2 deletions
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;