Overview     Modules     Class Hierarchy     Classes     Members  

tlp::GlCatmullRomCurve Class Reference

A class to draw a Catmull-Rom curve. More...

#include <GlCatmullRomCurve.h>

Inheritance diagram for tlp::GlCatmullRomCurve:
Collaboration diagram for tlp::GlCatmullRomCurve:

List of all members.

Public Member Functions

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]

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 - 2012