[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36700] trunk/blender/source/blender/ editors/space_view3d/view3d_edit.c: homekey in camera view now fits the view scale as well as centering the camera .

Campbell Barton ideasman42 at gmail.com
Sun May 15 16:07:24 CEST 2011


Revision: 36700
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36700
Author:   campbellbarton
Date:     2011-05-15 14:07:24 +0000 (Sun, 15 May 2011)
Log Message:
-----------
homekey in camera view now fits the view scale as well as centering the camera.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_edit.c

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2011-05-15 13:13:51 UTC (rev 36699)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2011-05-15 14:07:24 UTC (rev 36700)
@@ -1886,10 +1886,23 @@
 
 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;




More information about the Bf-blender-cvs mailing list