diff options
author | Campbell Barton <ideasman42@gmail.com> | 2021-11-01 09:02:01 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2021-11-01 09:09:26 +0300 |
commit | 3cd398f16fbe4c5be05561ba47acd06121ee568d (patch) | |
tree | d6b93aea00161be0e9b4e76080174e8e4f67390b /source/blender/editors/space_view3d | |
parent | d052169e7e4b84b5d621fcbf15b187a4951f1f70 (diff) |
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.
Diffstat (limited to 'source/blender/editors/space_view3d')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_edit.c | 7 |
1 files changed, 1 insertions, 6 deletions
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; } |