Developer Documentation

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ACG::SceneGraph::LineNode Class Reference

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

Inheritance diagram for ACG::SceneGraph::LineNode:

## Public Types
enum | LineMode { LineSegmentsMode, PolygonMode }
| Line mode: draw line segments (every 2 points) or ONE polyline.
typedef ACG::Vec3uc | Color
typedef ACG::Vec4f | Color4f
typedef std::vector< Vec3d > | PointVector
typedef PointVector::iterator | PointIter
typedef PointVector::const_iterator | ConstPointIter
typedef std::vector< ACG::Vec3uc > | ColorVector
typedef ColorVector::iterator | ColorIter
typedef ColorVector::const_iterator | ConstColorIter
typedef std::vector< Color4f > | Color4fVector
typedef Color4fVector::iterator | Color4fIter
typedef Color4fVector::const_iterator | ConstColor4fIter
typedef Vec3d | value_type
typedef Vec3d & | reference
typedef const Vec3d & | const_reference
Public Types inherited from ACG::SceneGraph::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::list< BaseNode * > ::const_iterator | ConstChildIter
| allows to iterate over children
typedef std::list< BaseNode * > ::iterator | ChildIter
| allows to iterate over children
typedef std::list< BaseNode * > ::const_reverse_iterator | ConstChildRIter
| allows to reverse iterate over children
typedef std::list< 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.

## Public Member Functions
| LineNode (LineMode _mode, BaseNode *_parent=0, std::string _name="<LineNode>")
| default constructor
| ~LineNode ()
| destructor
void | set_line_mode (LineMode _mode)
| set line mode (see LineNode::LineMode)
| ACG_CLASSNAME (LineNode)
| static name of this class
DrawModes::DrawMode | availableDrawModes () const
| return available draw modes
void | boundingBox (Vec3d &_bbMin, Vec3d &_bbMax)
| update bounding box
void | enter (GLState &_state, const DrawModes::DrawMode &_drawMode)
| set depth function (needed for lasso selection so that the line can be draw in pseudo-2D)
void | draw (GLState &_state, const DrawModes::DrawMode &_drawMode)
| draw lines and normals
void | leave (GLState &_state, const DrawModes::DrawMode &_drawMode)
| reset depth function to what it was before enter()
void | pick (GLState &_state, PickTarget _target)
| Draw the line using the GL picking name stack.
void | reserve_lines (unsigned int _n)
| reserve mem for _n lines
void | reserve_points (unsigned int _n)
| reserve mem for _n points
void | clear ()
| clear points/lines and colors
void | clear_points ()
| clear points/lines
void | clear_colors ()
| clear colors
void | set_color (const Vec4f &_c)
| Override material node's set color function in order to locally add color.
void | add_point (const Vec3d &_v)
| add point (for LineMode == PolygonMode)
void | add_line (const Vec3d &_v0, const Vec3d &_v1)
| add line (for LineMode == LineSegmentsMode)
void | add_color (const ACG::Vec3uc &_c)
| add color (only for LineMode == LineSegmentsMode)
void | add_color (const Color4f _c)
| add color 4f (only for LineMode == LineSegmentsMode)
void | set_picking_line_width (float _width)
| set line width used by the picking renderer
float | picking_line_width () const
| get line width used by the picking renderer. Defaults to line_width().
size_t | n_points () const
| number of points
const PointVector & | points () const
| return reference to point vector More...
ColorVector & | colors ()
| get and set color container More...
bool & | alwaysOnTop ()
| get and set always on top
void | updateVBO ()
void | push_back (const Vec3d &_v)
| STL conformance.
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::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
const Vec4f & | base_color () const
| get the 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_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 | 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 | pick (GLState &, PickTarget)
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...

## Protected Member Functions
void | pick_vertices (GLState &_state)
void | pick_edges (GLState &_state, unsigned int _offset)
void | createVBO ()
| creates the vbo only if update was requested

## Protected Attributes
float | picking_line_width_
PointVector | points_
ColorVector | colors_
Color4fVector | colors4f_
LineMode | line_mode_
bool | draw_always_on_top
GLint | prev_depth_
unsigned int | vbo_
bool | updateVBO_
ACG::VertexDeclaration | vertexDecl_
std::string | lineNodeName_

## Detailed Description

LineNode renders a set of line segments or polylines.

LineNode renders a set of line segments or one connected polyline, depending on the LineMode, that can be set using the set_line_mode(LineMode) method.

Definition at line 90 of file LineNode.hh.

## Member Function Documentation

ColorVector& ACG::SceneGraph::LineNode::colors | ( |  | ) |
| inline

get and set color container

If you change something here, you need to call updateVBO() in order to tell the system, that your data arrays changed

Definition at line 199 of file LineNode.hh.

void ACG::SceneGraph::LineNode::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 581 of file LineNode.cc.

const PointVector& ACG::SceneGraph::LineNode::points | ( |  | ) | const
| inline

return reference to point vector

If you change something here, you need to call updateVBO() in order to tell the system, that your data arrays changed

Definition at line 192 of file LineNode.hh.

## Member Data Documentation

float ACG::SceneGraph::LineNode::picking_line_width_
| protected

Line width used by the picking renderer. If this is not set (i.e. NAN), line_width() is used instead.

Definition at line 231 of file LineNode.hh.

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

- ACG/Scenegraph/LineNode.hh
- ACG/Scenegraph/LineNode.cc