#pragma once #include "./Curve.hpp" enum class HermiteModes { Basic, Direct, Cardinal, TBC }; class Hermite : public Curve { private: vector 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 auxData); Hermite(vector *points, vector *intervals); glm::vec3 evaluate(float at); glm::vec3 derivate(float at); };