[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45236] trunk/blender/source/blender: print error if rip does nothing ( rather then grabbing the unripped verts as it did before)

Campbell Barton ideasman42 at gmail.com
Wed Mar 28 10:01:08 CEST 2012


Revision: 45236
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45236
Author:   campbellbarton
Date:     2012-03-28 08:00:58 +0000 (Wed, 28 Mar 2012)
Log Message:
-----------
print error if rip does nothing (rather then grabbing the unripped verts as it did before)

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

Modified: trunk/blender/source/blender/bmesh/operators/bmo_dissolve.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_dissolve.c	2012-03-28 07:48:08 UTC (rev 45235)
+++ trunk/blender/source/blender/bmesh/operators/bmo_dissolve.c	2012-03-28 08:00:58 UTC (rev 45236)
@@ -512,7 +512,7 @@
 
 		for (i = 0; i < tot_found; i++) {
 			BMEdge *e = (BMEdge *)weight_elems[i].ele;
-			/* check twice because cumulative effect could disolve over angle limit */
+			/* check twice because cumulative effect could dissolve over angle limit */
 			if (BM_edge_face_angle(e) < angle_limit) {
 				BMFace *nf = BM_faces_join_pair(bm, e->l->f,
 				                                e->l->radial_next->f,
@@ -547,7 +547,7 @@
 
 		for (i = 0; i < tot_found; i++) {
 			BMVert *v = (BMVert *)weight_elems[i].ele;
-			/* check twice because cumulative effect could disolve over angle limit */
+			/* check twice because cumulative effect could dissolve over angle limit */
 			if (BM_vert_edge_angle(v) < angle_limit) {
 				BM_vert_collapse_edge(bm, v->e, v, TRUE); /* join edges */
 			}

Modified: trunk/blender/source/blender/editors/mesh/editmesh_tools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2012-03-28 07:48:08 UTC (rev 45235)
+++ trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2012-03-28 08:00:58 UTC (rev 45236)
@@ -2150,6 +2150,7 @@
 	float projectMat[4][4], fmval[3] = {event->mval[0], event->mval[1]};
 	float dist = FLT_MAX;
 	float d;
+	const int totedge_orig = bm->totedge;
 
 	/* note on selection:
 	 * When calling edge split we operate on tagged edges rather then selected
@@ -2195,7 +2196,7 @@
 		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)) {
+				if (!BM_elem_flag_test(e, BM_ELEM_HIDDEN) && BM_edge_face_count(e) == 2) {
 					d = mesh_rip_edgedist(ar, projectMat, e->v1->co, e->v2->co, fmval);
 					if (d < dist) {
 						dist = d;
@@ -2207,7 +2208,7 @@
 		}
 
 		if (!e2) {
-			BKE_report(op->reports, RPT_ERROR, "Selected vertex has no faces attached");
+			BKE_report(op->reports, RPT_ERROR, "Selected vertex has no edge/face pairs attached");
 			return OPERATOR_CANCELLED;
 		}
 
@@ -2266,6 +2267,13 @@
 	
 	BMO_op_exec(bm, &bmop);
 
+	if (totedge_orig == bm->totedge) {
+		EDBM_op_finish(em, &bmop, op, TRUE);
+
+		BKE_report(op->reports, RPT_ERROR, "No edges could be ripped");
+		return OPERATOR_CANCELLED;
+	}
+
 	BMO_ITER(e, &siter, bm, &bmop, "edgeout", BM_EDGE) {
 		float cent[3] = {0, 0, 0}, mid[3];
 




More information about the Bf-blender-cvs mailing list