Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2021-11-01 09:02:01 +0300
committerCampbell Barton <ideasman42@gmail.com>2021-11-01 09:09:26 +0300
commit3cd398f16fbe4c5be05561ba47acd06121ee568d (patch)
treed6b93aea00161be0e9b4e76080174e8e4f67390b /source/blender/editors/space_view3d/view3d_edit.c
parentd052169e7e4b84b5d621fcbf15b187a4951f1f70 (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/view3d_edit.c')
-rw-r--r--source/blender/editors/space_view3d/view3d_edit.c7
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;
}