Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-05-15 18:07:24 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-05-15 18:07:24 +0400
commitca3b61f5786252f9898e389aa330619b1b96a7dd (patch)
treed7c1aefee32203dccd8be334e0570e61028a9f58 /source/blender
parent19eb07c63db33793fdf778d9b0b8a3c0d7f9fc57 (diff)
homekey in camera view now fits the view scale as well as centering the camera.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/editors/space_view3d/view3d_edit.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c
index 0289bcd841b..ee73ed3a0fd 100644
--- a/source/blender/editors/space_view3d/view3d_edit.c
+++ b/source/blender/editors/space_view3d/view3d_edit.c
@@ -1886,10 +1886,23 @@ void VIEW3D_OT_view_center_cursor(wmOperatorType *ot)
static int view3d_center_camera_exec(bContext *C, wmOperator *UNUSED(op)) /* was view3d_home() in 2.4x */
{
+ ARegion *ar= CTX_wm_region(C);
RegionView3D *rv3d= CTX_wm_region_view3d(C);
+ Scene *scene= CTX_data_scene(C);
+ float xfac, yfac;
+ float size[2];
rv3d->camdx= rv3d->camdy= 0.0f;
+ view3d_viewborder_size_get(scene, ar, size);
+
+ /* 4px is just a little room from the edge of the area */
+ xfac= (float)ar->winx / (float)(size[0] + 4);
+ yfac= (float)ar->winy / (float)(size[1] + 4);
+
+ rv3d->camzoom= (sqrtf(4.0f * MIN2(xfac, yfac)) - (float)M_SQRT2) * 50.0f;
+ rv3d->camzoom= CLAMPIS(rv3d->camzoom, RV3D_CAMZOOM_MIN, RV3D_CAMZOOM_MAX);
+
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, CTX_wm_view3d(C));
return OPERATOR_FINISHED;