Tulip  4.10.0
Better Visualization Through Research
tlp::GlBezierCurve Class Reference

#include <GlBezierCurve.h>

Inherits AbstractGlCurve.

Public Member Functions

 GlBezierCurve (const std::vector< Coord > &controlPoints, const Color &startColor, const Color &endColor, const float &startSize, const float &endSize, const unsigned int nbCurvePoints=200)
 
void drawCurve (std::vector< Coord > &controlPoints, const Color &startColor, const Color &endColor, const float startSize, const float endSize, const unsigned int nbCurvePoints=200)
 

Protected Member Functions

Coord computeCurvePointOnCPU (const std::vector< Coord > &controlPoints, float t)
 
void computeCurvePointsOnCPU (const std::vector< Coord > &controlPoints, std::vector< Coord > &curvePoints, unsigned int nbCurvePoints)
 
std::string genCurveVertexShaderSpecificCode ()
 

Detailed Description

A class to draw Bezier curves.

This class allows to draw Bezier curves defined by an arbitrary number of control points. Bezier curves are named after their inventor, Dr. Pierre Bezier. He was an engineer with the Renault car company and set out in the early 1960's to develop a curve formulation which would lend itself to shape design. Bezier curves are widely used in computer graphics to model smooth curves. A Bezier curve is completely contained in the convex hull of its control points and passes through its first and last control points. The curve is also always tangent to the first and last convex hull polygon segments. In addition, the curve shape tends to follow the polygon shape.

Definition at line 42 of file GlBezierCurve.h.

Constructor & Destructor Documentation

tlp::GlBezierCurve::GlBezierCurve ( const std::vector< Coord > &  controlPoints,
const Color &  startColor,
const Color &  endColor,
const float &  startSize,
const float &  endSize,
const unsigned int  nbCurvePoints = 200 
)

GlBezierCurve constructor.

Parameters
controlPointsa vector of control points (size must be greater or equal to 2)
startColorthe color at the start of the curve
endColorthe color at the end of the curve
startSizethe width at the start of the curve
endSizethe width at the end of the curve
nbCurvePointsthe number of curve points to generate