Developer Documentation
|
#include <ACG/Scenegraph/LineNode.hh>
Public Types | |
enum | LineMode { LineSegmentsMode , PolygonMode } |
Line mode: draw line segments (every 2 points) or ONE polyline. More... | |
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 |
![]() | |
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... | |
![]() | |
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 More... | |
typedef std::vector< BaseNode * >::iterator | ChildIter |
allows to iterate over children More... | |
typedef std::vector< BaseNode * >::const_reverse_iterator | ConstChildRIter |
allows to reverse iterate over children More... | |
typedef std::vector< BaseNode * >::reverse_iterator | ChildRIter |
allows to reverse iterate over children More... | |
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. More... | |
typedef unsigned int | MultipassBitMask |
Multipass pass bit mask type. More... | |
Public Member Functions | |
LineNode (LineMode _mode, BaseNode *_parent=0, std::string _name="<LineNode>") | |
default constructor More... | |
~LineNode () | |
destructor More... | |
void | set_line_mode (LineMode _mode) |
set line mode (see LineNode::LineMode) More... | |
ACG_CLASSNAME (LineNode) | |
static name of this class | |
DrawModes::DrawMode | availableDrawModes () const override |
return available draw modes More... | |
void | boundingBox (Vec3d &_bbMin, Vec3d &_bbMax) override |
update bounding box More... | |
void | enter (GLState &_state, const DrawModes::DrawMode &_drawMode) override |
set depth function (needed for lasso selection so that the line can be draw in pseudo-2D) More... | |
void | draw (GLState &_state, const DrawModes::DrawMode &_drawMode) override |
draw lines and normals More... | |
void | drawCompat (GLState &_state, const DrawModes::DrawMode &_drawMode) |
void | leave (GLState &_state, const DrawModes::DrawMode &_drawMode) override |
reset depth function to what it was before enter() More... | |
void | pick (GLState &_state, PickTarget _target) override |
Draw the line using the GL picking name stack. More... | |
void | pickCompat (GLState &_state, PickTarget _target) |
void | reserve_lines (unsigned int _n) |
reserve mem for _n lines More... | |
void | reserve_points (unsigned int _n) |
reserve mem for _n points More... | |
void | clear () |
clear points/lines and colors More... | |
void | clear_points () |
clear points/lines More... | |
void | clear_colors () |
clear colors More... | |
void | set_color (const Vec4f &_c) |
Override material node's set color function in order to locally add color. More... | |
void | add_point (const Vec3d &_v) |
add point (for LineMode == PolygonMode) More... | |
void | add_line (const Vec3d &_v0, const Vec3d &_v1) |
add line (for LineMode == LineSegmentsMode) More... | |
void | add_color (const ACG::Vec3uc &_c) |
add color (only for LineMode == LineSegmentsMode) More... | |
void | add_color (const Color4f _c) |
add color 4f (only for LineMode == LineSegmentsMode) More... | |
void | set_picking_line_width (float _width) |
set line width used by the picking renderer More... | |
float | picking_line_width () const |
get line width used by the picking renderer. Defaults to line_width(). More... | |
size_t | n_points () const |
number of points More... | |
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 More... | |
void | updateVBO () |
void | push_back (const Vec3d &_v) |
STL conformance. More... | |
void | getRenderObjects (IRenderer *_renderer, GLState &_state, const DrawModes::DrawMode &_drawMode, const ACG::SceneGraph::Material *_mat) override |
Add the objects to the given renderer. More... | |
![]() | |
MaterialNode (BaseNode *_parent=0, const std::string &_name="<MaterialNode>", unsigned int _applyProperties=(All &~BackFaceCulling)) | |
Default constructor. Applies all properties. More... | |
virtual | ~MaterialNode () |
Destructor. More... | |
void | read (std::istream &_is) |
read MaterialFile More... | |
float | alpha_value () |
get current alpha value for alpha_test More... | |
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) More... | |
void | disable_blending () |
disable blending More... | |
bool | backface_culling () |
void | enable_backface_culling () |
enable backface culling (not active by default, see applyProperties) More... | |
void | disable_backface_culling () |
disable backface culling (not active by default, see applyProperties) More... | |
unsigned int | applyProperties () const |
get properties that will be applied (OR'ed ApplyProperties) More... | |
void | applyProperties (unsigned int _applyProperties) |
set properties that will be applied (OR'ed ApplyProperties) More... | |
ACG::SceneGraph::Material & | material () |
Get material object reference. More... | |
void | set_material (const ACG::SceneGraph::Material &_m) |
Set material object. More... | |
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 More... | |
void | leave (GLState &_state, const DrawModes::DrawMode &_drawmode) override |
restores original GL-color and GL-material More... | |
void | enterPick (GLState &_state, PickTarget _target, const DrawModes::DrawMode &_drawMode) override |
Do nothing in picking. More... | |
void | leavePick (GLState &_state, PickTarget _target, const DrawModes::DrawMode &_drawMode) override |
Do nothing in picking. More... | |
void | set_color (const Vec4f &_c) |
set color (base, ambient, diffuse, specular) based on _c More... | |
void | set_random_color () |
Generates a random color and sets it. More... | |
void | set_base_color (const Vec4f &_c) |
set the base color ( Same as set_emission(const Vec4f& _c) ) More... | |
const Vec4f & | base_color () const |
get the base color ( same as emission() ) More... | |
void | set_emission (const Vec4f &_c) |
set emission ( same as set_base_color(const Vec4f& _c) ) More... | |
const Vec4f & | emission () const |
get emission ( same as base_color() ) More... | |
void | set_ambient_color (const Vec4f &_a) |
set the ambient color. More... | |
const Vec4f & | ambient_color () const |
get the ambient color. More... | |
void | set_diffuse_color (const Vec4f &_d) |
set the diffuse color. More... | |
const Vec4f & | diffuse_color () const |
get the diffuse color. More... | |
void | set_specular_color (const Vec4f &_s) |
set the specular color More... | |
const Vec4f & | specular_color () const |
get the specular color More... | |
void | set_overlay_color (const Vec4f &_s) |
set the overlay color More... | |
const Vec4f & | overlay_color () const |
get the overlay color More... | |
void | colorMaterial (const bool _cm) |
Set colorMaterial. More... | |
void | enable_color_material () |
Enable Color Material. More... | |
void | disable_color_material () |
Disable Color Material. More... | |
bool | colorMaterial () |
get colorMaterial state More... | |
void | set_shininess (float _s) |
set shininess More... | |
float | shininess () const |
get shininess More... | |
void | set_reflectance (double _m) |
set reflectance More... | |
double | reflectance () const |
get reflectance More... | |
void | set_indexOfRefraction (double _m) |
set index of refraction More... | |
double | indexOfRefraction () const |
get index of refraction More... | |
void | set_refractive (bool _r) |
set refractive flag More... | |
bool | isRefractive () const |
get refractive flag More... | |
void | set_point_size (float _sz) |
set point size (default: 1.0) More... | |
float | point_size () const |
get point size More... | |
void | set_line_width (float _sz) |
set line width (default: 1.0) More... | |
float | line_width () const |
get line width More... | |
void | set_round_points (bool _b) |
set round points enabled More... | |
bool | round_points () const |
get round points enabled More... | |
void | set_line_smooth (bool _b) |
set: smooth lines enabled More... | |
bool | line_smooth () const |
get: rsmooth lines enabled More... | |
void | enable_alpha_test (float _clip) |
enable alpha test (draw pixels if alpha >= _clip) More... | |
void | disable_alpha_test () |
disable alpha test More... | |
bool | alpha_test () |
Return state of Alpha test. More... | |
void | enable_multisampling () |
Enable Multisampling. More... | |
void | disable_multisampling () |
enable alpha test (draw pixels if alpha >= _clip) More... | |
bool | multiSampling () |
Get state of multisampling. More... | |
void | set_multisampling (bool _state) |
Set state of multisampling. More... | |
![]() | |
BaseNode (BaseNode *_parent=0, std::string _name="<unknown>") | |
Default constructor. More... | |
BaseNode (BaseNode *_parent, BaseNode *_child, std::string _name="<unknown>") | |
Put this node between _parent and _child. More... | |
virtual | ~BaseNode () |
Destructor. More... | |
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 DrawModes::DrawMode | availableDrawModes () const |
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) More... | |
void | setDirty (bool _dirty=true) |
mark node for redrawn More... | |
bool | isDirty () const |
Check if node should be redrawn. More... | |
ChildIter | childrenBegin () |
Returns: begin-iterator of children. More... | |
ConstChildIter | childrenBegin () const |
Same but cont . More... | |
ChildIter | childrenEnd () |
Returns: end-iterator of children. More... | |
ConstChildIter | childrenEnd () const |
Same but const . More... | |
ChildRIter | childrenRBegin () |
Returns: reverse begin-iterator of children. More... | |
ConstChildRIter | childrenRBegin () const |
Same but const. More... | |
ChildRIter | childrenREnd () |
Returns: reverse end-iterator of children. More... | |
ConstChildRIter | childrenREnd () const |
Same but const . More... | |
void | push_back (BaseNode *_node) |
Insert _node at the end of the list of children. More... | |
void | remove (ChildIter _pos) |
size_t | nChildren () const |
number of children More... | |
ChildIter | find (BaseNode *_node) |
BaseNode * | find (const std::string &_name) |
BaseNode * | parent () |
Get the nodes parent node. More... | |
const BaseNode * | parent () const |
Get the nodes parent node. More... | |
void | set_parent (BaseNode *_parent) |
Set the parent of this node. More... | |
StatusMode | status () const |
Get node's status. More... | |
void | set_status (StatusMode _s) |
Set the status of this node. More... | |
void | hide () |
Hide Node: set status to HideNode. More... | |
void | show () |
Show node: set status to Active. More... | |
bool | visible () |
Is node visible (status == Active)? More... | |
bool | hidden () |
Is node not visible (status != Active)? More... | |
std::string | name () const |
Returns: name of node (needs not be unique) More... | |
void | name (const std::string &_name) |
rename a node More... | |
unsigned int | id () const |
DrawModes::DrawMode | drawMode () const |
Return the own draw modes of this node. More... | |
void | drawMode (DrawModes::DrawMode _drawMode) |
unsigned int | traverseMode () const |
Return how the node should be traversed. More... | |
void | setTraverseMode (unsigned int _mode) |
Set traverse mode for node. More... | |
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 | pick_edgesCompat (GLState &_state, unsigned int _offset) |
void | createVBO () |
creates the vbo only if update was requested More... | |
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_ |
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 84 of file LineNode.hh.
Definition at line 89 of file LineNode.hh.
Definition at line 90 of file LineNode.hh.
typedef Color4fVector::iterator ACG::SceneGraph::LineNode::Color4fIter |
Definition at line 98 of file LineNode.hh.
typedef std::vector<Color4f> ACG::SceneGraph::LineNode::Color4fVector |
Definition at line 97 of file LineNode.hh.
typedef ColorVector::iterator ACG::SceneGraph::LineNode::ColorIter |
Definition at line 95 of file LineNode.hh.
typedef std::vector<ACG::Vec3uc> ACG::SceneGraph::LineNode::ColorVector |
Definition at line 94 of file LineNode.hh.
typedef const Vec3d& ACG::SceneGraph::LineNode::const_reference |
Definition at line 206 of file LineNode.hh.
typedef Color4fVector::const_iterator ACG::SceneGraph::LineNode::ConstColor4fIter |
Definition at line 99 of file LineNode.hh.
typedef ColorVector::const_iterator ACG::SceneGraph::LineNode::ConstColorIter |
Definition at line 96 of file LineNode.hh.
typedef PointVector::const_iterator ACG::SceneGraph::LineNode::ConstPointIter |
Definition at line 93 of file LineNode.hh.
typedef PointVector::iterator ACG::SceneGraph::LineNode::PointIter |
Definition at line 92 of file LineNode.hh.
typedef std::vector<Vec3d> ACG::SceneGraph::LineNode::PointVector |
Definition at line 91 of file LineNode.hh.
Definition at line 205 of file LineNode.hh.
Definition at line 204 of file LineNode.hh.
Line mode: draw line segments (every 2 points) or ONE polyline.
Definition at line 102 of file LineNode.hh.
ACG::SceneGraph::LineNode::LineNode | ( | LineMode | _mode, |
BaseNode * | _parent = 0 , |
||
std::string | _name = "<LineNode>" |
||
) |
default constructor
Definition at line 65 of file LineNode.cc.
ACG::SceneGraph::LineNode::~LineNode | ( | ) |
destructor
Definition at line 82 of file LineNode.cc.
void ACG::SceneGraph::LineNode::add_color | ( | const ACG::Vec3uc & | _c | ) |
add color (only for LineMode == LineSegmentsMode)
Definition at line 162 of file LineNode.cc.
void ACG::SceneGraph::LineNode::add_color | ( | const Color4f | _c | ) |
add color 4f (only for LineMode == LineSegmentsMode)
Definition at line 172 of file LineNode.cc.
add line (for LineMode == LineSegmentsMode)
Definition at line 151 of file LineNode.cc.
void ACG::SceneGraph::LineNode::add_point | ( | const Vec3d & | _v | ) |
add point (for LineMode == PolygonMode)
Definition at line 141 of file LineNode.cc.
|
inline |
get and set always on top
Definition at line 198 of file LineNode.hh.
|
overridevirtual |
return available draw modes
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 199 of file LineNode.cc.
update bounding box
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 183 of file LineNode.cc.
void ACG::SceneGraph::LineNode::clear | ( | ) |
clear points/lines and colors
Definition at line 101 of file LineNode.cc.
void ACG::SceneGraph::LineNode::clear_colors | ( | ) |
clear colors
Definition at line 119 of file LineNode.cc.
void ACG::SceneGraph::LineNode::clear_points | ( | ) |
clear points/lines
Definition at line 109 of file LineNode.cc.
|
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 195 of file LineNode.hh.
|
protected |
creates the vbo only if update was requested
Definition at line 410 of file LineNode.cc.
|
overridevirtual |
draw lines and normals
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 226 of file LineNode.cc.
void ACG::SceneGraph::LineNode::drawCompat | ( | GLState & | _state, |
const DrawModes::DrawMode & | _drawMode | ||
) |
Definition at line 66 of file LineNodeGLCompat.cc.
|
overridevirtual |
set depth function (needed for lasso selection so that the line can be draw in pseudo-2D)
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 209 of file LineNode.cc.
|
overridevirtual |
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 |
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 543 of file LineNode.cc.
|
overridevirtual |
reset depth function to what it was before enter()
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 352 of file LineNode.cc.
|
inline |
number of points
Definition at line 181 of file LineNode.hh.
|
overridevirtual |
Draw the line using the GL picking name stack.
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 365 of file LineNode.cc.
|
protected |
Definition at line 403 of file LineNode.cc.
|
protected |
Definition at line 223 of file LineNodeGLCompat.cc.
void ACG::SceneGraph::LineNode::pickCompat | ( | GLState & | _state, |
PickTarget | _target | ||
) |
Definition at line 185 of file LineNodeGLCompat.cc.
|
inline |
get line width used by the picking renderer. Defaults to line_width().
Definition at line 175 of file LineNode.hh.
|
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 188 of file LineNode.hh.
|
inline |
STL conformance.
Definition at line 203 of file LineNode.hh.
|
inline |
reserve mem for _n lines
Definition at line 143 of file LineNode.hh.
|
inline |
reserve mem for _n points
Definition at line 146 of file LineNode.hh.
void ACG::SceneGraph::LineNode::set_color | ( | const Vec4f & | _c | ) |
Override material node's set color function in order to locally add color.
Definition at line 130 of file LineNode.cc.
void ACG::SceneGraph::LineNode::set_line_mode | ( | LineMode | _mode | ) |
set line mode (see LineNode::LineMode)
Definition at line 90 of file LineNode.cc.
|
inline |
set line width used by the picking renderer
Definition at line 173 of file LineNode.hh.
|
inline |
Definition at line 200 of file LineNode.hh.
|
protected |
Definition at line 232 of file LineNode.hh.
|
protected |
Definition at line 231 of file LineNode.hh.
|
protected |
Definition at line 236 of file LineNode.hh.
|
protected |
Definition at line 234 of file LineNode.hh.
|
protected |
Definition at line 247 of file LineNode.hh.
|
protected |
Line width used by the picking renderer. If this is not set (i.e. NAN), line_width() is used instead.
Definition at line 228 of file LineNode.hh.
|
protected |
Definition at line 230 of file LineNode.hh.
|
protected |
Definition at line 237 of file LineNode.hh.
|
protected |
Definition at line 243 of file LineNode.hh.
|
protected |
Definition at line 240 of file LineNode.hh.
|
protected |
Definition at line 245 of file LineNode.hh.