Overview     Modules     Class Hierarchy     Classes     Members  
tlp::GlBezierCurve Class Reference

A class to draw Bézier curves. More...

#include <GlBezierCurve.h>

Inheritance diagram for tlp::GlBezierCurve:
Collaboration diagram for tlp::GlBezierCurve:

List of all members.

Public Member Functions

Protected Member Functions


Detailed Description

A class to draw Bézier curves.

This class allows to draw Bézier curves defined by an arbitrary number of control points. Bézier curves are named after their inventor, Dr. Pierre Bézier. 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. Bézier curves are widely used in computer graphics to model smooth curves. A Bézier 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.


Constructor & Destructor Documentation

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

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
tlp::GlBezierCurve::~GlBezierCurve ( )

Member Function Documentation

void tlp::GlBezierCurve::cleanupAfterCurveVertexShaderRendering ( ) [protected, virtual]

Reimplemented from tlp::AbstractGlCurve.

Coord tlp::GlBezierCurve::computeCurvePointOnCPU ( const std::vector< Coord > &  controlPoints,
float  t 
) [protected, virtual]

Implements tlp::AbstractGlCurve.

void tlp::GlBezierCurve::computeCurvePointsOnCPU ( const std::vector< Coord > &  controlPoints,
std::vector< Coord > &  curvePoints,
unsigned int  nbCurvePoints 
) [protected, virtual]

Implements tlp::AbstractGlCurve.

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

Reimplemented from tlp::AbstractGlCurve.

std::string tlp::GlBezierCurve::genCurveVertexShaderSpecificCode ( ) [protected]
void tlp::GlBezierCurve::setCurveVertexShaderRenderingSpecificParameters ( ) [protected, virtual]

Reimplemented from tlp::AbstractGlCurve.



Tulip Software by LaBRI Visualization Team    2001 - 2012