#pragma once #include #include using namespace std; class Curve { protected: vector *controlPoints; vector *intervalBoundaries; public: Curve(vector *points, vector *boundaries); vector* getControlPoints(); void setControlPoints(vector* points); vector* getIntervalBoundaries(); void setIntervalBoundaries(vector* boundaries); virtual float getLeftBound(); virtual float getRightBound(); virtual glm::vec3 evaluate(float at) = 0; virtual glm::vec3 derivate(float at) = 0; };