Overview     Modules     Class Hierarchy     Classes     Members  
tlp::GlCubicBSplineInterpolation Class Reference

#include <GlCubicBSplineInterpolation.h>

Inheritance diagram for tlp::GlCubicBSplineInterpolation:
Collaboration diagram for tlp::GlCubicBSplineInterpolation:

Public Member Functions

 GlCubicBSplineInterpolation (const std::vector< Coord > &pointsToInterpolate, const Color &startColor, const Color &endColor, const float startSize, const float endSize, const unsigned int nbCurvePoints=100)
- Public Member Functions inherited from tlp::GlOpenUniformCubicBSpline
 GlOpenUniformCubicBSpline ()
 GlOpenUniformCubicBSpline (const std::vector< Coord > &controlPoints, const Color &startColor, const Color &endColor, const float startSize, const float endSize, const unsigned int nbCurvePoints=200)
 ~GlOpenUniformCubicBSpline ()
void drawCurve (std::vector< Coord > &controlPoints, const Color &startColor, const Color &endColor, const float startSize, const float endSize, const unsigned int nbCurvePoints=200)
- Public Member Functions inherited from tlp::AbstractGlCurve
 AbstractGlCurve (const std::string &shaderProgramName, const std::string &curveSpecificShaderCode)
 AbstractGlCurve (const std::string &shaderProgramName, const std::string &curveSpecificShaderCode, const std::vector< Coord > &controlPoints, const Color &startColor, const Color &endColor, const float startSize, const float endSize, const unsigned int nbCurvePoints)
virtual ~AbstractGlCurve ()
void draw (float lod, Camera *camera)
void translate (const Coord &move)
virtual void setTexture (const std::string &texture)
virtual void setOutlined (const bool outlined)
virtual void setOutlineColor (const Color &outlineColor)
virtual void setOutlineColorInterpolation (const bool outlineColorInterpolation)
void setLineCurve (const bool lineCurve)
void setCurveLineWidth (const float curveLineWidth)
void setCurveQuadBordersWidth (const float curveQuadBorderWidth)
virtual void setBillboardCurve (const bool billboardCurve)
virtual void setLookDir (const Coord &lookDir)
void getXML (xmlNodePtr rootNode)
void setWithXML (xmlNodePtr rootNode)
- Public Member Functions inherited from tlp::GlSimpleEntity
 GlSimpleEntity ()
virtual ~GlSimpleEntity ()
virtual void acceptVisitor (GlSceneVisitor *visitor)
virtual void setVisible (bool visible)
bool isVisible ()
virtual void setStencil (int stencil)
int getStencil ()
void setCheckByBoundingBoxVisitor (bool check)
bool isCheckByBoundingBoxVisitor ()
virtual BoundingBox getBoundingBox ()
virtual void addLayerParent (GlLayer *)
virtual void removeLayerParent (GlLayer *)
void addParent (GlComposite *composite)
void removeParent (GlComposite *composite)
- Public Member Functions inherited from tlp::GlEntity
virtual ~GlEntity ()

Additional Inherited Members

- Protected Member Functions inherited from tlp::GlOpenUniformCubicBSpline
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)
- Static Protected Member Functions inherited from tlp::AbstractGlCurve
static void buildCurveVertexBuffers (const unsigned int nbCurvePoints, bool vboOk)
- Protected Attributes inherited from tlp::AbstractGlCurve
std::string shaderProgramName
GlShaderProgramcurveShaderProgramNormal
GlShaderProgramcurveShaderProgramBillboard
GlShaderProgramcurveShaderProgram
std::vector< Coord > controlPoints
Color startColor
Color endColor
float startSize
float endSize
unsigned int nbCurvePoints
bool outlined
Color outlineColor
std::string texture
float texCoordFactor
bool billboardCurve
Coord lookDir
bool lineCurve
float curveLineWidth
float curveQuadBordersWidth
bool outlineColorInterpolation
- Static Protected Attributes inherited from tlp::AbstractGlCurve
static std::map< unsigned int,
GLfloat * > 
curveVertexBuffersData
static std::map< unsigned int,
std::vector< GLushort * > > 
curveVertexBuffersIndices
static std::map< unsigned int,
GLuint * > 
curveVertexBuffersObject
static std::map< std::string,
GlShaderProgram * > 
curvesShadersMap
static std::map< std::string,
GlShaderProgram * > 
curvesBillboardShadersMap
static GlShadercurveVertexShaderNormalMain
static GlShadercurveVertexShaderBillboardMain
static GlShaderfisheyeDistortionVertexShader
static bool canUseGeometryShader
static std::map< std::string,
std::pair< GlShaderProgram
*, GlShaderProgram * > > 
curvesGeometryShadersMap
static GlShadercurveVertexGeometryShaderNormalMain
static std::map< std::string,
std::pair< GlShaderProgram
*, GlShaderProgram * > > 
curvesBillboardGeometryShadersMap

Detailed Description

A class to draw a curve interpolating a set of points with C^2 continuity

This class allows to draw a cubic B-spline interpolating a set of points. The resulting curve is C^2 continous, so there is no discontinuities in curvature.

Constructor & Destructor Documentation

tlp::GlCubicBSplineInterpolation::GlCubicBSplineInterpolation ( const std::vector< Coord > &  pointsToInterpolate,
const Color &  startColor,
const Color &  endColor,
const float  startSize,
const float  endSize,
const unsigned int  nbCurvePoints = 100 
)

GlCubicBSplineInterpolation constructor

Parameters
pointsToInterpolatethe set of points to interpolate
startColorthe color at the start of the curve
endColorthe color at the end of the curve
startSizethe width at the start of the curve
endSizethe width at the end of the curve
nbCurvePointsthe number of curve points to generate


Tulip Software by LaBRI Visualization Team    2001 - 2012