Files
rez_demo/sources/GL_STUFF/CURVES/Hermite.hpp

21 lines
513 B
C++
Raw Normal View History

#pragma once
#include "./Curve.hpp"
enum class HermiteModes {
Basic,
Direct,
Cardinal,
TBC
};
class Hermite : public Curve {
private:
vector<glm::vec3> derivatives;
glm::vec3 evaluateCubic(float t, float t1, float t2, glm::vec3 y1, glm::vec3 y2, glm::vec3 dy1, glm::vec3 dy2);
public:
void computeDerivatives(HermiteModes mode, vector<glm::vec3> auxData);
Hermite(vector<glm::vec3> *points, vector<float> *intervals);
glm::vec3 evaluate(float at);
glm::vec3 derivate(float at);
};