VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
curveSet.h
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2// Copyright 2025-2026 Arnis Lektauers
3#pragma once
4
5#include <cstddef>
6#include <vector>
7
8#include "curve.h"
9
10namespace visutwin::canvas
11{
13 {
14 public:
15 std::vector<Curve> curves;
16
17 CurveSet();
18 explicit CurveSet(size_t numCurves);
19 explicit CurveSet(const std::vector<std::vector<float>>& keys);
20
21 [[nodiscard]] size_t length() const { return curves.size(); }
22
24 [[nodiscard]] CurveType type() const { return _type; }
25
26 Curve& get(size_t index);
27 const Curve& get(size_t index) const;
28
29 std::vector<float> value(float time, std::vector<float> result = {});
30
31 [[nodiscard]] CurveSet clone() const;
32
33 std::vector<float> quantize(size_t precision);
34 std::vector<float> quantizeClamped(size_t precision, float min, float max);
35
36 private:
38 };
39}
std::vector< Curve > curves
Definition curveSet.h:15
Curve & get(size_t index)
Definition curveSet.cpp:43
std::vector< float > quantize(size_t precision)
Definition curveSet.cpp:78
CurveType type() const
Definition curveSet.h:24
void setType(CurveType value)
Definition curveSet.cpp:35
std::vector< float > quantizeClamped(size_t precision, float min, float max)
Definition curveSet.cpp:95
size_t length() const
Definition curveSet.h:21
CurveSet clone() const
Definition curveSet.cpp:65
std::vector< float > value(float time, std::vector< float > result={})
Definition curveSet.cpp:53