summaryrefslogtreecommitdiffstats
path: root/core/math/quaternion.h
diff options
context:
space:
mode:
authorreduz <reduzio@gmail.com>2021-10-20 20:42:22 -0300
committerreduz <reduzio@gmail.com>2021-10-21 18:27:34 -0300
commita69541da4cf156ed00de7ed10887a1fc57dcbd14 (patch)
treef1345855da165570bd81c4aa2c3a71ab63a4ada2 /core/math/quaternion.h
parent9c9ec63e1dbd33cace4a988783f1130b4c3f06ad (diff)
downloadredot-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.h3
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);