27 std::vector<std::pair<float, float>>
keys;
32 explicit Curve(
const std::vector<float>& data);
39 [[nodiscard]]
size_t length()
const {
return keys.size(); }
41 std::pair<float, float>
add(
float time,
float value);
43 std::pair<float, float>
get(
size_t index)
const;
47 [[nodiscard]]
float value(
float time);
49 [[nodiscard]] std::pair<float, float>
closest(
float time)
const;
53 [[nodiscard]] std::vector<float>
quantize(
size_t precision);
55 [[nodiscard]] std::vector<float>
quantizeClamped(
size_t precision,
float min,
float max);
58 std::unique_ptr<CurveEvaluator> _eval;