eis/TestProject/RNG/model/LinearModel.h

17 lines
450 B
C
Raw Permalink Normal View History

#pragma once
#include <TestProject/RNG/model/IModel.h>
#include <nlohmann/json.hpp>
using json = nlohmann::json;
struct LinearModel : IModel {
float k, b;
size_t period_ticks;
LinearModel(const json& params, float defaultVal)
: k(params.value("k", 0.0f)), b(defaultVal)
, period_ticks(params.value("period_ms", 0) / 20) {}
float evaluate(size_t t) override {
if (period_ticks > 0) t %= period_ticks;
return k * t + b;
}
};