| #ifndef _RIVE_CUBIC_INTERPOLATOR_SOLVER_HPP_ |
| #define _RIVE_CUBIC_INTERPOLATOR_SOLVER_HPP_ |
| |
| namespace rive |
| { |
| // A helper for finding T based on X value. |
| class CubicInterpolatorSolver |
| { |
| public: |
| void build(float x1, float x2); |
| float getT(float x) const; |
| static float calcBezier(float aT, float aA1, float aA2); |
| |
| private: |
| static constexpr int SplineTableSize = 11; |
| static constexpr float SampleStepSize = 1.0f / (SplineTableSize - 1.0f); |
| float m_values[SplineTableSize]; |
| float m_x1; |
| float m_x2; |
| }; |
| } // namespace rive |
| |
| #endif |