From 3cd398f16fbe4c5be05561ba47acd06121ee568d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 1 Nov 2021 17:02:01 +1100 Subject: Fix T92694: Auto Perspective is inconsistent with axis aligned views Snapping to an axis aligned view with a 45 degree rotation would set the view orthographic without setting it back to perspective when orbiting the view as you would expect with auto-perspective. Now orthographic is only set for views with rotation of 0, 90, 180, -90. Notes: - Partially reverts logic from cebd025e02f1147c48cd658816ad835f94128a4a at the time RegionView3D.view_axis_roll had not been added, so only setting the orthographic with one particular rotation was a bigger limitation than it is now. - Auto-perspective could be supported when snapping the viewport to diagonal angles, however that's a larger project. --- source/blender/editors/space_view3d/view3d_edit.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'source/blender/editors/space_view3d/view3d_edit.c') diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 44652fdaf5a..b85b424405e 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -673,7 +673,6 @@ static void viewrotate_apply_snap(ViewOpsData *vod) float zaxis_best[3]; int x, y, z; bool found = false; - bool is_axis_aligned = false; invert_qt_qt_normalized(viewquat_inv, vod->curr.viewquat); @@ -691,10 +690,6 @@ static void viewrotate_apply_snap(ViewOpsData *vod) if (angle_normalized_v3v3(zaxis_test, zaxis) < axis_limit) { copy_v3_v3(zaxis_best, zaxis_test); found = true; - - if (abs(x) + abs(y) + abs(z) == 1) { - is_axis_aligned = true; - } } } } @@ -767,7 +762,7 @@ static void viewrotate_apply_snap(ViewOpsData *vod) viewrotate_apply_dyn_ofs(vod, rv3d->viewquat); if (U.uiflag & USER_AUTOPERSP) { - if (is_axis_aligned) { + if (RV3D_VIEW_IS_AXIS(rv3d->view)) { if (rv3d->persp == RV3D_PERSP) { rv3d->persp = RV3D_ORTHO; } -- cgit v1.2.3