24 lines
624 B
C++
24 lines
624 B
C++
|
|
#pragma once
|
||
|
|
#include "./Curve.hpp"
|
||
|
|
|
||
|
|
class Bezier : public Curve {
|
||
|
|
private:
|
||
|
|
unsigned int order;
|
||
|
|
protected:
|
||
|
|
float evaluateBasisFunction(float at, int number, int order, float intervalLeft, float intervalRight);
|
||
|
|
public:
|
||
|
|
Bezier(unsigned int order, vector<glm::vec3> *points, vector<float> *intervals);
|
||
|
|
glm::vec3 evaluate(float at);
|
||
|
|
glm::vec3 derivate(float at);
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
class Bezier3Segments : public Bezier {
|
||
|
|
public:
|
||
|
|
Bezier3Segments( vector<glm::vec3>* points, vector<float>* intervals);
|
||
|
|
glm::vec3 evaluate(float at);
|
||
|
|
glm::vec3 derivate(float at);
|
||
|
|
float getLeftBound();
|
||
|
|
float getRightBound();
|
||
|
|
};
|