[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25165] trunk/blender/source/blender/ editors/space_view3d/view3d_edit.c: Fix for [#20159] Orthographic camera + viewport

Matt Ebb matt at mke3.net
Mon Dec 7 11:40:55 CET 2009


Revision: 25165
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25165
Author:   broken
Date:     2009-12-07 11:40:55 +0100 (Mon, 07 Dec 2009)

Log Message:
-----------
Fix for [#20159] Orthographic camera + viewport

Patch provided by Aurel W. Thanks!

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	2009-12-07 10:28:36 UTC (rev 25164)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2009-12-07 10:40:55 UTC (rev 25165)
@@ -1628,36 +1628,43 @@
 	RegionView3D *rv3d= CTX_wm_region_view3d(C);
 	Scene *scene= CTX_data_scene(C);
 	static int perspo=RV3D_PERSP;
-	int viewnum, align_active;
+	int viewnum, align_active, nextperspo;
 
 	viewnum = RNA_enum_get(op->ptr, "type");
 	align_active = RNA_boolean_get(op->ptr, "align_active");
 
+
 	/* Use this to test if we started out with a camera */
 
+	if (rv3d->persp == RV3D_CAMOB) {
+		nextperspo= rv3d->lpersp;
+	} else {
+		nextperspo= perspo;
+	}
+
 	switch (viewnum) {
 		case RV3D_VIEW_BOTTOM :
-			axis_set_view(C, 0.0, -1.0, 0.0, 0.0, viewnum, perspo, align_active);
+			axis_set_view(C, 0.0, -1.0, 0.0, 0.0, viewnum, nextperspo, align_active);
 			break;
 
 		case RV3D_VIEW_BACK:
-			axis_set_view(C, 0.0, 0.0, (float)-cos(M_PI/4.0), (float)-cos(M_PI/4.0), viewnum, perspo, align_active);
+			axis_set_view(C, 0.0, 0.0, (float)-cos(M_PI/4.0), (float)-cos(M_PI/4.0), viewnum, nextperspo, align_active);
 			break;
 
 		case RV3D_VIEW_LEFT:
-			axis_set_view(C, 0.5, -0.5, 0.5, 0.5, viewnum, perspo, align_active);
+			axis_set_view(C, 0.5, -0.5, 0.5, 0.5, viewnum, nextperspo, align_active);
 			break;
 
 		case RV3D_VIEW_TOP:
-			axis_set_view(C, 1.0, 0.0, 0.0, 0.0, viewnum, perspo, align_active);
+			axis_set_view(C, 1.0, 0.0, 0.0, 0.0, viewnum, nextperspo, align_active);
 			break;
 
 		case RV3D_VIEW_FRONT:
-			axis_set_view(C, (float)cos(M_PI/4.0), (float)-sin(M_PI/4.0), 0.0, 0.0, viewnum, perspo, align_active);
+			axis_set_view(C, (float)cos(M_PI/4.0), (float)-sin(M_PI/4.0), 0.0, 0.0, viewnum, nextperspo, align_active);
 			break;
 
 		case RV3D_VIEW_RIGHT:
-			axis_set_view(C, 0.5, -0.5, -0.5, -0.5, viewnum, perspo, align_active);
+			axis_set_view(C, 0.5, -0.5, -0.5, -0.5, viewnum, nextperspo, align_active);
 			break;
 
 		case RV3D_VIEW_CAMERA:





More information about the Bf-blender-cvs mailing list