Files
rez_demo/sources/GL_STUFF/CURVES/NURBS.hpp
beno bbede61723 updated makefile for supporting different target architectures
use "ARCH=arch_name make"

restructured project folder, implementations and headers together under sources/
2026-03-16 00:10:52 +01:00

28 lines
738 B
C++
Executable File

#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();
};