Overview     Modules     Class Hierarchy     Classes     Members  

#include <AbstractGlCurve.h>

Inheritance diagram for tlp::AbstractGlCurve:
Collaboration diagram for tlp::AbstractGlCurve:

List of all members.

Public Member Functions

 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)
virtual void drawCurve (std::vector< Coord > &controlPoints, const Color &startColor, const Color &endColor, const float startSize, const float endSize, const unsigned int nbCurvePoints=100)
- 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 ()

Protected Member Functions

virtual void setCurveVertexShaderRenderingSpecificParameters ()
virtual void cleanupAfterCurveVertexShaderRendering ()
virtual Coord computeCurvePointOnCPU (const std::vector< Coord > &controlPoints, float t)=0
virtual void computeCurvePointsOnCPU (const std::vector< Coord > &controlPoints, std::vector< Coord > &curvePoints, unsigned int nbCurvePoints)=0
void initShader (const std::string &shaderProgramName, const std::string &curveSpecificShaderCode)

Static Protected Member Functions

static void buildCurveVertexBuffers (const unsigned int nbCurvePoints, bool vboOk)

Protected Attributes

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
- Protected Attributes inherited from tlp::GlSimpleEntity
bool visible
int stencil
bool checkByBoundingBoxVisitor
BoundingBox boundingBox
std::vector< GlComposite * > parents

Static Protected Attributes

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

Constructor & Destructor Documentation

tlp::AbstractGlCurve::AbstractGlCurve ( const std::string &  shaderProgramName,
const std::string &  curveSpecificShaderCode 
)
tlp::AbstractGlCurve::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 tlp::AbstractGlCurve::~AbstractGlCurve ( )
virtual

Member Function Documentation

static void tlp::AbstractGlCurve::buildCurveVertexBuffers ( const unsigned int  nbCurvePoints,
bool  vboOk 
)
staticprotected
virtual void tlp::AbstractGlCurve::cleanupAfterCurveVertexShaderRendering ( )
inlineprotectedvirtual

Reimplemented in tlp::GlBezierCurve.

virtual Coord tlp::AbstractGlCurve::computeCurvePointOnCPU ( const std::vector< Coord > &  controlPoints,
float  t 
)
protectedpure virtual
virtual void tlp::AbstractGlCurve::computeCurvePointsOnCPU ( const std::vector< Coord > &  controlPoints,
std::vector< Coord > &  curvePoints,
unsigned int  nbCurvePoints 
)
protectedpure virtual
void tlp::AbstractGlCurve::draw ( float  lod,
Camera camera 
)
virtual

Draw function

Implements tlp::GlSimpleEntity.

virtual void tlp::AbstractGlCurve::drawCurve ( std::vector< Coord > &  controlPoints,
const Color &  startColor,
const Color &  endColor,
const float  startSize,
const float  endSize,
const unsigned int  nbCurvePoints = 100 
)
virtual
void tlp::AbstractGlCurve::getXML ( xmlNodePtr  rootNode)
virtual

Save the entity in Xml

Implements tlp::GlSimpleEntity.

void tlp::AbstractGlCurve::initShader ( const std::string &  shaderProgramName,
const std::string &  curveSpecificShaderCode 
)
protected
virtual void tlp::AbstractGlCurve::setBillboardCurve ( const bool  billboardCurve)
inlinevirtual
void tlp::AbstractGlCurve::setCurveLineWidth ( const float  curveLineWidth)
inline
void tlp::AbstractGlCurve::setCurveQuadBordersWidth ( const float  curveQuadBorderWidth)
inline
virtual void tlp::AbstractGlCurve::setCurveVertexShaderRenderingSpecificParameters ( )
inlineprotectedvirtual
void tlp::AbstractGlCurve::setLineCurve ( const bool  lineCurve)
inline

If set to true, the curve is drawn as a line and not as a thick quad

virtual void tlp::AbstractGlCurve::setLookDir ( const Coord &  lookDir)
inlinevirtual
virtual void tlp::AbstractGlCurve::setOutlineColor ( const Color &  outlineColor)
inlinevirtual
virtual void tlp::AbstractGlCurve::setOutlineColorInterpolation ( const bool  outlineColorInterpolation)
inlinevirtual

If set to true, the curve quad outlines will have the same colors than the curve quad

virtual void tlp::AbstractGlCurve::setOutlined ( const bool  outlined)
inlinevirtual
virtual void tlp::AbstractGlCurve::setTexture ( const std::string &  texture)
inlinevirtual
void tlp::AbstractGlCurve::setWithXML ( xmlNodePtr  rootNode)
virtual

Load entity with Xml

Implements tlp::GlSimpleEntity.

void tlp::AbstractGlCurve::translate ( const Coord &  )
virtual

virtual fucntion : Translate entity of vector translation

Reimplemented from tlp::GlSimpleEntity.


Member Data Documentation

bool tlp::AbstractGlCurve::billboardCurve
protected
bool tlp::AbstractGlCurve::canUseGeometryShader
staticprotected
std::vector<Coord> tlp::AbstractGlCurve::controlPoints
protected
float tlp::AbstractGlCurve::curveLineWidth
protected
float tlp::AbstractGlCurve::curveQuadBordersWidth
protected
std::map<std::string, std::pair<GlShaderProgram *, GlShaderProgram *> > tlp::AbstractGlCurve::curvesBillboardGeometryShadersMap
staticprotected
std::map<std::string, GlShaderProgram *> tlp::AbstractGlCurve::curvesBillboardShadersMap
staticprotected
std::map<std::string, std::pair<GlShaderProgram *, GlShaderProgram *> > tlp::AbstractGlCurve::curvesGeometryShadersMap
staticprotected
GlShaderProgram* tlp::AbstractGlCurve::curveShaderProgram
protected
GlShaderProgram* tlp::AbstractGlCurve::curveShaderProgramBillboard
protected
GlShaderProgram* tlp::AbstractGlCurve::curveShaderProgramNormal
protected
std::map<std::string, GlShaderProgram *> tlp::AbstractGlCurve::curvesShadersMap
staticprotected
std::map<unsigned int, GLfloat *> tlp::AbstractGlCurve::curveVertexBuffersData
staticprotected
std::map<unsigned int, std::vector<GLushort *> > tlp::AbstractGlCurve::curveVertexBuffersIndices
staticprotected
std::map<unsigned int, GLuint* > tlp::AbstractGlCurve::curveVertexBuffersObject
staticprotected
GlShader* tlp::AbstractGlCurve::curveVertexGeometryShaderNormalMain
staticprotected
GlShader* tlp::AbstractGlCurve::curveVertexShaderBillboardMain
staticprotected
GlShader* tlp::AbstractGlCurve::curveVertexShaderNormalMain
staticprotected
Color tlp::AbstractGlCurve::endColor
protected
float tlp::AbstractGlCurve::endSize
protected
GlShader* tlp::AbstractGlCurve::fisheyeDistortionVertexShader
staticprotected
bool tlp::AbstractGlCurve::lineCurve
protected
Coord tlp::AbstractGlCurve::lookDir
protected
unsigned int tlp::AbstractGlCurve::nbCurvePoints
protected
Color tlp::AbstractGlCurve::outlineColor
protected
bool tlp::AbstractGlCurve::outlineColorInterpolation
protected
bool tlp::AbstractGlCurve::outlined
protected
std::string tlp::AbstractGlCurve::shaderProgramName
protected
Color tlp::AbstractGlCurve::startColor
protected
float tlp::AbstractGlCurve::startSize
protected
float tlp::AbstractGlCurve::texCoordFactor
protected
std::string tlp::AbstractGlCurve::texture
protected


Tulip Software by LaBRI Visualization Team    2001 - 2012