Overview     Modules     Class Hierarchy     Classes     Members  

tlp::GlCatmullRomCurve Class Reference

#include <GlCatmullRomCurve.h>

Inherits tlp::AbstractGlCurve.

Inheritance diagram for tlp::GlCatmullRomCurve:

Inheritance graph
[legend]
Collaboration diagram for tlp::GlCatmullRomCurve:

Collaboration graph
[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

Protected Member Functions


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