diff options
| author | tagcup <tagcup@yahoo.com> | 2018-04-14 15:53:25 -0400 |
|---|---|---|
| committer | tagcup <tagcup@yahoo.com> | 2018-04-14 15:53:25 -0400 |
| commit | a5e0bb447c339365d99dba772ea733c997c21200 (patch) | |
| tree | 5b8642f6207485bc8dff4796489bef6fe05cdc7a /scene/animation/animation_player.cpp | |
| parent | e7445c3d82b60eae2d02e201d21990f0aac096ae (diff) | |
| download | redot-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.cpp | 4 |
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); |
