20 #ifndef GLCATMULLROMCURVE_H_ 21 #define GLCATMULLROMCURVE_H_ 25 #include <tulip/AbstractGlCurve.h> 44 enum ParameterizationType { UNIFORM, CHORD_LENGTH, CENTRIPETAL };
63 GlCatmullRomCurve(
const std::vector<Coord> &controlPoints,
const Color &startColor,
64 const Color &endColor,
const float startSize,
const float endSize,
65 const bool closedCurve =
false,
const unsigned int nbCurvePoints = 200,
66 const ParameterizationType paramType = CENTRIPETAL);
70 void setParameterizationType(
const ParameterizationType paramType) {
71 this->paramType = paramType;
74 void drawCurve(std::vector<Coord> &controlPoints,
const Color &startColor,
const Color &endColor,
75 const float startSize,
const float endSize,
76 const unsigned int nbCurvePoints = 200)
override;
78 void setClosedCurve(
const bool closedCurve) {
79 this->closedCurve = closedCurve;
83 void setCurveVertexShaderRenderingSpecificParameters()
override;
85 Coord computeCurvePointOnCPU(
const std::vector<Coord> &controlPoints,
float t)
override;
87 void computeCurvePointsOnCPU(
const std::vector<Coord> &controlPoints,
88 std::vector<Coord> &curvePoints,
89 unsigned int nbCurvePoints)
override;
95 ParameterizationType paramType;
A class to draw a Catmull-Rom curve.