Developer Documentation

Classes | Public Member Functions | Private Attributes | List of all members
ACG::SceneGraph::ShaderNode Class Reference

`#include <ACG/Scenegraph/ShaderNode.hh>`

Inheritance diagram for ACG::SceneGraph::ShaderNode:

## Classes
class | ShaderInfo

## Public Member Functions
| ShaderNode (BaseNode *_parent=0, const std::string &_name="<ShaderNode>")
| Default constructor. Applies all properties.
virtual | ~ShaderNode ()
| Destructor.
| ACG_CLASSNAME (ShaderNode)
void | enter (GLState &, const DrawModes::DrawMode &_drawmode)
| set shader
void | leave (GLState &, const DrawModes::DrawMode &_drawmode)
| disable shader
void | enterPick (GLState &, PickTarget _target, const DrawModes::DrawMode &_drawmode)
| set shader
void | leavePick (GLState &, PickTarget _target, const DrawModes::DrawMode &_drawmode)
| disable shader
void | setShaderDir (std::string _shaderDir)
| Sets the shader dir.
std::string | shaderDir ()
std::string | vertexShaderName (DrawModes::DrawMode _drawmode, bool _pick=false)
std::string | fragmentShaderName (DrawModes::DrawMode _drawmode, bool _pick=false)
void | disableShader (DrawModes::DrawMode _drawmode)
void | setShader (DrawModes::DrawMode _drawmode, const std::string &_vertexShader, const std::string &_fragmentShader, std::string _pickVertexShader="", std::string _pickFragmentShader="")
GLSL::PtrProgram | getShader (DrawModes::DrawMode _drawmode, bool _pick=false)
| Get the shader for the given drawMode.
bool | hasShader (DrawModes::DrawMode _drawmode, bool _pick=false)
| Check if a shader is available for the given drawMode.
DrawModes::DrawMode | availableDrawModes () const
| return available draw modes
Public Member Functions inherited from ACG::SceneGraph::ACG::SceneGraph::BaseNode
| BaseNode (BaseNode *_parent=0, std::string _name="<unknown>")
| Default constructor.
| BaseNode (BaseNode *_parent, BaseNode *_child, std::string _name="<unknown>")
| Put this node between _parent and _child.
virtual | ~BaseNode ()
| Destructor.
void | delete_subtree ()
| Delete the whole subtree of this node. More...
virtual const std::string & | className () const =0
| Return class name (implemented by the ACG_CLASSNAME macro)
virtual void | boundingBox (Vec3d &, Vec3d &)
virtual void | enter (GLState &, const DrawModes::DrawMode &)
virtual void | enter (IRenderer *, GLState &_state, const DrawModes::DrawMode &_drawMode)
virtual void | draw (GLState &, const DrawModes::DrawMode &)
| Draw this node using the draw modes _drawMode. More...
virtual void | getRenderObjects (IRenderer *_renderer, GLState &_state, const DrawModes::DrawMode &_drawMode, const Material *_mat)
| Deferred draw call with shader based renderer. More...
virtual void | leave (GLState &, const DrawModes::DrawMode &)
virtual void | leave (IRenderer *, GLState &_state, const DrawModes::DrawMode &_drawMode)
virtual void | enterPick (GLState &_state, PickTarget _target, const DrawModes::DrawMode &_drawMode)
virtual void | pick (GLState &, PickTarget)
virtual void | leavePick (GLState &_state, PickTarget _target, const DrawModes::DrawMode &_drawMode)
void | enablePicking (bool _enable)
bool | pickingEnabled ()
virtual void | mouseEvent (GLState &, QMouseEvent *)
| Handle mouse event (some interaction, e.g. modeling)
void | setDirty (bool _dirty=true)
| mark node for redrawn
bool | isDirty () const
| Check if node should be redrawn.
ChildIter | childrenBegin ()
| Returns: begin-iterator of children.
ConstChildIter | childrenBegin () const
| Same but `cont`.
ChildIter | childrenEnd ()
| Returns: end-iterator of children.
ConstChildIter | childrenEnd () const
| Same but `const`.
ChildRIter | childrenRBegin ()
| Returns: reverse begin-iterator of children.
ConstChildRIter | childrenRBegin () const
| Same but const.
ChildRIter | childrenREnd ()
| Returns: reverse end-iterator of children.
ConstChildRIter | childrenREnd () const
| Same but `const`.
void | push_back (BaseNode *_node)
| Insert _node at the end of the list of children.
void | remove (ChildIter _pos)
size_t | nChildren () const
| number of children
ChildIter | find (BaseNode *_node)
BaseNode * | find (const std::string &_name)
BaseNode * | parent ()
| Get the nodes parent node.
const BaseNode * | parent () const
| Get the nodes parent node.
void | set_parent (BaseNode *_parent)
| Set the parent of this node. More...
StatusMode | status () const
| Get node's status.
void | set_status (StatusMode _s)
| Set the status of this node.
void | hide ()
| Hide Node: set status to HideNode.
void | show ()
| Show node: set status to Active.
bool | visible ()
| Is node visible (status == Active)?
bool | hidden ()
| Is node not visible (status != Active)?
std::string | name () const
| Returns: name of node (needs not be unique)
void | name (const std::string &_name)
| rename a node
unsigned int | id () const
DrawModes::DrawMode | drawMode () const
| Return the own draw modes of this node.
void | drawMode (DrawModes::DrawMode _drawMode)
unsigned int | traverseMode () const
| Return how the node should be traversed.
void | setTraverseMode (unsigned int _mode)
| Set traverse mode for node.
MultipassBitMask | multipassStatus () const
| Get the current multipass settings for the nodes status functions. More...
void | setMultipassStatus (const MultipassBitMask _passStatus)
| Set multipass settings for the nodes status functions. More...
void | multipassStatusSetActive (const unsigned int _i, bool _active)
| Set multipass status to traverse in a specific pass. More...
bool | multipassStatusActive (const unsigned int _i) const
| Get multipass status to traverse in a specific pass. More...
MultipassBitMask | multipassNode () const
| Get the current multipass settings for the node. More...
void | setMultipassNode (const MultipassBitMask _passNode)
| Set multipass settings for the node. More...
void | multipassNodeSetActive (const unsigned int _i, bool _active)
| Set Node status to traverse in a specific pass. More...
bool | multipassNodeActive (const unsigned int _i) const
| Get Node status to traverse in a specific pass. More...
void | setRenderObjectShaders (const std::string &_vertexShaderFile, const std::string &_geometryShaderFile, const std::string &_fragmentShaderFile, bool _relativePaths=true, DrawModes::DrawModePrimitive _primitiveType=DrawModes::PRIMITIVE_POLYGON)
| Set custom shaders. More...
void | setRenderObjectShaders (const std::string &_vertexShaderFile, const std::string &_tessControlShaderFile, const std::string &_tessEvalShaderFile, const std::string &_geometryShaderFile, const std::string &_fragmentShaderFile, bool _relativePaths=true, DrawModes::DrawModePrimitive _primitiveType=DrawModes::PRIMITIVE_POLYGON)
| Set custom shaders. More...
void | setRenderObjectUniformPool (const GLSL::UniformPool *_pool)
| Set uniforms for shader based rendering. More...
const GLSL::UniformPool * | getRenderObjectUniformPool ()
| Get uniforms for shader based rendering. More...
void | setRenderObjectTexture (int _samplerSlot, GLuint _texId, GLenum _texType=GL_TEXTURE_2D)
| Set textures for shader based rendering. More...
void | setRenderObjectModifier (RenderObjectModifier *_modifier)
| Set modifier for render objects. More...
RenderObjectModifier * | getRenderObjectModifier ()
| Get render-object modifier. More...
void | applyRenderObjectSettings (DrawModes::DrawModePrimitive _primitive, RenderObject *_obj) const
| Set shaders, textures and uniforms as provided by user to a render-object. More...

## Private Attributes
std::string | shaderDir_
std::map< size_t, ShaderInfo > | shaders
std::map< size_t, ShaderInfo > | pickShaders

## Additional Inherited Members
Public Types inherited from ACG::SceneGraph::ACG::SceneGraph::BaseNode
enum | StatusMode { Active = 0x1, HideNode = 0x2, HideChildren = 0x4, HideSubtree = 0x8 }
| Status modi. More...
enum | TraverseMode { NodeFirst = 0x1, ChildrenFirst = 0x2, SecondPass = 0x4 }
| Node traverse types. More...
typedef std::vector< BaseNode * >::const_iterator | ConstChildIter
| allows to iterate over children
typedef std::vector< BaseNode * >::iterator | ChildIter
| allows to iterate over children
typedef std::vector< BaseNode * >::const_reverse_iterator | ConstChildRIter
| allows to reverse iterate over children
typedef std::vector< BaseNode * >::reverse_iterator | ChildRIter
| allows to reverse iterate over children
enum | PASSES { NOPASS = 0, ALLPASSES = 1 << 0, PASS_1 = 1 << 1, PASS_2 = 1 << 2, PASS_3 = 1 << 3, PASS_4 = 1 << 4, PASS_5 = 1 << 5, PASS_6 = 1 << 6, PASS_7 = 1 << 7, PASS_8 = 1 << 8 }
| This enum should be used to enable rendering of a node in different.
typedef unsigned int | MultipassBitMask
| Multipass pass bit mask type.

## Detailed Description

Set shaders for this node and all its children. All changes will be done in the enter() method undonecd ..cd in the leave() method.

Definition at line 81 of file ShaderNode.hh.

## Member Function Documentation

## ◆ disableShader()

void ACG::SceneGraph::ShaderNode::disableShader | ( | DrawModes::DrawMode | _drawmode | ) |

Removes the shader for the given draw mode

Parameters

  _drawmode | Set the drawmode for which the shader should be deactivated

Definition at line 262 of file ShaderNode.cc.

## ◆ setShader()

void ACG::SceneGraph::ShaderNode::setShader | ( | DrawModes::DrawMode | _drawmode,
|  | const std::string & | _vertexShader,
|  | const std::string & | _fragmentShader,
|  | std::string | _pickVertexShader = `""`,
|  | std::string | _pickFragmentShader = `""`
| ) |  |

Sets a Shader for the given draw mode

Parameters

  _drawmode | Set the drawmode for which the shader should be activated
  _vertexShader | filename of the Vertex Shader within the shader directory
  _fragmentShader | filename of the Fragment Shader within the shader directory
  _pickVertexShader | Vertex shader during picking
  _pickFragmentShader | Fragment shader during picking

Definition at line 291 of file ShaderNode.cc.

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

- OpenFlipper/libs_required/ACG/Scenegraph/ShaderNode.hh
- OpenFlipper/libs_required/ACG/Scenegraph/ShaderNode.cc