Files

28 lines
738 B
C++
Raw Permalink Normal View History

#pragma once
#include "./Curve.hpp"
enum class NURBSType {
BASIC,
CLAMPED,
CYCLIC
};
class NURBS : public Curve {
private:
unsigned int order;
vector<float>* weights;
vector<unsigned int>* multiplicities;
vector<float>* derivativeBoundaries;
vector<glm::vec3>* derivativePoints;
vector<float>* derivativeWeghts;
glm::vec3 deBoor( float at, int index);
void preliminaryChecks();
public:
NURBS( unsigned int order, vector<glm::vec3>* points, vector<float>* weights, vector<float>* boundaries, vector<unsigned int>* multiplicities);
unsigned int getOrder();
vector<float>* getWeights();
glm::vec3 evaluate(float at);
glm::vec3 derivate(float at);
float getLeftBound();
float getRightBound();
};