[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60237] trunk/blender/source/blender/ editors/mesh/editmesh_knife.c: Prevent assert failure in knife.

Howard Trickey howard.trickey at gmail.com
Thu Sep 19 15:35:43 CEST 2013


Revision: 60237
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60237
Author:   howardt
Date:     2013-09-19 13:35:43 +0000 (Thu, 19 Sep 2013)
Log Message:
-----------
Prevent assert failure in knife.
It seems sometimes a knife edge with the same
vertex on both ends was created sometimes.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/mesh/editmesh_knife.c

Modified: trunk/blender/source/blender/editors/mesh/editmesh_knife.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_knife.c	2013-09-19 12:47:35 UTC (rev 60236)
+++ trunk/blender/source/blender/editors/mesh/editmesh_knife.c	2013-09-19 13:35:43 UTC (rev 60237)
@@ -497,7 +497,7 @@
  * and move cur data to prev. */
 static void knife_add_single_cut(KnifeTool_OpData *kcd)
 {
-	KnifeEdge *kfe = new_knife_edge(kcd), *kfe2 = NULL, *kfe3 = NULL;
+	KnifeEdge *kfe, *kfe2 = NULL, *kfe3 = NULL;
 
 	if ((kcd->prev.vert && kcd->prev.vert == kcd->curr.vert) ||
 	    (kcd->prev.edge && kcd->prev.edge == kcd->curr.edge))
@@ -506,6 +506,7 @@
 		return;
 	}
 
+	kfe = new_knife_edge(kcd);
 	kfe->draw = true;
 
 	if (kcd->prev.vert) {
@@ -2738,7 +2739,7 @@
 	l_new = NULL;
 	if (nco == 0) {
 		/* Want to prevent creating two-sided polygons */
-		if (BM_edge_exists(v1, v2)) {
+		if (v1 == v2 || BM_edge_exists(v1, v2)) {
 			f_new = NULL;
 		}
 		else {




More information about the Bf-blender-cvs mailing list