[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