[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47828] trunk/blender: apply offset to the camera view - this works exactly like camera shift ( transforms X/Y in the same space).

Campbell Barton ideasman42 at gmail.com
Wed Jun 13 15:23:56 CEST 2012


Revision: 47828
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47828
Author:   campbellbarton
Date:     2012-06-13 13:23:48 +0000 (Wed, 13 Jun 2012)
Log Message:
-----------
apply offset to the camera view - this works exactly like camera shift (transforms X/Y in the same space).

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_ui/space_view3d.py
    trunk/blender/source/blender/editors/space_view3d/view3d_draw.c

Modified: trunk/blender/release/scripts/startup/bl_ui/space_view3d.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_view3d.py	2012-06-13 12:58:01 UTC (rev 47827)
+++ trunk/blender/release/scripts/startup/bl_ui/space_view3d.py	2012-06-13 13:23:48 UTC (rev 47828)
@@ -2586,11 +2586,12 @@
 
                     if bg.view_axis != 'CAMERA':
                         col.prop(bg, "size")
-                        row = col.row(align=True)
-                        row.prop(bg, "offset_x", text="X")
-                        row.prop(bg, "offset_y", text="Y")
 
+                    row = col.row(align=True)
+                    row.prop(bg, "offset_x", text="X")
+                    row.prop(bg, "offset_y", text="Y")
 
+
 class VIEW3D_PT_transform_orientations(Panel):
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'UI'

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2012-06-13 12:58:01 UTC (rev 47827)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2012-06-13 13:23:48 UTC (rev 47828)
@@ -1618,6 +1618,19 @@
 					y2 = ar->winrct.ymax;
 				}
 
+				/* apply offset last - camera offset is different to offset in blender units */
+				/* so this has some sane way of working - this matches camera's shift _exactly_ */
+				{
+					const float max_dim = maxf(x2 - x1, y2 - y1);
+					const float xof_scale = bgpic->xof * max_dim;
+					const float yof_scale = bgpic->yof * max_dim;
+
+					x1 += xof_scale;
+					y1 += yof_scale;
+					x2 += xof_scale;
+					y2 += yof_scale;
+				}
+
 				/* aspect correction */
 				if (bgpic->flag & V3D_BGPIC_CAMERA_ASPECT)
 				{




More information about the Bf-blender-cvs mailing list