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

35 lines
636 B
C++
Raw Permalink Normal View History

#pragma once
#include "./Curve.hpp"
enum class CurveIterationMode
{
BASIC,
LENGTH
};
class CurveIterator {
private:
Curve *curve;
unsigned int steps;
CurveIterationMode iterationMode;
float estimatedLength;
int basicStepCounter;
float lengthStepCounter;
float leftBound;
float rightBound;
float lastIncrement;
void resetIterator();
void computeLength();
public:
CurveIterator(Curve *curve, unsigned int steps, CurveIterationMode basicOrLength);
void nextStep();
float getStep();
void setProgress(float at);
glm::vec3 evaluation();
glm::vec3 derivation();
Curve* getCurve();
};