[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24792] trunk/blender: Bugfixes:

Joshua Leung aligorith at gmail.com
Mon Nov 23 00:11:33 CET 2009


Revision: 24792
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24792
Author:   aligorith
Date:     2009-11-23 00:11:32 +0100 (Mon, 23 Nov 2009)

Log Message:
-----------
Bugfixes:

* Restored Center View to 3D Cursor. For now, I've mapped this to QKEY since all other nice combinations of CKEY have been taken now.

* Fixed bug introduced in commit last night where parenting lattice to armatures with deforms would no longer work.

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/space_view3d.py
    trunk/blender/source/blender/editors/object/object_relations.c
    trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
    trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
    trunk/blender/source/blender/editors/space_view3d/view3d_ops.c
    trunk/blender/source/blender/editors/space_view3d/view3d_view.c

Modified: trunk/blender/release/scripts/ui/space_view3d.py
===================================================================
--- trunk/blender/release/scripts/ui/space_view3d.py	2009-11-22 22:42:57 UTC (rev 24791)
+++ trunk/blender/release/scripts/ui/space_view3d.py	2009-11-22 23:11:32 UTC (rev 24792)
@@ -266,6 +266,7 @@
         layout.item_booleanO("view3d.view_all", "center", True, text="Center Cursor and View All")
         layout.itemO("view3d.camera_to_view", text="Align Active Camera to View")
         layout.itemO("view3d.view_center")
+        layout.itemO("view3d.view_center_cursor")
 
 
 class VIEW3D_MT_view_align_selected(bpy.types.Menu):

Modified: trunk/blender/source/blender/editors/object/object_relations.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_relations.c	2009-11-22 22:42:57 UTC (rev 24791)
+++ trunk/blender/source/blender/editors/object/object_relations.c	2009-11-22 23:11:32 UTC (rev 24792)
@@ -653,8 +653,8 @@
 					//ob->partype= PARSKEL; /* note, dna define, not operator property */
 					
 					/* BUT, to keep the deforms, we need a modifier, and then we need to set the object that it uses */
-					// XXX currently this should only happen for meshes, curves and surfaces - this stuff isn't available for metas yet
-					if (ELEM4(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT)) 
+					// XXX currently this should only happen for meshes, curves, surfaces, and lattices - this stuff isn't available for metas yet
+					if (ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_LATTICE)) 
 					{
 						switch (partype) 
 						{

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2009-11-22 22:42:57 UTC (rev 24791)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2009-11-22 23:11:32 UTC (rev 24792)
@@ -1232,6 +1232,52 @@
 	ot->flag= 0;
 }
 
+static int viewcenter_cursor_exec(bContext *C, wmOperator *op)
+{
+	View3D *v3d = CTX_wm_view3d(C);
+	ARegion *ar= CTX_wm_region(C);
+	RegionView3D *rv3d= CTX_wm_region_view3d(C);
+	Scene *scene= CTX_data_scene(C);
+	
+	if (rv3d) {
+		if (rv3d->persp==RV3D_CAMOB) {
+			/* center the camera offset */
+			rv3d->camdx= rv3d->camdy= 0.0;
+		}
+		else {
+			/* non camera center */
+			float *curs= give_cursor(scene, v3d);
+			float new_ofs[3];
+			
+			new_ofs[0]= -curs[0];
+			new_ofs[1]= -curs[1];
+			new_ofs[2]= -curs[2];
+			
+			smooth_view(C, NULL, NULL, new_ofs, NULL, NULL, NULL);
+		}
+		
+		if (rv3d->viewlock & RV3D_BOXVIEW)
+			view3d_boxview_copy(CTX_wm_area(C), ar);
+	}
+	
+	return OPERATOR_FINISHED;
+}
+
+void VIEW3D_OT_view_center_cursor(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Center View to Cursor";
+	ot->description= "Centers the view so that the cursor is in the middle of the view.";
+	ot->idname= "VIEW3D_OT_view_center_cursor";
+	
+	/* api callbacks */
+	ot->exec= viewcenter_cursor_exec;
+	ot->poll= ED_operator_view3d_active;
+	
+	/* flags */
+	ot->flag= OPTYPE_REGISTER/*|OPTYPE_UNDO*/;
+}
+
 /* ********************* Set render border operator ****************** */
 
 static int render_border_exec(bContext *C, wmOperator *op)

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_intern.h	2009-11-22 22:42:57 UTC (rev 24791)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_intern.h	2009-11-22 23:11:32 UTC (rev 24792)
@@ -71,6 +71,7 @@
 void VIEW3D_OT_view_all(struct wmOperatorType *ot);
 void VIEW3D_OT_viewnumpad(struct wmOperatorType *ot);
 void VIEW3D_OT_view_center(struct wmOperatorType *ot);
+void VIEW3D_OT_view_center_cursor(struct wmOperatorType *ot);
 void VIEW3D_OT_view_pan(struct wmOperatorType *ot);
 void VIEW3D_OT_view_persportho(struct wmOperatorType *ot);
 void VIEW3D_OT_view_orbit(struct wmOperatorType *ot);

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_ops.c	2009-11-22 22:42:57 UTC (rev 24791)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_ops.c	2009-11-22 23:11:32 UTC (rev 24792)
@@ -71,6 +71,7 @@
 	WM_operatortype_append(VIEW3D_OT_view_pan);
 	WM_operatortype_append(VIEW3D_OT_view_persportho);
 	WM_operatortype_append(VIEW3D_OT_view_center);
+	WM_operatortype_append(VIEW3D_OT_view_center_cursor);
 	WM_operatortype_append(VIEW3D_OT_select);
 	WM_operatortype_append(VIEW3D_OT_select_border);
 	WM_operatortype_append(VIEW3D_OT_clip_border);
@@ -127,6 +128,7 @@
 	WM_keymap_verify_item(keymap, "VIEW3D_OT_move", MIDDLEMOUSE, KM_PRESS, KM_SHIFT, 0);
 	WM_keymap_verify_item(keymap, "VIEW3D_OT_zoom", MIDDLEMOUSE, KM_PRESS, KM_CTRL, 0);
 	WM_keymap_verify_item(keymap, "VIEW3D_OT_view_center", PADPERIOD, KM_PRESS, 0, 0);
+	WM_keymap_verify_item(keymap, "VIEW3D_OT_view_center_cursor", QKEY, KM_PRESS, 0, 0);
 	
 	WM_keymap_verify_item(keymap, "VIEW3D_OT_fly", FKEY, KM_PRESS, KM_SHIFT, 0);
 

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_view.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_view.c	2009-11-22 22:42:57 UTC (rev 24791)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_view.c	2009-11-22 23:11:32 UTC (rev 24792)
@@ -190,6 +190,7 @@
 
 
 /* ****************** smooth view operator ****************** */
+/* This operator is one of the 'timer refresh' ones like animation playback */
 
 struct SmoothViewStore {
 	float orig_dist, new_dist;
@@ -386,6 +387,8 @@
 	ot->poll= ED_operator_view3d_active;
 }
 
+/* ****************** change view operators ****************** */
+
 static void setcameratoview3d(View3D *v3d, RegionView3D *rv3d, Object *ob)
 {
 	float dvec[3];
@@ -445,6 +448,7 @@
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 }
 
+
 static int view3d_setobjectascamera_exec(bContext *C, wmOperator *op)
 {
 	View3D *v3d = CTX_wm_view3d(C);
@@ -479,6 +483,7 @@
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 }
+
 /* ********************************** */
 
 /* create intersection coordinates in view Z direction at mouse coordinates */





More information about the Bf-blender-cvs mailing list