|
Developer Documentation
|
#include <ACG/Scenegraph/ArrowNode.hh>
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 override |
| return available draw modes | |
| void | boundingBox (Vec3d &_bbMin, Vec3d &_bbMax) override |
| 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) override |
| draw arrows | |
| void | getRenderObjects (IRenderer *_renderer, GLState &_state, const DrawModes::DrawMode &_drawMode, const ACG::SceneGraph::Material *_mat) override |
| 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) override |
| set current GL-color and GL-material | |
| void | leave (GLState &_state, const DrawModes::DrawMode &_drawmode) override |
| restores original GL-color and GL-material | |
| void | enterPick (GLState &_state, PickTarget _target, const DrawModes::DrawMode &_drawMode) override |
| Do nothing in picking. | |
| void | leavePick (GLState &_state, PickTarget _target, const DrawModes::DrawMode &_drawMode) override |
| 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. | |
ArrowNode renders a set of arrows.
Definition at line 78 of file ArrowNode.hh.
| 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.
| _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 |
Definition at line 374 of file ArrowNode.cc.
| 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.
| _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 |
Definition at line 395 of file ArrowNode.cc.
| 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.
| _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 |
Definition at line 428 of file ArrowNode.cc.
| 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.
| _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 |
Definition at line 435 of file ArrowNode.cc.
| Vec4uc ACG::SceneGraph::ArrowNode::arrowColor | ( | int | _arrowID | ) | const |
Return the color of an arrow.
| _arrowID | ID of the arrow that was returned by addArrow() |
Definition at line 580 of file ArrowNode.cc.
| void ACG::SceneGraph::ArrowNode::arrowColor | ( | int | _arrowID, |
| const Vec4uc & | _color | ||
| ) |
Set the color of an already added arrow.
| _arrowID | ID of the arrow that was returned by addArrow() |
| _scale | Arrow color |
Definition at line 585 of file ArrowNode.cc.
| Vec3f ACG::SceneGraph::ArrowNode::arrowDir | ( | int | _arrowID | ) | const |
Return the direction of an arrow.
| _arrowID | ID of the arrow that was returned by addArrow() |
Definition at line 545 of file ArrowNode.cc.
| void ACG::SceneGraph::ArrowNode::arrowDir | ( | int | _arrowID, |
| const Vec3f & | _dir | ||
| ) |
Set direction of an already added arrow.
| _arrowID | ID of the arrow that was returned by addArrow() |
| _dir | Direction of the arrow |
Definition at line 550 of file ArrowNode.cc.
| Vec3f ACG::SceneGraph::ArrowNode::arrowNormal | ( | int | _arrowID | ) | const |
Return the normal of an arrow.
| _arrowID | ID of the arrow that was returned by addArrow() |
Definition at line 557 of file ArrowNode.cc.
| void ACG::SceneGraph::ArrowNode::arrowNormal | ( | int | _arrowID, |
| const Vec3f & | _normal | ||
| ) |
Set normal of an already added arrow.
| _arrowID | ID of the arrow that was returned by addArrow() |
| _dir | Normal of the arrow |
Definition at line 562 of file ArrowNode.cc.
| Vec3f ACG::SceneGraph::ArrowNode::arrowScale | ( | int | _arrowID | ) | const |
Return the scale of an arrow.
Scaling vector: width, length, height
| _arrowID | ID of the arrow that was returned by addArrow() |
Definition at line 569 of file ArrowNode.cc.
| void ACG::SceneGraph::ArrowNode::arrowScale | ( | int | _arrowID, |
| const Vec3f & | _scale | ||
| ) |
Set the scale of an already added arrow.
Scaling vector: width, length, height
| _arrowID | ID of the arrow that was returned by addArrow() |
| _scale | Arrow scale |
Definition at line 574 of file ArrowNode.cc.
| Vec3f ACG::SceneGraph::ArrowNode::arrowStart | ( | int | _arrowID | ) | const |
Return the start position of an arrow.
| _arrowID | ID of the arrow that was returned by addArrow() |
Definition at line 534 of file ArrowNode.cc.
| void ACG::SceneGraph::ArrowNode::arrowStart | ( | int | _arrowID, |
| const Vec3f & | _start | ||
| ) |
Set start point of an already added arrow.
| _arrowID | ID of the arrow that was returned by addArrow() |
| _start | Start position of the arrow |
Definition at line 539 of file ArrowNode.cc.
|
override |
Add the objects to the given renderer.
| _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.