[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45231] trunk/blender/source/blender/ editors/mesh/editmesh_tools.c: fix for vertex rip

Campbell Barton ideasman42 at gmail.com
Wed Mar 28 07:44:45 CEST 2012


Revision: 45231
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45231
Author:   campbellbarton
Date:     2012-03-28 05:44:38 +0000 (Wed, 28 Mar 2012)
Log Message:
-----------
fix for vertex rip

wire edges connected to the vertex would confuse vertex rip.

- was only checking verts first edge had a face,  this is incorrect since other vert-edges may have a face.
- wasn't checking of edges connected to the vertex were hidden.

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

Modified: trunk/blender/source/blender/editors/mesh/editmesh_tools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2012-03-28 05:20:48 UTC (rev 45230)
+++ trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2012-03-28 05:44:38 UTC (rev 45231)
@@ -2196,23 +2196,26 @@
 		if (!v)
 			return OPERATOR_CANCELLED;
 
-		if (!v->e || !v->e->l) {
-			BKE_report(op->reports, RPT_ERROR, "Selected vertex has no faces");
-			return OPERATOR_CANCELLED;
-		}
+		e2 = NULL;
 
-		/* find closest edge to mouse cursor */
-		e2 = NULL;
-		BM_ITER(e, &iter, bm, BM_EDGES_OF_VERT, v) {
-			d = mesh_rip_edgedist(ar, projectMat, e->v1->co, e->v2->co, fmval);
-			if (d < dist) {
-				dist = d;
-				e2 = e;
+		if (v->e) {
+			/* find closest edge to mouse cursor */
+			BM_ITER(e, &iter, bm, BM_EDGES_OF_VERT, v) {
+				if (e->l && !BM_elem_flag_test(e, BM_ELEM_HIDDEN)) {
+					d = mesh_rip_edgedist(ar, projectMat, e->v1->co, e->v2->co, fmval);
+					if (d < dist) {
+						dist = d;
+						e2 = e;
+					}
+				}
 			}
+
 		}
 
-		if (!e2)
+		if (!e2) {
+			BKE_report(op->reports, RPT_ERROR, "Selected vertex has no faces attached");
 			return OPERATOR_CANCELLED;
+		}
 
 		/* rip two adjacent edges */
 		if (BM_edge_face_count(e2) == 1 || BM_vert_face_count(v) == 2) {




More information about the Bf-blender-cvs mailing list