14 lines
456 B
C
14 lines
456 B
C
#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; }
|
|
};
|