Developer Documentation

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

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

Inheritance diagram for ACG::SceneGraph::ArrowNode:

## Classes
struct | Arrow

## Public Member Functions
| ArrowNode (BaseNode *_parent=0, std::string _name="<ArrowNode>")
| default constructor
| ~ArrowNode ()
| destructor
| ACG_CLASSNAME (ArrowNode)
| static name of this class
DrawModes::DrawMode | availableDrawModes () const
| return available draw modes
void | boundingBox (Vec3d &_bbMin, Vec3d &_bbMax)
| update bounding box
void | reserve (int _n)
| reserve mem for _n arrows
int | addArrow (const Vec3f &_start, const Vec3f &_dir, const Vec3f &_normal=Vec3f(0.0f, 1.0f, 0.0f), const Vec3f &_scale=Vec3f(1.0f, 1.0f, 1.0f), const Vec4uc &_color=Vec4uc(82, 82, 82, 255))
| Add an arrow to the node. More...
int | addArrow (const Vec3f &_start, const Vec3f &_dir, const Vec3f &_normal, const Vec3f &_scale, const Vec4f &_color)
| Add an arrow to the node. More...
int | addArrow (const Vec3d &_start, const Vec3d &_dir, const Vec3d &_normal=Vec3d(0.0, 1.0, 0.0), const Vec3d &_scale=Vec3d(1.0, 1.0, 1.0), const Vec4uc &_color=Vec4uc(82, 82, 82, 255))
| Add an arrow to the node. More...
int | addArrow (const Vec3d &_start, const Vec3d &_dir, const Vec3d &_normal, const Vec3d &_scale, const Vec4f &_color)
| Add an arrow to the node. More...
Vec3f | arrowStart (int _arrowID) const
| Return the start position of an arrow. More...
void | arrowStart (int _arrowID, const Vec3f &_start)
| Set start point of an already added arrow. More...
Vec3f | arrowDir (int _arrowID) const
| Return the direction of an arrow. More...
void | arrowDir (int _arrowID, const Vec3f &_dir)
| Set direction of an already added arrow. More...
Vec3f | arrowNormal (int _arrowID) const
| Return the normal of an arrow. More...
void | arrowNormal (int _arrowID, const Vec3f &_normal)
| Set normal of an already added arrow. More...
Vec3f | arrowScale (int _arrowID) const
| Return the scale of an arrow. More...
void | arrowScale (int _arrowID, const Vec3f &_scale)
| Set the scale of an already added arrow. More...
Vec4uc | arrowColor (int _arrowID) const
| Return the color of an arrow. More...
void | arrowColor (int _arrowID, const Vec4uc &_color)
| Set the color of an already added arrow. More...
void | clear ()
| clear arrows
int | n_arrows () const
| number of arrows
void | draw (GLState &_state, const DrawModes::DrawMode &_drawMode)
| draw arrows
void | getRenderObjects (IRenderer *_renderer, GLState &_state, const DrawModes::DrawMode &_drawMode, const ACG::SceneGraph::Material *_mat)
| Add the objects to the given renderer. More...
Public Member Functions inherited from ACG::SceneGraph::MaterialNode
| MaterialNode (BaseNode *_parent=0, const std::string &_name="<MaterialNode>", unsigned int _applyProperties=(All &~BackFaceCulling))
| Default constructor. Applies all properties.
virtual | ~MaterialNode ()
| Destructor.
void | read (std::istream &_is)
| read MaterialFile
float | alpha_value ()
| get current alpha value for alpha_test
bool | blending ()
GLenum | blending_param1 ()
GLenum | blending_param2 ()
void | enable_blending (GLenum _p1=GL_SRC_ALPHA, GLenum _p2=GL_ONE_MINUS_SRC_ALPHA)
| enable blending with Parameters (_p1, _p2)
void | disable_blending ()
| disable blending
bool | backface_culling ()
void | enable_backface_culling ()
| enable backface culling (not active by default, see applyProperties)
void | disable_backface_culling ()
| disable backface culling (not active by default, see applyProperties)
unsigned int | applyProperties () const
| get properties that will be applied (OR'ed ApplyProperties)
void | applyProperties (unsigned int _applyProperties)
| set properties that will be applied (OR'ed ApplyProperties)
ACG::SceneGraph::Material & | material ()
| Get material object reference.
void | set_material (const ACG::SceneGraph::Material &_m)
| Set material object.
| ACG_CLASSNAME (MaterialNode)
| set current GL-color and GL-material
void | enter (GLState &_state, const DrawModes::DrawMode &_drawmode)
| set current GL-color and GL-material
void | leave (GLState &_state, const DrawModes::DrawMode &_drawmode)
| restores original GL-color and GL-material
void | enterPick (GLState &_state, PickTarget _target, const DrawModes::DrawMode &_drawMode)
| Do nothing in picking.
void | leavePick (GLState &_state, PickTarget _target, const DrawModes::DrawMode &_drawMode)
| Do nothing in picking.
void | set_color (const Vec4f &_c)
| set color (base, ambient, diffuse, specular) based on _c
void | set_random_color ()
| Generates a random color and sets it.
void | set_base_color (const Vec4f &_c)
| set the base color ( Same as set_emission(const Vec4f& _c) )
const Vec4f & | base_color () const
| get the base color ( same as emission() )
void | set_emission (const Vec4f &_c)
| set emission ( same as set_base_color(const Vec4f& _c) )
const Vec4f & | emission () const
| get emission ( same as base_color() )
void | set_ambient_color (const Vec4f &_a)
| set the ambient color.
const Vec4f & | ambient_color () const
| get the ambient color.
void | set_diffuse_color (const Vec4f &_d)
| set the diffuse color.
const Vec4f & | diffuse_color () const
| get the diffuse color.
void | set_specular_color (const Vec4f &_s)
| set the specular color
const Vec4f & | specular_color () const
| get the specular color
void | set_overlay_color (const Vec4f &_s)
| set the overlay color
const Vec4f & | overlay_color () const
| get the overlay color
void | colorMaterial (const bool _cm)
| Set colorMaterial.
void | enable_color_material ()
| Enable Color Material.
void | disable_color_material ()
| Disable Color Material.
bool | colorMaterial ()
| get colorMaterial state
void | set_shininess (float _s)
| set shininess
float | shininess () const
| get shininess
void | set_reflectance (double _m)
| set reflectance
double | reflectance () const
| get reflectance
void | set_indexOfRefraction (double _m)
| set index of refraction
double | indexOfRefraction () const
| get index of refraction
void | set_refractive (bool _r)
| set refractive flag
bool | isRefractive () const
| get refractive flag
void | set_point_size (float _sz)
| set point size (default: 1.0)
float | point_size () const
| get point size
void | set_line_width (float _sz)
| set line width (default: 1.0)
float | line_width () const
| get line width
void | set_round_points (bool _b)
| set round points enabled
bool | round_points () const
| get round points enabled
void | set_line_smooth (bool _b)
| set: smooth lines enabled
bool | line_smooth () const
| get: rsmooth lines enabled
void | enable_alpha_test (float _clip)
| enable alpha test (draw pixels if alpha >= _clip)
void | disable_alpha_test ()
| disable alpha test
bool | alpha_test ()
| Return state of Alpha test.
void | enable_multisampling ()
| Enable Multisampling.
void | disable_multisampling ()
| enable alpha test (draw pixels if alpha >= _clip)
bool | multiSampling ()
| Get state of multisampling.
void | set_multisampling (bool _state)
| Set state of multisampling.
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 | 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 Member Functions
void | createArrowMesh ()
GLMatrixf | computeWorldMatrix (int _arrow) const
GLMatrixf | readWorldMatrix (int _arrow) const
void | updateInstanceData ()
void | updateInstanceBuffer ()
int | instanceDataOffset (int _arrow) const
int | instanceDataSize () const

## Private Attributes
std::vector< Arrow > | arrows_
int | numVertices_
int | numIndices_
GeometryBuffer | vertexBuffer_
IndexBuffer | indexBuffer_
VertexDeclaration | vertexDecl_
Vec3f | localArrowMin_
Vec3f | localArrowMax_
std::vector< float > | instanceData_
GeometryBuffer | instanceBuffer_
VertexDeclaration | vertexDeclInstanced_
bool | invalidateInstanceData_
bool | invalidateInstanceBuffer_
int | supportsInstancing_

## Additional Inherited Members
Public Types inherited from ACG::SceneGraph::MaterialNode
enum | ApplyProperties { None =0, All =0xffff, BaseColor =1, Material =2, PointSize =4, LineWidth =8, RoundPoints =16, LineSmooth =32, AlphaTest =64, Blending =128, BackFaceCulling =256, ColorMaterial =512, MultiSampling =1024 }
| Apply which properties? Others will be ignored. Values may be OR'ed. More...
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

ArrowNode renders a set of arrows.

Definition at line 78 of file ArrowNode.hh.

## Member Function Documentation

## ◆ addArrow() [1/4]

int ACG::SceneGraph::ArrowNode::addArrow | ( | const Vec3f & | _start,
|  | const Vec3f & | _dir,
|  | const Vec3f & | _normal = `Vec3f(0.0f, 1.0f, 0.0f)`,
|  | const Vec3f & | _scale = `Vec3f(1.0f, 1.0f, 1.0f)`,
|  | const Vec4uc & | _color = `Vec4uc(82, 82, 82, 255)`
| ) |  |

Add an arrow to the node.

Parameters

  _start | Start position of the arrow
  _dir | Direction of the arrow
  _normal | Normal vector on the top surface of the arrow. Gets orthonormalized to _dir internally. If 0 or collinear to _dir, a random normal is chosen.
  _scale | Uniform scaling factor of the arrow. This is also the length of the arrow.
  _color | Arrow color

Returns
  ID of the arrow

Definition at line 374 of file ArrowNode.cc.

## ◆ addArrow() [2/4]

int ACG::SceneGraph::ArrowNode::addArrow | ( | const Vec3f & | _start,
|  | const Vec3f & | _dir,
|  | const Vec3f & | _normal,
|  | const Vec3f & | _scale,
|  | const Vec4f & | _color
| ) |  |

Add an arrow to the node.

Parameters

  _start | Start position of the arrow
  _dir | Direction of the arrow
  _normal | Normal vector on the top surface of the arrow. Gets orthonormalized to _dir internally. If 0 or collinear to _dir, a random normal is chosen.
  _scale | Uniform scaling factor of the arrow. This is also the length of the arrow.
  _color | Arrow color

Returns
  id of the arrow

Definition at line 395 of file ArrowNode.cc.

## ◆ addArrow() [3/4]

int ACG::SceneGraph::ArrowNode::addArrow | ( | const Vec3d & | _start,
|  | const Vec3d & | _dir,
|  | const Vec3d & | _normal = `Vec3d(0.0, 1.0, 0.0)`,
|  | const Vec3d & | _scale = `Vec3d(1.0, 1.0, 1.0)`,
|  | const Vec4uc & | _color = `Vec4uc(82, 82, 82, 255)`
| ) |  |

Add an arrow to the node.

Parameters

  _start | Start position of the arrow
  _dir | Direction of the arrow
  _normal | Normal vector on the top surface of the arrow. Gets orthonormalized to _dir internally. If 0 or collinear to _dir, a random normal is chosen.
  _scale | Uniform scaling factor of the arrow. This is also the length of the arrow.
  _color | Arrow color

Returns
  id of the arrow

Definition at line 428 of file ArrowNode.cc.

## ◆ addArrow() [4/4]

int ACG::SceneGraph::ArrowNode::addArrow | ( | const Vec3d & | _start,
|  | const Vec3d & | _dir,
|  | const Vec3d & | _normal,
|  | const Vec3d & | _scale,
|  | const Vec4f & | _color
| ) |  |

Add an arrow to the node.

Parameters

  _start | Start position of the arrow
  _dir | Direction of the arrow
  _normal | Normal vector on the top surface of the arrow. Gets orthonormalized to _dir internally. If 0 or collinear to _dir, a random normal is chosen.
  _scale | Uniform scaling factor of the arrow. This is also the length of the arrow.
  _color | Arrow color

Returns
  id of the arrow

Definition at line 435 of file ArrowNode.cc.

## ◆ arrowColor() [1/2]

Vec4uc ACG::SceneGraph::ArrowNode::arrowColor | ( | int | _arrowID | ) | const

Return the color of an arrow.

Parameters

  _arrowID | ID of the arrow that was returned by addArrow()

Returns
  Arrow color

Definition at line 580 of file ArrowNode.cc.

## ◆ arrowColor() [2/2]

void ACG::SceneGraph::ArrowNode::arrowColor | ( | int | _arrowID,
|  | const Vec4uc & | _color
| ) |  |

Set the color of an already added arrow.

Parameters

  _arrowID | ID of the arrow that was returned by addArrow()
  _scale | Arrow color

Definition at line 585 of file ArrowNode.cc.

## ◆ arrowDir() [1/2]

Vec3f ACG::SceneGraph::ArrowNode::arrowDir | ( | int | _arrowID | ) | const

Return the direction of an arrow.

Parameters

  _arrowID | ID of the arrow that was returned by addArrow()

Returns
  Direction of the arrow

Definition at line 545 of file ArrowNode.cc.

## ◆ arrowDir() [2/2]

void ACG::SceneGraph::ArrowNode::arrowDir | ( | int | _arrowID,
|  | const Vec3f & | _dir
| ) |  |

Set direction of an already added arrow.

Parameters

  _arrowID | ID of the arrow that was returned by addArrow()
  _dir | Direction of the arrow

Definition at line 550 of file ArrowNode.cc.

## ◆ arrowNormal() [1/2]

Vec3f ACG::SceneGraph::ArrowNode::arrowNormal | ( | int | _arrowID | ) | const

Return the normal of an arrow.

Parameters

  _arrowID | ID of the arrow that was returned by addArrow()

Returns
  Normal of the arrow

Definition at line 557 of file ArrowNode.cc.

## ◆ arrowNormal() [2/2]

void ACG::SceneGraph::ArrowNode::arrowNormal | ( | int | _arrowID,
|  | const Vec3f & | _normal
| ) |  |

Set normal of an already added arrow.

Parameters

  _arrowID | ID of the arrow that was returned by addArrow()
  _dir | Normal of the arrow

Definition at line 562 of file ArrowNode.cc.

## ◆ arrowScale() [1/2]

Vec3f ACG::SceneGraph::ArrowNode::arrowScale | ( | int | _arrowID | ) | const

Return the scale of an arrow.

Scaling vector: width, length, height

Parameters

  _arrowID | ID of the arrow that was returned by addArrow()

Returns
  Arrow scale

Definition at line 569 of file ArrowNode.cc.

## ◆ arrowScale() [2/2]

void ACG::SceneGraph::ArrowNode::arrowScale | ( | int | _arrowID,
|  | const Vec3f & | _scale
| ) |  |

Set the scale of an already added arrow.

Scaling vector: width, length, height

Parameters

  _arrowID | ID of the arrow that was returned by addArrow()
  _scale | Arrow scale

Definition at line 574 of file ArrowNode.cc.

## ◆ arrowStart() [1/2]

Vec3f ACG::SceneGraph::ArrowNode::arrowStart | ( | int | _arrowID | ) | const

Return the start position of an arrow.

Parameters

  _arrowID | ID of the arrow that was returned by addArrow()

Returns
  Start position of the arrow

Definition at line 534 of file ArrowNode.cc.

## ◆ arrowStart() [2/2]

void ACG::SceneGraph::ArrowNode::arrowStart | ( | int | _arrowID,
|  | const Vec3f & | _start
| ) |  |

Set start point of an already added arrow.

Parameters

  _arrowID | ID of the arrow that was returned by addArrow()
  _start | Start position of the arrow

Definition at line 539 of file ArrowNode.cc.

## ◆ getRenderObjects()

void ACG::SceneGraph::ArrowNode::getRenderObjects | ( | IRenderer * | _renderer,
|  | GLState & | _state,
|  | const DrawModes::DrawMode & | _drawMode,
|  | const ACG::SceneGraph::Material * | _mat
| ) |  |

Add the objects to the given renderer.

Parameters

  _renderer | The renderer which will be used. Add your geometry into this class
  _state | The current GL State when this object is called
  _drawMode | The active draw mode
  _mat | Current material

Definition at line 266 of file ArrowNode.cc.

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

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