[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23514] trunk/blender/source/blender/ editors: added missing notifyer/depsgraph call to loopcut, fixed tweaking the edge slide operator in the last operator panel, and uncommented a line in the remove doubles op that was making it not work (and tweaked the rna limits a bit there, too).

Joseph Eagar joeedh at gmail.com
Mon Sep 28 05:28:28 CEST 2009


Revision: 23514
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23514
Author:   joeedh
Date:     2009-09-28 05:28:28 +0200 (Mon, 28 Sep 2009)

Log Message:
-----------
added missing notifyer/depsgraph call to loopcut, fixed tweaking the edge slide operator in the last operator panel, and uncommented a line in the remove doubles op that was making it not work (and tweaked the rna limits a bit there, too).

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

Modified: trunk/blender/source/blender/editors/mesh/editmesh_tools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2009-09-28 03:19:52 UTC (rev 23513)
+++ trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2009-09-28 03:28:28 UTC (rev 23514)
@@ -483,10 +483,9 @@
 {
 	Object *obedit= CTX_data_edit_object(C);
 	EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data));
-	/*char msg[100];
+	/*char msg[100];*/
+	int cnt = removedoublesflag(em,1,0,RNA_float_get(op->ptr, "limit"));
 
-	int cnt = removedoublesflag(em,1,0,RNA_float_get(op->ptr, "limit"));*/
-
 	/*XXX this messes up last operator panel
 	if(cnt)
 	{
@@ -515,7 +514,7 @@
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 
-	RNA_def_float(ot->srna, "limit", 0.00001f, 0.000001f, 50.0f, "Merge Threshold", "Minimum distance between merged verts", 0.00001f, 10.0f);
+	RNA_def_float(ot->srna, "limit", 0.0001f, 0.000001f, 50.0f, "Merge Threshold", "Minimum distance between merged verts", 0.00001f, 2.0f);
 }
 
 // XXX is this needed?

Modified: trunk/blender/source/blender/editors/mesh/loopcut.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/loopcut.c	2009-09-28 03:19:52 UTC (rev 23513)
+++ trunk/blender/source/blender/editors/mesh/loopcut.c	2009-09-28 03:28:28 UTC (rev 23514)
@@ -265,7 +265,10 @@
 			EditMesh *em = BKE_mesh_get_editmesh(lcd->ob->data);
 			esubdivideflag(lcd->ob, em, SELECT, 0.0f, 
 			               0.0f, 0, 1, SUBDIV_SELECT_LOOPCUT);
+			
+			DAG_id_flush_update(lcd->ob->data, OB_RECALC_DATA);
 		}
+		WM_event_add_notifier(C, NC_GEOM|ND_DATA, lcd->ob->data);
 	}
 }
 

Modified: trunk/blender/source/blender/editors/transform/transform.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.c	2009-09-28 03:19:52 UTC (rev 23513)
+++ trunk/blender/source/blender/editors/transform/transform.c	2009-09-28 03:28:28 UTC (rev 23514)
@@ -4069,7 +4069,12 @@
 	//short mval[2], mvalo[2];
 	float labda = 0.0f, totvec=0.0;
 
-	view3d_get_object_project_mat(v3d, t->obedit, projectMat);
+	if (!v3d) {
+		/*ok, let's try to survive this*/
+		Mat4One(projectMat);
+	} else {
+		view3d_get_object_project_mat(v3d, t->obedit, projectMat);
+	}
 
 	//mvalo[0] = -1; mvalo[1] = -1;
 	numsel =0;
@@ -4354,9 +4359,11 @@
 					sv->down = swap;
 				}
 				
-				view3d_project_float(t->ar, tempsv->up->v1->co, co, projectMat);
-				view3d_project_float(t->ar, tempsv->up->v2->co, co2, projectMat);
-				
+				if (v3d) {
+					view3d_project_float(t->ar, tempsv->up->v1->co, co, projectMat);
+					view3d_project_float(t->ar, tempsv->up->v2->co, co2, projectMat);
+				}
+
 				if (ev == tempsv->up->v1) {
 					VecSubf(vec, co, co2);
 				} else {
@@ -4365,9 +4372,11 @@
 
 				VecAddf(start, start, vec);
 
-				view3d_project_float(t->ar, tempsv->down->v1->co, co, projectMat);
-				view3d_project_float(t->ar, tempsv->down->v2->co, co2, projectMat);
-				
+				if (v3d) {
+					view3d_project_float(t->ar, tempsv->down->v1->co, co, projectMat);
+					view3d_project_float(t->ar, tempsv->down->v2->co, co2, projectMat);
+				}
+
 				if (ev == tempsv->down->v1) {
 					VecSubf(vec, co2, co);
 				} else {
@@ -4520,8 +4529,6 @@
 		for (uvlay_idx=0; uvlay_idx<sld->uvlay_tot; uvlay_idx++) {
 			BLI_ghash_free(sld->uvhash[uvlay_idx], NULL, NULL);
 		}
-		MEM_freeN(sld->slideuv);
-		MEM_freeN(sld->uvhash);
 
 		suv = sld->suv_last-1;
 		while (suv >= sld->slideuv) {
@@ -4530,6 +4537,9 @@
 			}
 			suv--;
 		}
+
+		MEM_freeN(sld->slideuv);
+		MEM_freeN(sld->uvhash);
 	}
 
 	MEM_freeN(sld);
@@ -4703,7 +4713,12 @@
 	CLAMP(final, -1.0f, 1.0f);
 
 	/*do stuff here*/
-	doEdgeSlide(t, final);
+	if (t->customData)
+		doEdgeSlide(t, final);
+	else {
+		strcpy(str, "Invalid Edge Selection");
+		t->state = TRANS_CANCEL;
+	}
 
 	recalcData(t);
 

Modified: trunk/blender/source/blender/editors/transform/transform_ops.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_ops.c	2009-09-28 03:19:52 UTC (rev 23513)
+++ trunk/blender/source/blender/editors/transform/transform_ops.c	2009-09-28 03:28:28 UTC (rev 23514)
@@ -554,8 +554,8 @@
 void TFM_OT_edge_slide(struct wmOperatorType *ot)
 {
 	/* identifiers */
-	ot->name   = "Tilt";
-	ot->description= "Tilt selected control vertices of 3d curve."; 
+	ot->name   = "Edge Slide";
+	ot->description= "Slide an edge loop along a mesh."; 
 	ot->idname = OP_EDGE_SLIDE;
 	ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING;
 
@@ -566,7 +566,7 @@
 	ot->cancel  = transform_cancel;
 	ot->poll   = ED_operator_editmesh;
 
-	RNA_def_float_factor(ot->srna, "value", 0, 0, 1, "Factor", "", 0, 1);
+	RNA_def_float_factor(ot->srna, "value", 0, -1.0f, 1.0f, "Factor", "", -1.0f, 1.0f);
 
 	RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
 }





More information about the Bf-blender-cvs mailing list