Overview | Modules | Class Hierarchy | Classes | Members
# tlp::GlCatmullRomCurve Class Reference `#include <GlCatmullRomCurve.h>` Inherits tlp::AbstractGlCurve. Inheritance diagram for tlp::GlCatmullRomCurve: [legend] Collaboration diagram for tlp::GlCatmullRomCurve: [legend] List of all members. ## 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. ## 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 void setCurveVertexShaderRenderingSpecificParameters () Coord computeCurvePointOnCPU (const std::vector< Coord > &controlPoints, float t) void computeCurvePointsOnCPU (const std::vector< Coord > &controlPoints, std::vector< Coord > &curvePoints, unsigned int nbCurvePoints) ## 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]`
| Implements tlp::AbstractGlCurve.
void tlp::GlCatmullRomCurve::computeCurvePointsOnCPU | ( | const std::vector< Coord > & | controlPoints,
|  | std::vector< Coord > & | curvePoints,
|  | unsigned int | nbCurvePoints
| ) | `[protected, virtual]`
| Implements tlp::AbstractGlCurve.
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]`
| Reimplemented from tlp::AbstractGlCurve.
void tlp::GlCatmullRomCurve::setClosedCurve | ( | const bool | closedCurve | ) | `[inline]`
void tlp::GlCatmullRomCurve::setCurveVertexShaderRenderingSpecificParameters | ( |  | ) | `[protected, virtual]`
| Reimplemented from tlp::AbstractGlCurve.
void tlp::GlCatmullRomCurve::setParameterizationType | ( | const ParameterizationType | paramType | ) | `[inline]`

Tulip Software by LaBRI Visualization Team 2001 - 2010