diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-05-22 13:48:39 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-05-22 13:48:39 +0200 |
commit | 6b3a79261ab35cc7764d0c65a565c08ecf0fceb0 (patch) | |
tree | e071093390d6c5d63f2cda734ac497631d38f74a /scene/resources/curve.cpp | |
parent | 405fe7aa1a0de55907eff6e24bb658bbbc04a3ef (diff) | |
parent | c920a4f051aa260c9bfc9aed1839eb1803a9a78f (diff) | |
download | redot-engine-6b3a79261ab35cc7764d0c65a565c08ecf0fceb0.tar.gz |
Merge pull request #76617 from tektrip-biggles/baked-curve-fix
Fix for "off-by-1" bug when sampling "baked" curve data towards the end of the curve.
Diffstat (limited to 'scene/resources/curve.cpp')
-rw-r--r-- | scene/resources/curve.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/scene/resources/curve.cpp b/scene/resources/curve.cpp index 97ab91e26d..a0bd22c79b 100644 --- a/scene/resources/curve.cpp +++ b/scene/resources/curve.cpp @@ -452,7 +452,7 @@ void Curve::bake() { _baked_cache.resize(_bake_resolution); for (int i = 1; i < _bake_resolution - 1; ++i) { - real_t x = i / static_cast<real_t>(_bake_resolution); + real_t x = i / static_cast<real_t>(_bake_resolution - 1); real_t y = sample(x); _baked_cache.write[i] = y; } @@ -489,7 +489,7 @@ real_t Curve::sample_baked(real_t p_offset) const { } // Get interpolation index - real_t fi = p_offset * _baked_cache.size(); + real_t fi = p_offset * (_baked_cache.size() - 1); int i = Math::floor(fi); if (i < 0) { i = 0; |