[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55559] trunk/blender/source/blender/ editors/space_view3d: patch [#34763] Center the View to the ZDepth Position under the Mouse Cursor

Campbell Barton ideasman42 at gmail.com
Mon Mar 25 02:11:17 CET 2013


Revision: 55559
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55559
Author:   campbellbarton
Date:     2013-03-25 01:11:16 +0000 (Mon, 25 Mar 2013)
Log Message:
-----------
patch [#34763] Center the View to the ZDepth Position under the Mouse Cursor
from Ralf Holzemer (cheleb)

use Fkey in object mode (since its a mode-less fly).

Modified Paths:
--------------
    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

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2013-03-25 01:00:16 UTC (rev 55558)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2013-03-25 01:11:16 UTC (rev 55559)
@@ -2665,6 +2665,42 @@
 	ot->flag = 0;
 }
 
+static int viewcenter_pick_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *event)
+{
+	View3D *v3d = CTX_wm_view3d(C);
+	RegionView3D *rv3d = CTX_wm_region_view3d(C);
+	Scene *scene = CTX_data_scene(C);
+	ARegion *ar = CTX_wm_region(C);
+
+	if (rv3d) {
+		float new_ofs[3];
+
+		view3d_operator_needs_opengl(C);
+
+		if (ED_view3d_autodist(scene, ar, v3d, event->mval, new_ofs, false)) {
+			negate_v3(new_ofs);
+			view3d_smooth_view(C, v3d, ar, NULL, NULL, new_ofs, NULL, NULL, NULL);
+		}
+	}
+
+	return OPERATOR_FINISHED;
+}
+
+void VIEW3D_OT_view_center_pick(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name = "Center View to Mouse";
+	ot->description = "Center the view to the ZDepth Position under the Mouse Cursor";
+	ot->idname = "VIEW3D_OT_view_center_pick";
+
+	/* api callbacks */
+	ot->invoke = viewcenter_pick_invoke;
+	ot->poll = ED_operator_view3d_active;
+
+	/* flags */
+	ot->flag = 0;
+}
+
 static int view3d_center_camera_exec(bContext *C, wmOperator *UNUSED(op)) /* was view3d_home() in 2.4x */
 {
 	Scene *scene = CTX_data_scene(C);

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_intern.h	2013-03-25 01:00:16 UTC (rev 55558)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_intern.h	2013-03-25 01:11:16 UTC (rev 55559)
@@ -86,6 +86,7 @@
 void VIEW3D_OT_view_lock_clear(struct wmOperatorType *ot);
 void VIEW3D_OT_view_lock_to_active(struct wmOperatorType *ot);
 void VIEW3D_OT_view_center_cursor(struct wmOperatorType *ot);
+void VIEW3D_OT_view_center_pick(struct wmOperatorType *ot);
 void VIEW3D_OT_view_center_camera(struct wmOperatorType *ot);
 void VIEW3D_OT_view_pan(struct wmOperatorType *ot);
 void VIEW3D_OT_view_persportho(struct wmOperatorType *ot);

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_ops.c	2013-03-25 01:00:16 UTC (rev 55558)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_ops.c	2013-03-25 01:11:16 UTC (rev 55559)
@@ -146,6 +146,7 @@
 	WM_operatortype_append(VIEW3D_OT_view_lock_clear);
 	WM_operatortype_append(VIEW3D_OT_view_lock_to_active);
 	WM_operatortype_append(VIEW3D_OT_view_center_cursor);
+	WM_operatortype_append(VIEW3D_OT_view_center_pick);
 	WM_operatortype_append(VIEW3D_OT_view_center_camera);
 	WM_operatortype_append(VIEW3D_OT_select);
 	WM_operatortype_append(VIEW3D_OT_select_border);
@@ -245,6 +246,7 @@
 	WM_keymap_add_item(keymap, "VIEW3D_OT_view_center_camera", HOMEKEY, KM_PRESS, 0, 0); /* only with camera view */
 
 	WM_keymap_add_item(keymap, "VIEW3D_OT_view_center_cursor", HOMEKEY, KM_PRESS, KM_ALT, 0);
+	WM_keymap_add_item(keymap, "VIEW3D_OT_view_center_pick", FKEY, KM_PRESS, 0, 0);
 
 	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
 	RNA_boolean_set(kmi->ptr, "center", FALSE); /* only without camera view */




More information about the Bf-blender-cvs mailing list