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::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 (IRenderer *, GLState &_state, const DrawModes::DrawMode &_drawMode) |
virtual void | leave (IRenderer *, GLState &_state, const DrawModes::DrawMode &_drawMode) |
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... | |
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::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.
|
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 266 of file ArrowNode.cc.