tlp::GlCatmullRomCurve Class Reference
A class to draw a Catmull-Rom curve.
More...
#include <GlCatmullRomCurve.h>
List of all members.
Public Member Functions
- GlCatmullRomCurve ()
- GlCatmullRomCurve (const std::vector< Coord > &controlPoints, const Color &startColor, const Color &endColor, const float startSize, const float endSize, const bool closedCurve=false, const unsigned int nbCurvePoints=200, const ParameterizationType paramType=CENTRIPETAL)
- ~GlCatmullRomCurve ()
- void setParameterizationType (const ParameterizationType paramType)
- void drawCurve (std::vector< Coord > &controlPoints, const Color &startColor, const Color &endColor, const float startSize, const float endSize, const unsigned int nbCurvePoints=200)
- void setClosedCurve (const bool closedCurve)
Protected Member Functions
Detailed Description
A class to draw a Catmull-Rom curve.
This class allow to draw a Catmull-Rom curve, a smooth curve which passes through all its control points. Catmull-Rom splines are a family of cubic interpolating splines formulated such that the tangent at each control point is calculated using the previous and next control point point of the spline. Catmull-Rom splines have C^1 continuity, local control, and interpolation, but do not lie within the convex hull of their control points.
Constructor & Destructor Documentation
tlp::GlCatmullRomCurve::GlCatmullRomCurve |
( |
|
) |
|
tlp::GlCatmullRomCurve::GlCatmullRomCurve |
( |
const std::vector< Coord > & |
controlPoints, |
|
|
const Color & |
startColor, |
|
|
const Color & |
endColor, |
|
|
const float |
startSize, |
|
|
const float |
endSize, |
|
|
const bool |
closedCurve = false , |
|
|
const unsigned int |
nbCurvePoints = 200 , |
|
|
const ParameterizationType |
paramType = CENTRIPETAL | |
|
) |
| | |
GlCatmullRomCurve constructor
- Parameters:
-
| controlPoints | a vector of control points (size must be greater or equal to 4) |
| 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 |
| closedCurve | if true, the curve will be closed and a bezier segment will be drawn between the last and first control point |
| paramType | curve parameterization type (GlCatmullRomCurve::UNIFORM | GlCatmullRomCurve::CENTRIPETAL | GlCatmullRomCurve::CHORD_LENGTH (default)) |
| nbCurvePoints | the number of curve points to generate |
tlp::GlCatmullRomCurve::~GlCatmullRomCurve |
( |
|
) |
|
Member Function Documentation
Coord tlp::GlCatmullRomCurve::computeCurvePointOnCPU |
( |
const std::vector< Coord > & |
controlPoints, |
|
|
float |
t | |
|
) |
| | [protected, virtual] |
void tlp::GlCatmullRomCurve::computeCurvePointsOnCPU |
( |
const std::vector< Coord > & |
controlPoints, |
|
|
std::vector< Coord > & |
curvePoints, |
|
|
unsigned int |
nbCurvePoints | |
|
) |
| | [protected, virtual] |
void tlp::GlCatmullRomCurve::drawCurve |
( |
std::vector< Coord > & |
controlPoints, |
|
|
const Color & |
startColor, |
|
|
const Color & |
endColor, |
|
|
const float |
startSize, |
|
|
const float |
endSize, |
|
|
const unsigned int |
nbCurvePoints = 200 | |
|
) |
| | [virtual] |
void tlp::GlCatmullRomCurve::setClosedCurve |
( |
const bool |
closedCurve |
) |
[inline] |
void tlp::GlCatmullRomCurve::setCurveVertexShaderRenderingSpecificParameters |
( |
|
) |
[protected, virtual] |
void tlp::GlCatmullRomCurve::setParameterizationType |
( |
const ParameterizationType |
paramType |
) |
[inline] |