Overview | Modules | Class Hierarchy | Classes | Members

Public Member Functions | Protected Member Functions
tlp::GlBezierCurve Class Reference

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

`#include <GlBezierCurve.h>`

Inheritance diagram for tlp::GlBezierCurve:
[legend]
Collaboration diagram for tlp::GlBezierCurve:
[legend]

List of all members.

## Public Member Functions

- 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 ()
- void drawCurve (std::vector< Coord > &controlPoints, const Color &startColor, const Color &endColor, const float startSize, const float endSize, const unsigned int nbCurvePoints=100)

## 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 ()
- void setCurveVertexShaderRenderingSpecificParameters ()
- void cleanupAfterCurveVertexShaderRendering ()

## 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:

  controlPoints | a vector of control points (size must be greater or equal to 2)
  startColor | the color at the start of the curve
  endColor | the color at the end of the curve
  startSize | the width at the start of the curve
  endSize | the width at the end of the curve
  nbCurvePoints | the 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