sofa::component::visualmodel::OglShader Class Reference

Utility to use shader for a visual model in OpenGL. More...

#include <OglShader.h>

Inheritance diagram for sofa::component::visualmodel::OglShader:

Inheritance graph
[legend]
Collaboration diagram for sofa::component::visualmodel::OglShader:

Collaboration graph
[legend]

Public Member Functions

 OglShader ()
virtual ~OglShader ()
void initVisual ()
 Initialize the textures, or other graphical resources.
void init ()
 Initialization method called at graph modification, during bottom-up traversal.
void reinit ()
 Update method called when variables used in precomputation are modified.
void drawVisual ()
 Display the VisualModel object.
void updateVisual ()
 used to update the model if necessary.
void start ()
 Start the shader.
void stop ()
 Stop the shader.
void addDefineMacro (const std::string &name, const std::string &value)
void setTexture (const char *name, unsigned short unit)
void setInt (const char *name, int i)
void setInt2 (const char *name, int i1, int i2)
void setInt3 (const char *name, int i1, int i2, int i3)
void setInt4 (const char *name, int i1, int i2, int i3, int i4)
void setFloat (const char *name, float f1)
void setFloat2 (const char *name, float f1, float f2)
void setFloat3 (const char *name, float f1, float f2, float f3)
void setFloat4 (const char *name, float f1, float f2, float f3, float f4)
void setIntVector (const char *name, int count, const GLint *i)
void setIntVector2 (const char *name, int count, const GLint *i)
void setIntVector3 (const char *name, int count, const GLint *i)
void setIntVector4 (const char *name, int count, const GLint *i)
void setFloatVector (const char *name, int count, const float *f)
void setFloatVector2 (const char *name, int count, const float *f)
void setFloatVector3 (const char *name, int count, const float *f)
void setFloatVector4 (const char *name, int count, const float *f)
GLint getGeometryInputType ()
void setGeometryInputType (GLint v)
GLint getGeometryOutputType ()
void setGeometryOutputType (GLint v)
GLint getGeometryVerticesOut ()
void setGeometryVerticesOut (GLint v)

Protected Attributes

Data< bool > turnOn
 Activates or not the shader in live.
Data< std::string > vertFilename
 File where vertex shader is defined.
Data< std::string > fragFilename
 File where fragment shader is defined.
Data< std::string > geoFilename
 File where geometry shader is defined.
Data< int > geometryInputType
 Describes the input type of primitive if geometry shader is used.
Data< int > geometryOutputType
 Describes the output type of primitive if geometry shader is used.
Data< int > geometryVerticesOut
 Describes the number of vertices in output if geometry shader is used.
sofa::helper::gl::GLSLShader m_shader
 OpenGL shader.
bool hasGeometryShader

Detailed Description

Utility to use shader for a visual model in OpenGL.

This class is used to implement shader into Sofa, for visual rendering or for special treatement that needs shader mechanism. The 3 kinds of shaders can be defined : vertex, triangle and fragment. Geometry shader is only available with Nvidia's >8 series and Ati's >2K series.

Definition at line 65 of file OglShader.h.


Constructor & Destructor Documentation

sofa::component::visualmodel::OglShader::OglShader (  ) 

Definition at line 58 of file OglShader.cpp.

sofa::component::visualmodel::OglShader::~OglShader (  )  [virtual]


Member Function Documentation

void sofa::component::visualmodel::OglShader::addDefineMacro ( const std::string &  name,
const std::string &  value 
)

void sofa::component::visualmodel::OglShader::drawVisual (  )  [virtual]

Display the VisualModel object.

Reimplemented from sofa::core::VisualModel.

Definition at line 145 of file OglShader.cpp.

GLint sofa::component::visualmodel::OglShader::getGeometryInputType (  ) 

GLint sofa::component::visualmodel::OglShader::getGeometryOutputType (  ) 

GLint sofa::component::visualmodel::OglShader::getGeometryVerticesOut (  ) 

void sofa::component::visualmodel::OglShader::init ( void   )  [virtual]

Initialization method called at graph modification, during bottom-up traversal.

Reimplemented from sofa::core::objectmodel::BaseObject.

Definition at line 78 of file OglShader.cpp.

void sofa::component::visualmodel::OglShader::initVisual (  )  [virtual]

void sofa::component::visualmodel::OglShader::reinit (  )  [virtual]

Update method called when variables used in precomputation are modified.

Reimplemented from sofa::core::objectmodel::BaseObject.

Definition at line 83 of file OglShader.cpp.

References hasGeometryShader.

void sofa::component::visualmodel::OglShader::setFloat ( const char *  name,
float  f1 
)

void sofa::component::visualmodel::OglShader::setFloat2 ( const char *  name,
float  f1,
float  f2 
)

void sofa::component::visualmodel::OglShader::setFloat3 ( const char *  name,
float  f1,
float  f2,
float  f3 
)

void sofa::component::visualmodel::OglShader::setFloat4 ( const char *  name,
float  f1,
float  f2,
float  f3,
float  f4 
)

void sofa::component::visualmodel::OglShader::setFloatVector ( const char *  name,
int  count,
const float *  f 
)

void sofa::component::visualmodel::OglShader::setFloatVector2 ( const char *  name,
int  count,
const float *  f 
)

void sofa::component::visualmodel::OglShader::setFloatVector3 ( const char *  name,
int  count,
const float *  f 
)

void sofa::component::visualmodel::OglShader::setFloatVector4 ( const char *  name,
int  count,
const float *  f 
)

void sofa::component::visualmodel::OglShader::setGeometryInputType ( GLint  v  ) 

Definition at line 284 of file OglShader.cpp.

References m_shader, and sofa::helper::gl::GLSLShader::SetGeometryInputType().

Referenced by initVisual().

void sofa::component::visualmodel::OglShader::setGeometryOutputType ( GLint  v  ) 

Definition at line 293 of file OglShader.cpp.

References m_shader, and sofa::helper::gl::GLSLShader::SetGeometryOutputType().

Referenced by initVisual().

void sofa::component::visualmodel::OglShader::setGeometryVerticesOut ( GLint  v  ) 

Definition at line 303 of file OglShader.cpp.

References m_shader, and sofa::helper::gl::GLSLShader::SetGeometryVerticesOut().

Referenced by initVisual().

void sofa::component::visualmodel::OglShader::setInt ( const char *  name,
int  i 
)

void sofa::component::visualmodel::OglShader::setInt2 ( const char *  name,
int  i1,
int  i2 
)

void sofa::component::visualmodel::OglShader::setInt3 ( const char *  name,
int  i1,
int  i2,
int  i3 
)

void sofa::component::visualmodel::OglShader::setInt4 ( const char *  name,
int  i1,
int  i2,
int  i3,
int  i4 
)

void sofa::component::visualmodel::OglShader::setIntVector ( const char *  name,
int  count,
const GLint *  i 
)

void sofa::component::visualmodel::OglShader::setIntVector2 ( const char *  name,
int  count,
const GLint *  i 
)

void sofa::component::visualmodel::OglShader::setIntVector3 ( const char *  name,
int  count,
const GLint *  i 
)

void sofa::component::visualmodel::OglShader::setIntVector4 ( const char *  name,
int  count,
const GLint *  i 
)

void sofa::component::visualmodel::OglShader::setTexture ( const char *  name,
unsigned short  unit 
)

void sofa::component::visualmodel::OglShader::start (  )  [virtual]

void sofa::component::visualmodel::OglShader::stop (  )  [virtual]

void sofa::component::visualmodel::OglShader::updateVisual (  )  [virtual]

used to update the model if necessary.

Reimplemented from sofa::core::VisualModel.

Definition at line 162 of file OglShader.cpp.


Field Documentation

File where fragment shader is defined.

Definition at line 73 of file OglShader.h.

Referenced by initVisual().

File where geometry shader is defined.

Definition at line 75 of file OglShader.h.

Referenced by initVisual().

Describes the input type of primitive if geometry shader is used.

Definition at line 78 of file OglShader.h.

Referenced by initVisual().

Describes the output type of primitive if geometry shader is used.

Definition at line 80 of file OglShader.h.

Referenced by initVisual().

Describes the number of vertices in output if geometry shader is used.

Definition at line 82 of file OglShader.h.

Referenced by initVisual().

Definition at line 87 of file OglShader.h.

Referenced by initVisual(), and reinit().

Activates or not the shader in live.

Definition at line 68 of file OglShader.h.

Referenced by start(), and stop().

File where vertex shader is defined.

Definition at line 71 of file OglShader.h.

Referenced by initVisual().


The documentation for this class was generated from the following files:

Generated on Sun Nov 23 04:21:45 2008 for Sofa by  doxygen 1.5.7.1