1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 03:28:20 +02:00
Beef/BeefySysLib/util/CubicFuncSpline.h
2025-03-28 08:08:33 -04:00

57 lines
812 B
C++

#pragma once
#include "Common.h"
#include "Point.h"
#include <vector>
NS_BF_BEGIN;
class CubicFuncSpline
{
public:
std::vector<PointF> mInputPoints;
float* lagpoly;
float* intpoly;
float* slopes;
protected:
void Lagrange();
void ComputeSplineSlopes();
public:
CubicFuncSpline();
~CubicFuncSpline();
void AddPt(float x, float y);
int GetLength();
void Calculate();
float Evaluate(float x);
};
class CubicUnitFuncSpline
{
public:
std::vector<float> mInputPoints;
float* lagpoly;
float* intpoly;
float* slopes;
protected:
void Lagrange();
void ComputeSplineSlopes();
public:
CubicUnitFuncSpline();
~CubicUnitFuncSpline();
void AddPt(float y);
int GetLength();
void Calculate();
float Evaluate(float x);
};
NS_BF_END;