[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44105] branches/bmesh/blender/source/ blender/bmesh/intern/bmesh_mods.c: Fix 30169: rotate edge needs more checking for bad cases
Howard Trickey
howard.trickey at gmail.com
Tue Feb 14 12:40:31 CET 2012
Revision: 44105
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44105
Author: howardt
Date: 2012-02-14 11:40:25 +0000 (Tue, 14 Feb 2012)
Log Message:
-----------
Fix 30169: rotate edge needs more checking for bad cases
If you tried to rotate an edge that was part of a chain
between two faces, the join faces function would remove
the whole chain (else it would leave a 'spur') and then
rotate edge would crash looking for a vertex that is no
longer there.
Check for this case and disallow rotate if so.
Modified Paths:
--------------
branches/bmesh/blender/source/blender/bmesh/intern/bmesh_mods.c
Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_mods.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_mods.c 2012-02-14 09:43:35 UTC (rev 44104)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_mods.c 2012-02-14 11:40:25 UTC (rev 44105)
@@ -728,6 +728,11 @@
if (BM_edge_face_count(e) != 2)
return NULL;
+ /* If either of e's vertices has valence 2, then
+ * dissolving the edge would leave a spur, so not allowed */
+ if (BM_vert_edge_count(e->v1) == 2 || BM_vert_edge_count(e->v2) == 2)
+ return NULL;
+
f = BM_faces_join_pair(bm, e->l->f, e->l->radial_next->f, e);
if (f == NULL)
More information about the Bf-blender-cvs
mailing list