mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-10 20:42:21 +02:00
Initial checkin
This commit is contained in:
parent
c74712dad9
commit
078564ac9e
3242 changed files with 1616395 additions and 0 deletions
59
BeefySysLib/util/CubicSpline.h
Normal file
59
BeefySysLib/util/CubicSpline.h
Normal file
|
@ -0,0 +1,59 @@
|
|||
#pragma once
|
||||
|
||||
#include "Common.h"
|
||||
#include "Point.h"
|
||||
#include <vector>
|
||||
|
||||
NS_BF_BEGIN;
|
||||
|
||||
class CubicVal
|
||||
{
|
||||
public:
|
||||
float a,b,c,d; /* a + b*u + c*u^2 +d*u^3 */
|
||||
|
||||
public:
|
||||
CubicVal(float a = 0, float b = 0, float c = 0, float d = 0)
|
||||
{
|
||||
this->a = a;
|
||||
this->b = b;
|
||||
this->c = c;
|
||||
this->d = d;
|
||||
}
|
||||
|
||||
void Set(float a, float b, float c, float d)
|
||||
{
|
||||
this->a = a;
|
||||
this->b = b;
|
||||
this->c = c;
|
||||
this->d = d;
|
||||
}
|
||||
|
||||
/** evaluate cubic */
|
||||
float Evaluate(float u)
|
||||
{
|
||||
return (((d*u) + c)*u + b)*u + a;
|
||||
}
|
||||
};
|
||||
|
||||
class CubicSpline2D
|
||||
{
|
||||
public:
|
||||
std::vector<Point2D> mInputPoints;
|
||||
CubicVal* mXCubicArray;
|
||||
CubicVal* mYCubicArray;
|
||||
|
||||
public:
|
||||
CubicVal* SolveCubic(std::vector<float> vals);
|
||||
|
||||
public:
|
||||
CubicSpline2D();
|
||||
~CubicSpline2D();
|
||||
|
||||
void AddPt(float x, float y);
|
||||
int GetLength();
|
||||
|
||||
void Calculate();
|
||||
Point2D Evaluate(float t);
|
||||
};
|
||||
|
||||
NS_BF_END;
|
Loading…
Add table
Add a link
Reference in a new issue