updated makefile for supporting different target architectures
use "ARCH=arch_name make" restructured project folder, implementations and headers together under sources/
This commit is contained in:
28
sources/GL_STUFF/CURVES/NURBS.hpp
Executable file
28
sources/GL_STUFF/CURVES/NURBS.hpp
Executable file
@@ -0,0 +1,28 @@
|
||||
#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();
|
||||
};
|
||||
Reference in New Issue
Block a user