diff options
author | reduz <reduzio@gmail.com> | 2021-10-20 20:42:22 -0300 |
---|---|---|
committer | reduz <reduzio@gmail.com> | 2021-10-21 18:27:34 -0300 |
commit | a69541da4cf156ed00de7ed10887a1fc57dcbd14 (patch) | |
tree | f1345855da165570bd81c4aa2c3a71ab63a4ada2 /core/math/quaternion.h | |
parent | 9c9ec63e1dbd33cace4a988783f1130b4c3f06ad (diff) | |
download | redot-engine-a69541da4cf156ed00de7ed10887a1fc57dcbd14.tar.gz |
Implement Animation Compression
Roughly based on https://github.com/godotengine/godot-proposals/issues/3375 (used format is slightly different).
* Implement bitwidth based animation compression (see animation.h for format).
* Can compress imported animations up to 10 times.
* Compression format opens the door to streaming.
* Works transparently (happens all inside animation.h)
Diffstat (limited to 'core/math/quaternion.h')
-rw-r--r-- | core/math/quaternion.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/core/math/quaternion.h b/core/math/quaternion.h index 35324323b3..e20ea74eb4 100644 --- a/core/math/quaternion.h +++ b/core/math/quaternion.h @@ -72,6 +72,9 @@ public: Quaternion slerpni(const Quaternion &p_to, const real_t &p_weight) const; Quaternion cubic_slerp(const Quaternion &p_b, const Quaternion &p_pre_a, const Quaternion &p_post_b, const real_t &p_weight) const; + Vector3 get_axis() const; + float get_angle() const; + _FORCE_INLINE_ void get_axis_angle(Vector3 &r_axis, real_t &r_angle) const { r_angle = 2 * Math::acos(w); real_t r = ((real_t)1) / Math::sqrt(1 - w * w); |