summaryrefslogtreecommitdiffstats
path: root/scene/animation/animation_player.cpp
diff options
context:
space:
mode:
authortagcup <tagcup@yahoo.com>2018-04-14 15:53:25 -0400
committertagcup <tagcup@yahoo.com>2018-04-14 15:53:25 -0400
commita5e0bb447c339365d99dba772ea733c997c21200 (patch)
tree5b8642f6207485bc8dff4796489bef6fe05cdc7a /scene/animation/animation_player.cpp
parente7445c3d82b60eae2d02e201d21990f0aac096ae (diff)
downloadredot-engine-a5e0bb447c339365d99dba772ea733c997c21200.tar.gz
Avoid converting Quat to Euler angles when not necessary.
Also ensure that get_scale doesn't arbitrarlity change the signs of scales, ensuring that the combination of get_rotation and get_scale gives the correct basis. Added various missing functions and constructors. Should close #17968.
Diffstat (limited to 'scene/animation/animation_player.cpp')
-rw-r--r--scene/animation/animation_player.cpp4
1 files changed, 1 insertions, 3 deletions
diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp
index 63580bcae6..eca7caeaf0 100644
--- a/scene/animation/animation_player.cpp
+++ b/scene/animation/animation_player.cpp
@@ -590,9 +590,7 @@ void AnimationPlayer::_animation_update_transforms() {
Transform t;
t.origin = nc->loc_accum;
- t.basis.scale(nc->scale_accum);
- t.basis.rotate(nc->rot_accum.get_euler());
-
+ t.basis.set_quat_scale(nc->rot_accum, nc->scale_accum);
if (nc->skeleton && nc->bone_idx >= 0) {
nc->skeleton->set_bone_pose(nc->bone_idx, t);