diff options
Diffstat (limited to 'common/accel-power.hpp')
| -rw-r--r-- | common/accel-power.hpp | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/common/accel-power.hpp b/common/accel-power.hpp index 5d0c451..c8faabb 100644 --- a/common/accel-power.hpp +++ b/common/accel-power.hpp @@ -1,26 +1,27 @@ #pragma once -#include <math.h> +#include "rawaccel-base.hpp" -#include "accel-base.hpp" +#include <math.h> namespace rawaccel { /// <summary> Struct to hold power (non-additive) acceleration implementation. </summary> - struct power_impl { - double scale; + struct power { + double pre_scale; double exponent; + double post_scale; - power_impl(const accel_args& args) : - scale(args.scale), exponent(args.exponent) - {} + power(const accel_args& args) : + pre_scale(args.scale), + exponent(args.exponent), + post_scale(args.weight) {} - inline double operator()(double speed) const { + double operator()(double speed) const + { // f(x) = (mx)^k - return pow(speed * scale, exponent); + return post_scale * pow(speed * pre_scale, exponent); } }; - using accel_power = nonadditive_accel<power_impl>; - } |