From c7e9641e8688c82874dbfa067f7dc8cb4d40e23d Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Thu, 3 Sep 2020 13:21:45 -0700 Subject: Change classic, natural, naturalgain to use gain offset --- common/accel-natural.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'common/accel-natural.hpp') diff --git a/common/accel-natural.hpp b/common/accel-natural.hpp index c7d0dcd..32bc365 100644 --- a/common/accel-natural.hpp +++ b/common/accel-natural.hpp @@ -10,16 +10,18 @@ namespace rawaccel { struct natural_impl { double rate; double limit; + double offset; natural_impl(const accel_args& args) : - rate(args.accel), limit(args.limit - 1) + rate(args.accel), limit(args.limit - 1), offset(args.offset) { rate /= limit; } inline double operator()(double speed) const { // f(x) = k(1-e^(-mx)) - return limit - (limit * exp(-rate * speed)); + double base_speed = speed + offset; + return limit * (1 - ((exp(-rate * speed) * speed + offset) / base_speed)); } }; -- cgit v1.2.3 From 01f870a493378a62ab76dcbf5dc37c0390ca7afe Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Thu, 3 Sep 2020 19:36:44 -0700 Subject: Refactor for nice gain offset --- common/accel-natural.hpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'common/accel-natural.hpp') diff --git a/common/accel-natural.hpp b/common/accel-natural.hpp index 32bc365..03700c1 100644 --- a/common/accel-natural.hpp +++ b/common/accel-natural.hpp @@ -24,6 +24,10 @@ namespace rawaccel { return limit * (1 - ((exp(-rate * speed) * speed + offset) / base_speed)); } + inline double legacy_offset(double speed) const { + return limit - (limit * exp(-rate * speed)); + } + }; using accel_natural = additive_accel; -- cgit v1.2.3