[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44442] trunk/blender/source/blender/bmesh /intern/bmesh_mods.c: fix [#30352] Dissolving a vert in an edgeloop ( no faces) just deletes the verts killing connections

Campbell Barton ideasman42 at gmail.com
Sun Feb 26 00:29:16 CET 2012


Revision: 44442
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44442
Author:   campbellbarton
Date:     2012-02-25 23:29:12 +0000 (Sat, 25 Feb 2012)
Log Message:
-----------
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.

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/intern/bmesh_mods.c

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_mods.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_mods.c	2012-02-25 22:23:40 UTC (rev 44441)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_mods.c	2012-02-25 23:29:12 UTC (rev 44442)
@@ -82,8 +82,15 @@
 	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;




More information about the Bf-blender-cvs mailing list