eis/TestProject/RNG/model/SineModel.h

14 lines
456 B
C
Raw Normal View History

#pragma once
#include <TestProject/RNG/model/IModel.h>
#include <nlohmann/json.hpp>
#include <cmath>
using json = nlohmann::json;
struct SineModel : IModel {
float A, omega, phi, offset;
SineModel(const json& params, float defaultVal)
: A(params.value("A", 1.0f)), omega(params.value("omega", 1.0f)),
phi(params.value("phi", 0.0f)), offset(defaultVal) {}
float evaluate(size_t t) override { return A * sinf(omega * t + phi) + offset; }
};