diff options
| author | Jacob Palecki <[email protected]> | 2020-09-02 21:13:18 -0700 |
|---|---|---|
| committer | Jacob Palecki <[email protected]> | 2020-09-02 21:13:18 -0700 |
| commit | 0b50f9c85568e5b8b6ee32e40990e39cfdf515b5 (patch) | |
| tree | f921f780360640e3bedf676e076496f5ff821163 /common/accel-linear.hpp | |
| parent | Merge remote-tracking branch 'upstream/master' into master (diff) | |
| download | rawaccel-0b50f9c85568e5b8b6ee32e40990e39cfdf515b5.tar.xz rawaccel-0b50f9c85568e5b8b6ee32e40990e39cfdf515b5.zip | |
Start adding gain offsets
Diffstat (limited to 'common/accel-linear.hpp')
| -rw-r--r-- | common/accel-linear.hpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/common/accel-linear.hpp b/common/accel-linear.hpp index a943594..95ba261 100644 --- a/common/accel-linear.hpp +++ b/common/accel-linear.hpp @@ -7,11 +7,18 @@ namespace rawaccel { /// <summary> Struct to hold linear acceleration implementation. </summary> struct linear_impl { double accel; + double offset; + double subtractive_const; + double divisive_const; - linear_impl(const accel_args& args) : accel(args.accel) {} + linear_impl(const accel_args& args) : accel(args.accel), offset(args.offset) { + subtractive_const = 2 * accel * offset; + divisive_const = accel * offset * offset; + } inline double operator()(double speed) const { - return accel * speed; + double base_speed = speed + offset; + return accel * base_speed - subtractive_const + divisive_const / base_speed; } }; |