[Bf-blender-cvs] [e418c858ab8] master: 3D View: use shortest angle between quaternions
Campbell Barton
noreply at git.blender.org
Tue Dec 19 04:05:57 CET 2017
Commit: e418c858ab85a28f312ffc8a3b2f625438558472
Author: Campbell Barton
Date: Tue Dec 19 14:05:54 2017 +1100
Branches: master
https://developer.blender.org/rBe418c858ab85a28f312ffc8a3b2f625438558472
3D View: use shortest angle between quaternions
Gave incorrect smoothview speed changing between some axis and
axis locking.
===================================================================
M source/blender/editors/space_view3d/view3d_view.c
===================================================================
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c
index 0bccab626e6..85d21a13add 100644
--- a/source/blender/editors/space_view3d/view3d_view.c
+++ b/source/blender/editors/space_view3d/view3d_view.c
@@ -271,7 +271,7 @@ void ED_view3d_smooth_view_ex(
* this means small rotations wont lag */
if (sview->quat && !sview->ofs && !sview->dist) {
/* scale the time allowed by the rotation */
- sms.time_allowed *= (double)angle_normalized_qtqt(sms.dst.quat, sms.src.quat) / M_PI; /* 180deg == 1.0 */
+ sms.time_allowed *= (double)fabsf(angle_signed_normalized_qtqt(sms.dst.quat, sms.src.quat)) / M_PI; /* 180deg == 1.0 */
}
/* ensure it shows correct */
@@ -1076,7 +1076,7 @@ char ED_view3d_quat_to_axis_view(const float quat[4], const float epsilon)
char view;
for (view = RV3D_VIEW_FRONT; view <= RV3D_VIEW_BOTTOM; view++) {
- if (angle_qtqt(quat, view3d_quat_axis[view - RV3D_VIEW_FRONT]) < epsilon) {
+ if (fabsf(angle_signed_qtqt(quat, view3d_quat_axis[view - RV3D_VIEW_FRONT])) < epsilon) {
return view;
}
}
More information about the Bf-blender-cvs
mailing list