diff --git a/CHANGELOG.md b/CHANGELOG.md index d6612aa14..1e7e8e015 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ Versioning](https://semver.org/spec/v2.0.0.html) for `libnopegl`. - `ngl-export` tool to export videos for all the scenes from a given script - Path and text rendering can now control the position of the outline (inner, centered, outer, or anything in between) through the `outline_pos` parameter +- `bezier_cubic` easing ### Fixed - Crash when using resizable RTTs with time ranges diff --git a/libnopegl/nodes.specs b/libnopegl/nodes.specs index 07b967e01..0ccc3d55e 100644 --- a/libnopegl/nodes.specs +++ b/libnopegl/nodes.specs @@ -300,6 +300,10 @@ { "name": "back_out_in", "desc": "combination of `back_out` then `back_in`" + }, + { + "name": "bezier_cubic", + "desc": "cubic bezier curve" } ], "memory_layout": [ diff --git a/libnopegl/src/node_animkeyframe.c b/libnopegl/src/node_animkeyframe.c index 9fbd5a34f..42713c0d2 100644 --- a/libnopegl/src/node_animkeyframe.c +++ b/libnopegl/src/node_animkeyframe.c @@ -1,4 +1,6 @@ /* + * Copyright 2024 Matthieu Bouron + * Copyright 2019 The Android Open Source Project * Copyright 2016-2022 GoPro Inc. * * Licensed to the Apache Software Foundation (ASF) under one @@ -24,6 +26,7 @@ #include #include #include +#include #include "internal.h" #include "log.h" @@ -64,6 +67,7 @@ static const struct param_choices easing_choices = { {"back_out", EASING_BACK_OUT, .desc=NGLI_DOCSTRING("overstep target value and smoothly converge back to it")}, {"back_in_out", EASING_BACK_IN_OUT, .desc=NGLI_DOCSTRING("combination of `back_in` then `back_out`")}, {"back_out_in", EASING_BACK_OUT_IN, .desc=NGLI_DOCSTRING("combination of `back_out` then `back_in`")}, + {"bezier_cubic", EASING_BEZIER_CUBIC, .desc=NGLI_DOCSTRING("cubic bezier curve")}, {NULL} } }; @@ -319,6 +323,175 @@ static easing_type back_derivative(easing_type t, easing_type s) DECLARE_EASINGS(back, , back_func(x, PARAM(0, 1.70158)), TRANSFORM) DECLARE_EASINGS(back, _derivative, back_derivative(x, PARAM(0, 1.70158)), DERIVATIVE) +/* Cubic Bezier */ + +static int double_close_to_zero(double value) +{ + return fabs(value) < FLT_EPSILON; +} + +static float clamp_root(float r) +{ + const float s = NGLI_CLAMP(r, 0.f, 1.f); + return fabsf(s - r) > FLT_EPSILON ? NAN : s; +} + +/* + * Fast cbrt adapted from the Android Compose library. + * + * See: https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:compose/ui/ui-util/src/commonMain/kotlin/androidx/compose/ui/util/MathHelpers.kt;l=160 + */ +static float fast_cbrt(float x) +{ + union { float f32; uint32_t u32; } v = { .f32 = x }; + v.u32 = v.u32 & 0x1ffffffffL; + v.u32 = 0x2a510554 + (v.u32 / 3); + + float estimate = v.f32; + estimate -= (estimate - x / (estimate * estimate)) * (1.0f / 3.0f); + estimate -= (estimate - x / (estimate * estimate)) * (1.0f / 3.0f); + return estimate; +} + +/* + * Find the first cubic root using Cardano's algorithm. + * + * See: https://pomax.github.io/bezierinfo/#yforx + */ +static float find_first_cubic_root(float p0, float p1, float p2, float p3) +{ + double a = 3.0 * (p0 - 2.0 * p1 + p2); + double b = 3.0 * (p1 - p0); + double c = p0; + double d = -p0 + 3.0 * (p1 - p2) + p3; + + if (double_close_to_zero(d)) { + if (double_close_to_zero(a)) { + if (double_close_to_zero(b)) { + return NAN; + } + return clamp_root((float) (-c / b)); + } else { + double q = sqrt(b * b - 4.0 * a * c); + double a2 = 2.0 * a; + + float root = clamp_root(((float) ((q - b) / a2))); + if (!isnan(root)) + return root; + + return clamp_root(((float) ((-b - q) / a2))); + } + } + + a /= d; + b /= d; + c /= d; + + double o3 = (3.0 * b - a * a) / 9.0; + double q2 = (2.0 * a * a * a - 9.0 * a * b + 27.0 * c) / 54.0; + double discriminant = q2 * q2 + o3 * o3 * o3; + double a3 = a / 3.0; + + // Three possible real roots + if (discriminant < 0.0) { + double mp33 = -(o3 * o3 * o3); + double r = sqrt(mp33); + double t = -q2 / r; + double cos_phi = NGLI_CLAMP(t, -1.0, 1.0); + double phi = acos(cos_phi); + double t1 = 2.0 * fast_cbrt((float)r); + + float root = clamp_root((float)(t1 * cos(phi / 3.0) - a3)); + if (!isnan(root)) + return root; + + root = clamp_root((float)(t1 * cos((phi + TAU_F64) / 3.0) - a3)); + if (!isnan(root)) + return root; + + return clamp_root((float)(t1 * cos((phi + 2.0 * TAU_F64) / 3.0) - a3)); + } + + // Three real roots, but two of them are equal + if (discriminant == 0.0) { + float u1 = -fast_cbrt((float)q2); + + float root = clamp_root((float)(2.0 * u1 - a3)); + if (!isnan(root)) + return root; + + return clamp_root((float)(-u1 - a3)); + } + + // One real root, two complex roots + double sd = sqrt(discriminant); + double u1 = fast_cbrt((float)(-q2 + sd)); + double v1 = fast_cbrt((float)(q2 + sd)); + + return clamp_root((float)(u1 - v1 - a3)); +} + +static double evaluate_cubic(double p1, double p2, double t) +{ + double a = 1.0 / 3.0 + (p1 - p2); + double b = (p2 - 2.0 * p1); + double c = p1; + return 3.0 * ((a * t + b) * t + c) * t; +} + +static easing_type bezier_cubic(easing_type t, size_t args_nb, const easing_type *args) +{ + if (t < 0.f || t > 1.f) + return t; + + const easing_type a = PARAM(0, 0.0); + const easing_type b = PARAM(1, 0.0); + const easing_type c = PARAM(2, 1.0); + const easing_type d = PARAM(3, 1.0); + + const easing_type v = NGLI_MAX(t, FLT_EPSILON); + const float p0 = (float)(0.0 - v); + const float p1 = (float)( a - v); + const float p2 = (float)( c - v); + const float p3 = (float)(1.0 - v); + + easing_type r = find_first_cubic_root(p0, p1, p2, p3); + if (isnan(r)) { + /* No root found */ + return 0.0; + } + + return evaluate_cubic(b, d, r); +} + +static easing_type bezier_cubic_derivative(easing_type t, size_t args_nb, const easing_type *args) +{ + if (t < 0.f || t > 1.f) + return 1.0; + + const easing_type a = PARAM(0, 0.0); + const easing_type b = PARAM(1, 0.0); + const easing_type c = PARAM(2, 1.0); + const easing_type d = PARAM(3, 1.0); + + const double da = 3.0 * (b - a); + const double db = 3.0 * (c - b); + const double dc = 3.0 * (d - c); + + const easing_type v = NGLI_MAX(t, FLT_EPSILON); + const float dp0 = (float)(0.0 - v); + const float dp1 = (float)( da - v); + const float dp2 = (float)( dc - v); + + easing_type r = find_first_cubic_root(dp0, dp1, dp2, 0.f); + if (isnan(r)) { + /* No root found */ + return 1.0; + } + + return evaluate_cubic(db, 0.0, r); +} + static const struct { easing_function function; easing_function derivative; @@ -365,6 +538,7 @@ static const struct { [EASING_BACK_OUT] = {back_out, back_out_derivative, NULL}, [EASING_BACK_IN_OUT] = {back_in_out, back_in_out_derivative, NULL}, [EASING_BACK_OUT_IN] = {back_out_in, back_out_in_derivative, NULL}, + [EASING_BEZIER_CUBIC] = {bezier_cubic, bezier_cubic_derivative, NULL}, }; static int check_offsets(double x0, double x1) diff --git a/libnopegl/src/node_animkeyframe.h b/libnopegl/src/node_animkeyframe.h index 328a87a15..1c95b7a9a 100644 --- a/libnopegl/src/node_animkeyframe.h +++ b/libnopegl/src/node_animkeyframe.h @@ -69,6 +69,7 @@ enum easing_id { EASING_BACK_OUT, EASING_BACK_IN_OUT, EASING_BACK_OUT_IN, + EASING_BEZIER_CUBIC, }; typedef double easing_type; diff --git a/python/pynopegl-utils/pynopegl_utils/examples/animations.py b/python/pynopegl-utils/pynopegl_utils/examples/animations.py index 29629e5b1..ca33ebfac 100644 --- a/python/pynopegl-utils/pynopegl_utils/examples/animations.py +++ b/python/pynopegl-utils/pynopegl_utils/examples/animations.py @@ -128,18 +128,19 @@ def _get_easing_node(cfg: ngl.SceneCfg, easing, curve_zoom, color_program, nb_po _easing_specs = ( # fmt: off - ("linear", 0, 1.), - ("quadratic", 3, 1.), - ("cubic", 3, 1.), - ("quartic", 3, 1.), - ("quintic", 3, 1.), - ("power:7.3", 3, 1.), - ("sinus", 3, 1.), - ("exp", 3, 1.), - ("circular", 3, 1.), - ("bounce", 1, 1.), - ("elastic", 1, 0.5), - ("back", 3, 0.7), + ("linear", 0, 1.), + ("quadratic", 3, 1.), + ("cubic", 3, 1.), + ("quartic", 3, 1.), + ("quintic", 3, 1.), + ("power:7.3", 3, 1.), + ("sinus", 3, 1.), + ("exp", 3, 1.), + ("circular", 3, 1.), + ("bounce", 1, 1.), + ("elastic", 1, 0.5), + ("back", 3, 0.7), + ("bezier_cubic", 0, 1.), # fmt: on ) diff --git a/python/pynopegl/_pynopegl.pyx b/python/pynopegl/_pynopegl.pyx index 8fd7b0014..49a10561d 100644 --- a/python/pynopegl/_pynopegl.pyx +++ b/python/pynopegl/_pynopegl.pyx @@ -407,13 +407,13 @@ ANIM_EVALUATE, ANIM_DERIVATE, ANIM_SOLVE = range(3) def animate(const char *name, double src, args, offsets, mode): - cdef double c_args[2] + cdef double c_args[4] cdef double *c_args_param = NULL cdef size_t nb_args = 0 if args is not None: nb_args = len(args) - if nb_args > 2: - raise Exception("Easings do not support more than 2 arguments") + if nb_args > 4: + raise Exception("Easings do not support more than 4 arguments") for i, arg in enumerate(args): c_args[i] = arg c_args_param = c_args diff --git a/tests/anim.py b/tests/anim.py index 409cfa30c..263b6dd04 100644 --- a/tests/anim.py +++ b/tests/anim.py @@ -1,4 +1,5 @@ # +# Copyright 2024 Matthieu Bouron # Copyright 2020-2022 GoPro Inc. # # Licensed to the Apache Software Foundation (ASF) under one @@ -39,19 +40,21 @@ def _easing_join(easing, args): _easing_specs = ( # fmt: off - ("linear", 0), - ("quadratic", 3), - ("cubic", 3), - ("quartic", 3), - ("quintic", 3), - ("power:7.3", 3), - ("sinus", 3), - ("exp", 3), - ("circular", 3), - ("bounce", 1), - ("elastic", 1), - ("elastic:1.5:1.2", 1), - ("back", 3), + ("linear", 0), + ("quadratic", 3), + ("cubic", 3), + ("quartic", 3), + ("quintic", 3), + ("power:7.3", 3), + ("sinus", 3), + ("exp", 3), + ("circular", 3), + ("bounce", 1), + ("elastic", 1), + ("elastic:1.5:1.2", 1), + ("back", 3), + ("bezier_cubic", 0), + ("bezier_cubic:0.45:0:0.58:1", 0), # fmt: on ) @@ -111,8 +114,13 @@ def _test_derivative_approximations(nb_points=20): times = [i * scale for i in range(nb_points + 1)] max_err = 0.0005 + # Unsupported easings (due to lack of precision) + unsupported_easings = ["bezier_cubic"] + for easing in _easing_list: easing_name, easing_args = _easing_split(easing) + if easing_name in unsupported_easings: + continue for offsets in _offsets: out_vals = [ngl.easing_derivate(easing_name, t, easing_args, offsets) for t in times] approx_vals = [_approx_derivative(easing_name, t, easing_args, offsets) for t in times] diff --git a/tests/refs/anim_derivative_api.ref b/tests/refs/anim_derivative_api.ref index 8d1e78e96..50a6d55e5 100644 --- a/tests/refs/anim_derivative_api.ref +++ b/tests/refs/anim_derivative_api.ref @@ -170,3 +170,11 @@ back_out_in: 4.701580 1.704243 0.030129 -0.320763 -0.320763 0.030129 1.704243 4. back_out_in: 7.308304 3.830916 1.361391 -0.100270 -0.554067 -0.000000 -0.554067 -0.100270 back_out_in: -0.100270 -0.554067 0.000000 -0.554067 -0.100270 1.361391 3.830916 7.308304 back_out_in: 0.259706 1.250990 1.389886 0.676393 0.676393 1.389886 1.250990 0.259706 +bezier_cubic: 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 +bezier_cubic: 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 +bezier_cubic: 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 +bezier_cubic: 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 +bezier_cubic: 1.000000 1.000000 1.000000 0.674910 1.000000 0.999999 0.712637 1.000000 +bezier_cubic: 0.868451 0.868451 0.868451 0.603694 0.868451 0.868451 0.868451 0.586249 +bezier_cubic: 0.587274 0.844829 0.844829 0.844829 0.570303 0.844829 0.844828 0.844829 +bezier_cubic: 0.438157 0.431718 0.426499 0.422690 0.420486 0.420083 0.421683 0.425495 diff --git a/tests/refs/anim_forward_api.ref b/tests/refs/anim_forward_api.ref index 29151e68f..727a652f5 100644 --- a/tests/refs/anim_forward_api.ref +++ b/tests/refs/anim_forward_api.ref @@ -170,3 +170,11 @@ back_out_in: 0.000000 0.441806 0.549937 0.513425 0.486575 0.450063 0.558194 1.00 back_out_in: 0.000000 0.783660 1.142541 1.220623 1.161886 1.110311 1.058737 1.000000 back_out_in: 0.000000 -0.058737 -0.110311 -0.161886 -0.220623 -0.142541 0.216340 1.000000 back_out_in: -0.000000 0.118054 0.316836 0.474575 0.525425 0.683164 0.881946 1.000000 +bezier_cubic: 0.000000 0.142857 0.285714 0.428571 0.571429 0.714286 0.857143 1.000000 +bezier_cubic: 0.000000 0.142857 0.285714 0.428571 0.571428 0.714286 0.857143 1.000000 +bezier_cubic: 0.000000 0.142857 0.285714 0.428571 0.571429 0.714286 0.857143 1.000000 +bezier_cubic: 0.000000 0.142857 0.285714 0.428571 0.571429 0.714286 0.857143 1.000000 +bezier_cubic: 0.000000 0.036303 0.154749 0.357167 0.605809 0.824576 0.958392 1.000000 +bezier_cubic: 0.000000 0.021578 0.090797 0.212684 0.385849 0.595646 0.811923 1.000000 +bezier_cubic: 0.000000 0.168455 0.372545 0.582940 0.765901 0.899058 0.975914 1.000000 +bezier_cubic: 0.000000 0.118417 0.255865 0.407468 0.566078 0.723122 0.870087 1.000000 diff --git a/tests/refs/anim_forward_float.ref b/tests/refs/anim_forward_float.ref index e6ebede7f..4a69da25a 100644 --- a/tests/refs/anim_forward_float.ref +++ b/tests/refs/anim_forward_float.ref @@ -1,4 +1,4 @@ -off0: 0.757954 0.420572 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.844422 0.618369 0.618369 -off1: 0.757954 0.420572 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.844422 0.618369 0.618369 -off2: 0.757954 0.420572 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.844422 0.618369 0.618369 -off3: 0.757954 0.420572 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.844422 0.618369 0.618369 +off0: 0.757954 0.420572 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.844422 0.909746 0.909746 +off1: 0.757954 0.420572 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.844422 0.909746 0.909746 +off2: 0.757954 0.420572 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.844422 0.909746 0.909746 +off3: 0.757954 0.420572 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.844422 0.909746 0.909746 diff --git a/tests/refs/anim_forward_quat.ref b/tests/refs/anim_forward_quat.ref index 2c8c95664..fbc2c659f 100644 --- a/tests/refs/anim_forward_quat.ref +++ b/tests/refs/anim_forward_quat.ref @@ -1,4 +1,4 @@ -off0: 0.480603 0.380642 0.736778 0.285117 0.371384 0.454595 0.707639 0.393273 0.269236 0.722009 0.590719 0.239305 0.503564 0.543992 0.448472 0.499368 0.224733 0.528837 0.651300 0.495616 0.529613 0.112959 0.487020 0.685246 0.551146 0.583499 0.287951 0.522351 0.260492 0.805028 0.548699 0.014042 0.535866 0.296950 0.614150 0.497483 0.001143 0.493578 0.867603 0.243911 0.294179 0.787425 0.172839 0.513368 0.175965 0.713504 0.592298 0.330351 0.072327 0.287755 0.456681 0.838695 0.682349 0.612477 0.339850 0.209222 0.109058 0.551267 0.706561 0.547441 0.109058 0.551267 0.706561 0.547441 -off1: 0.480603 0.380642 0.736778 0.285117 0.371384 0.454595 0.707639 0.393273 0.269236 0.722009 0.590719 0.239305 0.503564 0.543992 0.448472 0.499368 0.224733 0.528837 0.651300 0.495616 0.529613 0.112959 0.487020 0.685246 0.551146 0.583499 0.287951 0.522351 0.260492 0.805028 0.548699 0.014042 0.535866 0.296950 0.614150 0.497483 0.001143 0.493578 0.867603 0.243911 0.294179 0.787425 0.172839 0.513368 0.175965 0.713504 0.592298 0.330351 0.072327 0.287755 0.456681 0.838695 0.682349 0.612477 0.339850 0.209222 0.109058 0.551267 0.706561 0.547441 0.109058 0.551267 0.706561 0.547441 -off2: 0.480603 0.380642 0.736778 0.285117 0.371384 0.454595 0.707639 0.393273 0.269236 0.722009 0.590719 0.239305 0.503564 0.543992 0.448472 0.499368 0.224733 0.528837 0.651300 0.495616 0.529613 0.112959 0.487020 0.685246 0.551146 0.583499 0.287951 0.522351 0.260492 0.805028 0.548699 0.014042 0.535866 0.296950 0.614150 0.497483 0.001143 0.493578 0.867603 0.243911 0.294179 0.787425 0.172839 0.513368 0.175965 0.713504 0.592298 0.330351 0.072327 0.287755 0.456681 0.838695 0.682349 0.612477 0.339850 0.209222 0.109058 0.551267 0.706561 0.547441 0.109058 0.551267 0.706561 0.547441 -off3: 0.480603 0.380642 0.736778 0.285117 0.371384 0.454595 0.707639 0.393273 0.269236 0.722009 0.590719 0.239305 0.503564 0.543992 0.448472 0.499368 0.224733 0.528837 0.651300 0.495616 0.529613 0.112959 0.487020 0.685246 0.551146 0.583499 0.287951 0.522351 0.260492 0.805028 0.548699 0.014042 0.535866 0.296950 0.614150 0.497483 0.001143 0.493578 0.867603 0.243911 0.294179 0.787425 0.172839 0.513368 0.175965 0.713504 0.592298 0.330351 0.072327 0.287755 0.456681 0.838695 0.682349 0.612477 0.339850 0.209222 0.109058 0.551267 0.706561 0.547441 0.109058 0.551267 0.706561 0.547441 +off0: 0.480603 0.380642 0.736778 0.285117 0.371384 0.454595 0.707639 0.393273 0.269236 0.722009 0.590719 0.239305 0.503564 0.543992 0.448472 0.499368 0.224733 0.528837 0.651300 0.495616 0.529613 0.112959 0.487020 0.685246 0.551146 0.583499 0.287951 0.522351 0.260492 0.805028 0.548699 0.014042 0.535866 0.296950 0.614150 0.497483 0.001143 0.493578 0.867603 0.243911 0.294179 0.787425 0.172839 0.513368 0.175965 0.713504 0.592298 0.330351 0.072327 0.287755 0.456681 0.838695 0.103294 0.522133 0.669220 0.518509 0.543210 0.360343 0.642833 0.402295 0.682349 0.612477 0.339850 0.209222 0.587617 0.444989 0.596287 0.384901 0.587617 0.444989 0.596287 0.384901 +off1: 0.480603 0.380642 0.736778 0.285117 0.371384 0.454595 0.707639 0.393273 0.269236 0.722009 0.590719 0.239305 0.503564 0.543992 0.448472 0.499368 0.224733 0.528837 0.651300 0.495616 0.529613 0.112959 0.487020 0.685246 0.551146 0.583499 0.287951 0.522351 0.260492 0.805028 0.548699 0.014042 0.535866 0.296950 0.614150 0.497483 0.001143 0.493578 0.867603 0.243911 0.294179 0.787425 0.172839 0.513368 0.175965 0.713504 0.592298 0.330351 0.072327 0.287755 0.456681 0.838695 0.103294 0.522133 0.669220 0.518509 0.543210 0.360343 0.642833 0.402295 0.682349 0.612477 0.339850 0.209222 0.587617 0.444989 0.596287 0.384901 0.587617 0.444989 0.596287 0.384901 +off2: 0.480603 0.380642 0.736778 0.285117 0.371384 0.454595 0.707639 0.393273 0.269236 0.722009 0.590719 0.239305 0.503564 0.543992 0.448472 0.499368 0.224733 0.528837 0.651300 0.495616 0.529613 0.112959 0.487020 0.685246 0.551146 0.583499 0.287951 0.522351 0.260492 0.805028 0.548699 0.014042 0.535866 0.296950 0.614150 0.497483 0.001143 0.493578 0.867603 0.243911 0.294179 0.787425 0.172839 0.513368 0.175965 0.713504 0.592298 0.330351 0.072327 0.287755 0.456681 0.838695 0.103294 0.522133 0.669220 0.518509 0.543210 0.360343 0.642833 0.402295 0.682349 0.612477 0.339850 0.209222 0.587617 0.444989 0.596287 0.384901 0.587617 0.444989 0.596287 0.384901 +off3: 0.480603 0.380642 0.736778 0.285117 0.371384 0.454595 0.707639 0.393273 0.269236 0.722009 0.590719 0.239305 0.503564 0.543992 0.448472 0.499368 0.224733 0.528837 0.651300 0.495616 0.529613 0.112959 0.487020 0.685246 0.551146 0.583499 0.287951 0.522351 0.260492 0.805028 0.548699 0.014042 0.535866 0.296950 0.614150 0.497483 0.001143 0.493578 0.867603 0.243911 0.294179 0.787425 0.172839 0.513368 0.175965 0.713504 0.592298 0.330351 0.072327 0.287755 0.456681 0.838695 0.103294 0.522133 0.669220 0.518509 0.543210 0.360343 0.642833 0.402295 0.682349 0.612477 0.339850 0.209222 0.587617 0.444989 0.596287 0.384901 0.587617 0.444989 0.596287 0.384901 diff --git a/tests/refs/anim_forward_vec2.ref b/tests/refs/anim_forward_vec2.ref index 7e5827e92..ceb5c8cff 100644 --- a/tests/refs/anim_forward_vec2.ref +++ b/tests/refs/anim_forward_vec2.ref @@ -1,4 +1,4 @@ -off0: 0.420572 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.844422 0.757954 0.913011 0.966606 0.913011 0.966606 -off1: 0.420572 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.844422 0.757954 0.913011 0.966606 0.913011 0.966606 -off2: 0.420572 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.844422 0.757954 0.913011 0.966606 0.913011 0.966606 -off3: 0.420572 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.844422 0.757954 0.913011 0.966606 0.913011 0.966606 +off0: 0.420572 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.844422 0.757954 0.260492 0.805028 0.260492 0.805028 +off1: 0.420572 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.844422 0.757954 0.260492 0.805028 0.260492 0.805028 +off2: 0.420572 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.844422 0.757954 0.260492 0.805028 0.260492 0.805028 +off3: 0.420572 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.844422 0.757954 0.260492 0.805028 0.260492 0.805028 diff --git a/tests/refs/anim_forward_vec3.ref b/tests/refs/anim_forward_vec3.ref index d5fc501e2..0cffd2a13 100644 --- a/tests/refs/anim_forward_vec3.ref +++ b/tests/refs/anim_forward_vec3.ref @@ -1,4 +1,4 @@ -off0: 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.260492 0.805028 0.548699 0.014042 0.719705 0.398824 0.824845 0.668153 0.001143 0.493578 0.844422 0.757954 0.420572 0.867603 0.243911 0.325204 0.867603 0.243911 0.325204 -off1: 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.260492 0.805028 0.548699 0.014042 0.719705 0.398824 0.824845 0.668153 0.001143 0.493578 0.844422 0.757954 0.420572 0.867603 0.243911 0.325204 0.867603 0.243911 0.325204 -off2: 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.260492 0.805028 0.548699 0.014042 0.719705 0.398824 0.824845 0.668153 0.001143 0.493578 0.844422 0.757954 0.420572 0.867603 0.243911 0.325204 0.867603 0.243911 0.325204 -off3: 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.260492 0.805028 0.548699 0.014042 0.719705 0.398824 0.824845 0.668153 0.001143 0.493578 0.844422 0.757954 0.420572 0.867603 0.243911 0.325204 0.867603 0.243911 0.325204 +off0: 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.260492 0.805028 0.548699 0.014042 0.719705 0.398824 0.824845 0.668153 0.001143 0.493578 0.867603 0.243911 0.325204 0.870471 0.191067 0.567511 0.844422 0.757954 0.420572 0.238616 0.967540 0.803179 0.238616 0.967540 0.803179 +off1: 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.260492 0.805028 0.548699 0.014042 0.719705 0.398824 0.824845 0.668153 0.001143 0.493578 0.867603 0.243911 0.325204 0.870471 0.191067 0.567511 0.844422 0.757954 0.420572 0.238616 0.967540 0.803179 0.238616 0.967540 0.803179 +off2: 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.260492 0.805028 0.548699 0.014042 0.719705 0.398824 0.824845 0.668153 0.001143 0.493578 0.867603 0.243911 0.325204 0.870471 0.191067 0.567511 0.844422 0.757954 0.420572 0.238616 0.967540 0.803179 0.238616 0.967540 0.803179 +off3: 0.258917 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.260492 0.805028 0.548699 0.014042 0.719705 0.398824 0.824845 0.668153 0.001143 0.493578 0.867603 0.243911 0.325204 0.870471 0.191067 0.567511 0.844422 0.757954 0.420572 0.238616 0.967540 0.803179 0.238616 0.967540 0.803179 diff --git a/tests/refs/anim_forward_vec4.ref b/tests/refs/anim_forward_vec4.ref index 9acbc296b..f0d968d14 100644 --- a/tests/refs/anim_forward_vec4.ref +++ b/tests/refs/anim_forward_vec4.ref @@ -1,4 +1,4 @@ -off0: 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.260492 0.805028 0.548699 0.014042 0.719705 0.398824 0.824845 0.668153 0.001143 0.493578 0.867603 0.243911 0.325204 0.870471 0.191067 0.567511 0.238616 0.967540 0.803179 0.447970 0.080446 0.320055 0.507941 0.932834 0.844422 0.757954 0.420572 0.258917 0.109058 0.551267 0.706561 0.547441 0.109058 0.551267 0.706561 0.547441 -off1: 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.260492 0.805028 0.548699 0.014042 0.719705 0.398824 0.824845 0.668153 0.001143 0.493578 0.867603 0.243911 0.325204 0.870471 0.191067 0.567511 0.238616 0.967540 0.803179 0.447970 0.080446 0.320055 0.507941 0.932834 0.844422 0.757954 0.420572 0.258917 0.109058 0.551267 0.706561 0.547441 0.109058 0.551267 0.706561 0.547441 -off2: 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.260492 0.805028 0.548699 0.014042 0.719705 0.398824 0.824845 0.668153 0.001143 0.493578 0.867603 0.243911 0.325204 0.870471 0.191067 0.567511 0.238616 0.967540 0.803179 0.447970 0.080446 0.320055 0.507941 0.932834 0.844422 0.757954 0.420572 0.258917 0.109058 0.551267 0.706561 0.547441 0.109058 0.551267 0.706561 0.547441 -off3: 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.260492 0.805028 0.548699 0.014042 0.719705 0.398824 0.824845 0.668153 0.001143 0.493578 0.867603 0.243911 0.325204 0.870471 0.191067 0.567511 0.238616 0.967540 0.803179 0.447970 0.080446 0.320055 0.507941 0.932834 0.844422 0.757954 0.420572 0.258917 0.109058 0.551267 0.706561 0.547441 0.109058 0.551267 0.706561 0.547441 +off0: 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.260492 0.805028 0.548699 0.014042 0.719705 0.398824 0.824845 0.668153 0.001143 0.493578 0.867603 0.243911 0.325204 0.870471 0.191067 0.567511 0.238616 0.967540 0.803179 0.447970 0.080446 0.320055 0.507941 0.932834 0.109058 0.551267 0.706561 0.547441 0.814467 0.540284 0.963839 0.603186 0.844422 0.757954 0.420572 0.258917 0.587617 0.444989 0.596287 0.384901 0.587617 0.444989 0.596287 0.384901 +off1: 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.260492 0.805028 0.548699 0.014042 0.719705 0.398824 0.824845 0.668153 0.001143 0.493578 0.867603 0.243911 0.325204 0.870471 0.191067 0.567511 0.238616 0.967540 0.803179 0.447970 0.080446 0.320055 0.507941 0.932834 0.109058 0.551267 0.706561 0.547441 0.814467 0.540284 0.963839 0.603186 0.844422 0.757954 0.420572 0.258917 0.587617 0.444989 0.596287 0.384901 0.587617 0.444989 0.596287 0.384901 +off2: 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.260492 0.805028 0.548699 0.014042 0.719705 0.398824 0.824845 0.668153 0.001143 0.493578 0.867603 0.243911 0.325204 0.870471 0.191067 0.567511 0.238616 0.967540 0.803179 0.447970 0.080446 0.320055 0.507941 0.932834 0.109058 0.551267 0.706561 0.547441 0.814467 0.540284 0.963839 0.603186 0.844422 0.757954 0.420572 0.258917 0.587617 0.444989 0.596287 0.384901 0.587617 0.444989 0.596287 0.384901 +off3: 0.511275 0.404934 0.783799 0.303313 0.476597 0.583382 0.908113 0.504687 0.281838 0.755804 0.618369 0.250506 0.909746 0.982785 0.810217 0.902166 0.310148 0.729832 0.898838 0.683984 0.472143 0.100701 0.434172 0.610887 0.913011 0.966606 0.477010 0.865310 0.260492 0.805028 0.548699 0.014042 0.719705 0.398824 0.824845 0.668153 0.001143 0.493578 0.867603 0.243911 0.325204 0.870471 0.191067 0.567511 0.238616 0.967540 0.803179 0.447970 0.080446 0.320055 0.507941 0.932834 0.109058 0.551267 0.706561 0.547441 0.814467 0.540284 0.963839 0.603186 0.844422 0.757954 0.420572 0.258917 0.587617 0.444989 0.596287 0.384901 0.587617 0.444989 0.596287 0.384901 diff --git a/tests/refs/anim_velocity_float.ref b/tests/refs/anim_velocity_float.ref index 34b040772..f36618e13 100644 --- a/tests/refs/anim_velocity_float.ref +++ b/tests/refs/anim_velocity_float.ref @@ -1,4 +1,4 @@ -off0: -0.000000 -0.323310 0.000000 -0.212681 0.000000 -1.441458 0.000000 0.320355 0.000000 -1.613704 -0.000000 1.895865 -0.000000 -0.086467 0.000000 0.000000 -off1: -0.000000 -0.248700 0.000000 -0.256684 0.000000 -1.037020 0.000000 0.421520 0.000000 -1.138817 -0.000000 2.587960 -0.000000 -0.086467 0.000000 0.000000 -off2: -0.155715 -0.323310 0.258513 -0.102674 0.073592 -1.441458 0.146864 0.067443 0.024750 -1.613704 -0.144118 0.165629 -0.003906 -0.086467 0.000000 0.000000 -off3: -0.202430 -0.226317 0.189268 -0.212681 0.129485 -0.894069 0.095483 0.320355 0.060467 -0.954311 -0.088484 1.895865 -0.013442 -0.086467 0.000000 0.000000 +off0: -0.000000 -0.323310 0.000000 -0.212681 0.000000 -1.441458 0.000000 0.320355 0.000000 -1.613704 -0.000000 1.895865 -0.000000 -1.839313 0.000000 -0.086467 0.000000 0.000000 +off1: -0.000000 -0.248700 0.000000 -0.256684 0.000000 -1.037020 0.000000 0.421520 0.000000 -1.138817 -0.000000 2.587960 -0.000000 -1.290656 0.000000 -0.086467 0.000000 0.000000 +off2: -0.155715 -0.323310 0.258513 -0.102674 0.073592 -1.441458 0.146864 0.067443 0.024750 -1.613704 -0.144118 0.165629 -0.003906 -1.839313 0.311128 -0.086467 0.000000 0.000000 +off3: -0.202430 -0.226317 0.189268 -0.212681 0.129485 -0.894069 0.095483 0.320355 0.060467 -0.954311 -0.088484 1.895865 -0.013442 -1.066455 0.185283 -0.086467 0.000000 0.000000 diff --git a/tests/refs/anim_velocity_vec2.ref b/tests/refs/anim_velocity_vec2.ref index 1083b7e5e..40d921114 100644 --- a/tests/refs/anim_velocity_vec2.ref +++ b/tests/refs/anim_velocity_vec2.ref @@ -1,4 +1,4 @@ -off0: 0.000000 0.000000 1.873955 -0.698779 -0.000000 0.000000 1.967549 -0.358820 -0.000000 0.000000 1.662957 -2.496912 0.000000 0.000000 -2.331180 -1.888280 -0.000000 -0.000000 3.987924 -0.310584 -0.000000 -0.000000 -0.296881 3.988968 0.000000 0.000000 -0.647354 -0.762189 0.000000 0.000000 0.000000 0.000000 -off1: 0.000000 0.000000 1.441504 -0.537522 -0.000000 0.000000 2.374628 -0.433059 -0.000000 0.000000 1.196372 -1.796340 0.000000 0.000000 -3.067342 -2.484579 -0.000000 -0.000000 2.814343 -0.219184 -0.000000 -0.000000 -0.405259 5.445159 0.000000 0.000000 -0.647354 -0.762189 0.000000 0.000000 0.000000 0.000000 -off2: 0.243537 0.392055 1.873955 -0.698779 -0.757011 0.690151 0.949851 -0.173224 -0.180291 0.072291 1.662957 -2.496912 0.313343 0.787483 -0.490775 -0.397533 -0.072058 -0.024833 3.987924 -0.310584 -0.381830 -0.521953 -0.025937 0.348490 0.022813 0.016947 -0.647354 -0.762189 0.000000 0.000000 0.000000 0.000000 -off3: 0.316598 0.509672 1.311769 -0.489145 -0.554240 0.505289 1.967549 -0.358820 -0.317221 0.127196 1.031455 -1.548718 0.203719 0.511979 -2.331180 -1.888280 -0.176046 -0.060669 2.358376 -0.183673 -0.234433 -0.320464 -0.296881 3.988968 0.078510 0.058323 -0.647354 -0.762189 0.000000 0.000000 0.000000 0.000000 +off0: 0.000000 0.000000 1.873955 -0.698779 -0.000000 0.000000 1.967549 -0.358820 -0.000000 0.000000 1.662957 -2.496912 0.000000 0.000000 -2.331180 -1.888280 -0.000000 -0.000000 3.987924 -0.310584 -0.000000 -0.000000 -0.296881 3.988968 0.000000 0.000000 -4.870284 -1.131516 -0.000000 -0.000000 -0.647354 -0.762189 0.000000 0.000000 0.000000 0.000000 +off1: 0.000000 0.000000 1.441504 -0.537522 -0.000000 0.000000 2.374628 -0.433059 -0.000000 0.000000 1.196372 -1.796340 0.000000 0.000000 -3.067342 -2.484579 -0.000000 -0.000000 2.814343 -0.219184 -0.000000 -0.000000 -0.405259 5.445159 0.000000 0.000000 -3.417503 -0.793990 -0.000000 -0.000000 -0.647354 -0.762189 0.000000 0.000000 0.000000 0.000000 +off2: 0.243537 0.392055 1.873955 -0.698779 -0.757011 0.690151 0.949851 -0.173224 -0.180291 0.072291 1.662957 -2.496912 0.313343 0.787483 -0.490775 -0.397533 -0.072058 -0.024833 3.987924 -0.310584 -0.381830 -0.521953 -0.025937 0.348490 0.022813 0.016947 -4.870284 -1.131516 -0.454657 -0.126584 -0.647354 -0.762189 0.000000 0.000000 0.000000 0.000000 +off3: 0.316598 0.509672 1.311769 -0.489145 -0.554240 0.505289 1.967549 -0.358820 -0.317221 0.127196 1.031455 -1.548718 0.203719 0.511979 -2.331180 -1.888280 -0.176046 -0.060669 2.358376 -0.183673 -0.234433 -0.320464 -0.296881 3.988968 0.078510 0.058323 -2.823847 -0.656066 -0.270757 -0.075383 -0.647354 -0.762189 0.000000 0.000000 0.000000 0.000000 diff --git a/tests/refs/anim_velocity_vec3.ref b/tests/refs/anim_velocity_vec3.ref index 829c362d2..eaa0f134d 100644 --- a/tests/refs/anim_velocity_vec3.ref +++ b/tests/refs/anim_velocity_vec3.ref @@ -1,4 +1,4 @@ -off0: 0.000000 -0.000000 0.000000 -0.628501 1.896636 0.088089 -0.000000 -0.000000 0.000000 -0.157906 0.775846 1.836608 0.000000 -0.000000 -0.000000 -0.630646 -0.026106 2.932849 -0.000000 -0.000000 -0.000000 0.424245 2.483840 1.628052 -0.000000 -0.000000 -0.000000 2.531769 -2.443722 -1.902200 -0.000000 -0.000000 0.000000 -0.396443 -3.058260 -2.547524 0.000000 0.000000 -0.000000 -0.921271 -0.388142 -0.024605 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -off1: 0.000000 -0.000000 0.000000 -0.483462 1.458951 0.067761 -0.000000 -0.000000 0.000000 -0.190577 0.936366 2.216596 0.000000 -0.000000 -0.000000 -0.453702 -0.018782 2.109963 -0.000000 -0.000000 -0.000000 0.558217 3.268211 2.142173 -0.000000 -0.000000 -0.000000 1.786711 -1.724575 -1.342414 -0.000000 -0.000000 0.000000 -0.541167 -4.174693 -3.477509 0.000000 0.000000 -0.000000 -0.921271 -0.388142 -0.024605 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -off2: 0.425671 -0.168654 0.058117 -0.628501 1.896636 0.088089 -0.866619 -0.437726 0.326715 -0.076231 0.374546 0.886638 0.124240 -0.001683 -0.149307 -0.630646 -0.026106 2.932849 -0.249566 -0.772979 -0.241938 0.089315 0.522914 0.342748 -0.014166 -0.005048 -0.074719 2.531769 -2.443722 -1.902200 -0.066566 -0.116927 0.632556 -0.034635 -0.267180 -0.222561 0.015901 0.019355 -0.013424 -0.921271 -0.388142 -0.024605 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -off3: 0.553373 -0.219250 0.075553 -0.439950 1.327645 0.061662 -0.634489 -0.320478 0.239202 -0.157906 0.775846 1.836608 0.218600 -0.002961 -0.262704 -0.391160 -0.016193 1.819109 -0.162254 -0.502549 -0.157295 0.424245 2.483840 1.628052 -0.034610 -0.012332 -0.182546 1.497236 -1.445167 -1.124922 -0.040869 -0.071790 0.388371 -0.396443 -3.058260 -2.547524 0.054723 0.066608 -0.046196 -0.921271 -0.388142 -0.024605 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 +off0: 0.000000 -0.000000 0.000000 -0.628501 1.896636 0.088089 -0.000000 -0.000000 0.000000 -0.157906 0.775846 1.836608 0.000000 -0.000000 -0.000000 -0.630646 -0.026106 2.932849 -0.000000 -0.000000 -0.000000 0.424245 2.483840 1.628052 -0.000000 -0.000000 -0.000000 2.531769 -2.443722 -1.902200 -0.000000 -0.000000 0.000000 -0.396443 -3.058260 -2.547524 0.000000 0.000000 -0.000000 0.057828 -1.065321 4.884849 -0.000000 0.000000 0.000000 -0.921271 -0.388142 -0.024605 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 +off1: 0.000000 -0.000000 0.000000 -0.483462 1.458951 0.067761 -0.000000 -0.000000 0.000000 -0.190577 0.936366 2.216596 0.000000 -0.000000 -0.000000 -0.453702 -0.018782 2.109963 -0.000000 -0.000000 -0.000000 0.558217 3.268211 2.142173 -0.000000 -0.000000 -0.000000 1.786711 -1.724575 -1.342414 -0.000000 -0.000000 0.000000 -0.541167 -4.174693 -3.477509 0.000000 0.000000 -0.000000 0.040578 -0.747541 3.427723 -0.000000 0.000000 0.000000 -0.921271 -0.388142 -0.024605 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 +off2: 0.425671 -0.168654 0.058117 -0.628501 1.896636 0.088089 -0.866619 -0.437726 0.326715 -0.076231 0.374546 0.886638 0.124240 -0.001683 -0.149307 -0.630646 -0.026106 2.932849 -0.249566 -0.772979 -0.241938 0.089315 0.522914 0.342748 -0.014166 -0.005048 -0.074719 2.531769 -2.443722 -1.902200 -0.066566 -0.116927 0.632556 -0.034635 -0.267180 -0.222561 0.015901 0.019355 -0.013424 0.057828 -1.065321 4.884849 -0.289957 0.356322 0.108148 -0.921271 -0.388142 -0.024605 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 +off3: 0.553373 -0.219250 0.075553 -0.439950 1.327645 0.061662 -0.634489 -0.320478 0.239202 -0.157906 0.775846 1.836608 0.218600 -0.002961 -0.262704 -0.391160 -0.016193 1.819109 -0.162254 -0.502549 -0.157295 0.424245 2.483840 1.628052 -0.034610 -0.012332 -0.182546 1.497236 -1.445167 -1.124922 -0.040869 -0.071790 0.388371 -0.396443 -3.058260 -2.547524 0.054723 0.066608 -0.046196 0.033529 -0.617685 2.832292 -0.172675 0.212196 0.064404 -0.921271 -0.388142 -0.024605 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 diff --git a/tests/refs/anim_velocity_vec4.ref b/tests/refs/anim_velocity_vec4.ref index 754867c02..f601a11c0 100644 --- a/tests/refs/anim_velocity_vec4.ref +++ b/tests/refs/anim_velocity_vec4.ref @@ -1,4 +1,4 @@ -off0: -0.000000 0.000000 0.000000 0.000000 -0.837684 0.741610 -1.246225 -1.093263 0.000000 0.000000 0.000000 0.000000 -1.732768 -0.731006 0.256104 -0.630520 0.000000 -0.000000 -0.000000 -0.000000 1.315570 2.583899 0.127830 0.759209 -0.000000 -0.000000 0.000000 -0.000000 1.468569 -1.299048 0.883119 2.091860 -0.000000 0.000000 0.000000 -0.000000 1.440734 1.675618 -3.007787 1.438682 -0.000000 0.000000 0.000000 -0.000000 -0.722643 -2.958216 -1.348879 2.215235 0.000000 0.000000 0.000000 -0.000000 -0.548050 -0.580742 0.597533 0.073034 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -off1: -0.000000 0.000000 0.000000 0.000000 -0.644372 0.570469 -0.958635 -0.840971 0.000000 0.000000 0.000000 0.000000 -2.091272 -0.882248 0.309091 -0.760972 0.000000 -0.000000 -0.000000 -0.000000 0.946454 1.858920 0.091964 0.546194 -0.000000 -0.000000 0.000000 -0.000000 1.932328 -1.709274 1.161998 2.752447 -0.000000 0.000000 0.000000 -0.000000 1.016750 1.182511 -2.122644 1.015301 -0.000000 0.000000 0.000000 -0.000000 -0.986448 -4.038126 -1.841294 3.023917 0.000000 0.000000 0.000000 -0.000000 -0.548050 -0.580742 0.597533 0.073034 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -off2: -0.053634 0.275993 0.192268 0.311451 -0.837684 0.741610 -1.246225 -1.093263 0.675300 0.244113 0.206328 0.700844 -0.836509 -0.352899 0.123636 -0.304389 0.039232 -0.152364 -0.112533 -0.017703 1.315570 2.583899 0.127830 0.759209 -0.508744 -0.125977 0.055894 -0.663701 0.309172 -0.273484 0.185920 0.440392 -0.065129 0.008588 0.003875 -0.038452 1.440734 1.675618 -3.007787 1.438682 -0.087895 0.098533 0.621346 -0.121344 -0.063133 -0.258440 -0.117843 0.193531 0.001652 0.013350 0.011468 -0.022252 -0.548050 -0.580742 0.597533 0.073034 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -off3: -0.069724 0.358791 0.249949 0.404887 -0.586379 0.519127 -0.872358 -0.765284 0.494416 0.178726 0.151062 0.513118 -1.732768 -0.731006 0.256104 -0.630520 0.069029 -0.268083 -0.198002 -0.031148 0.815987 1.602672 0.079287 0.470902 -0.330757 -0.081903 0.036339 -0.431502 1.468569 -1.299048 0.883119 2.091860 -0.159116 0.020982 0.009468 -0.093943 0.852020 0.990926 -1.778743 0.850807 -0.053965 0.060497 0.381488 -0.074502 -0.722643 -2.958216 -1.348879 2.215235 0.005685 0.045944 0.039467 -0.076580 -0.548050 -0.580742 0.597533 0.073034 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 +off0: -0.000000 0.000000 0.000000 0.000000 -0.837684 0.741610 -1.246225 -1.093263 0.000000 0.000000 0.000000 0.000000 -1.732768 -0.731006 0.256104 -0.630520 0.000000 -0.000000 -0.000000 -0.000000 1.315570 2.583899 0.127830 0.759209 -0.000000 -0.000000 0.000000 -0.000000 1.468569 -1.299048 0.883119 2.091860 -0.000000 0.000000 0.000000 -0.000000 1.440734 1.675618 -3.007787 1.438682 -0.000000 0.000000 0.000000 -0.000000 -0.722643 -2.958216 -1.348879 2.215235 0.000000 0.000000 0.000000 -0.000000 4.683939 -0.072932 1.708329 0.370147 -0.000000 -0.000000 -0.000000 -0.000000 -0.548050 -0.580742 0.597533 0.073034 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 +off1: -0.000000 0.000000 0.000000 0.000000 -0.644372 0.570469 -0.958635 -0.840971 0.000000 0.000000 0.000000 0.000000 -2.091272 -0.882248 0.309091 -0.760972 0.000000 -0.000000 -0.000000 -0.000000 0.946454 1.858920 0.091964 0.546194 -0.000000 -0.000000 0.000000 -0.000000 1.932328 -1.709274 1.161998 2.752447 -0.000000 0.000000 0.000000 -0.000000 1.016750 1.182511 -2.122644 1.015301 -0.000000 0.000000 0.000000 -0.000000 -0.986448 -4.038126 -1.841294 3.023917 0.000000 0.000000 0.000000 -0.000000 3.286744 -0.051177 1.198743 0.259734 -0.000000 -0.000000 -0.000000 -0.000000 -0.548050 -0.580742 0.597533 0.073034 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 +off2: -0.053634 0.275993 0.192268 0.311451 -0.837684 0.741610 -1.246225 -1.093263 0.675300 0.244113 0.206328 0.700844 -0.836509 -0.352899 0.123636 -0.304389 0.039232 -0.152364 -0.112533 -0.017703 1.315570 2.583899 0.127830 0.759209 -0.508744 -0.125977 0.055894 -0.663701 0.309172 -0.273484 0.185920 0.440392 -0.065129 0.008588 0.003875 -0.038452 1.440734 1.675618 -3.007787 1.438682 -0.087895 0.098533 0.621346 -0.121344 -0.063133 -0.258440 -0.117843 0.193531 0.001652 0.013350 0.011468 -0.022252 4.683939 -0.072932 1.708329 0.370147 -0.217059 -0.091182 -0.351687 -0.208863 -0.548050 -0.580742 0.597533 0.073034 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 +off3: -0.069724 0.358791 0.249949 0.404887 -0.586379 0.519127 -0.872358 -0.765284 0.494416 0.178726 0.151062 0.513118 -1.732768 -0.731006 0.256104 -0.630520 0.069029 -0.268083 -0.198002 -0.031148 0.815987 1.602672 0.079287 0.470902 -0.330757 -0.081903 0.036339 -0.431502 1.468569 -1.299048 0.883119 2.091860 -0.159116 0.020982 0.009468 -0.093943 0.852020 0.990926 -1.778743 0.850807 -0.053965 0.060497 0.381488 -0.074502 -0.722643 -2.958216 -1.348879 2.215235 0.005685 0.045944 0.039467 -0.076580 2.715802 -0.042287 0.990509 0.214616 -0.129262 -0.054300 -0.209437 -0.124382 -0.548050 -0.580742 0.597533 0.073034 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000