Developer Documentation
|
Public Types | |
typedef BoxElement | value_type |
typedef BoxElement & | reference |
typedef const BoxElement & | const_reference |
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. | |
Public Member Functions | |
BoxesNode (BaseNode *_parent=nullptr, std::string _name="<BoxesNode>") | |
DrawModes::DrawMode | availableDrawModes () const override |
void | boundingBox (Vec3d &_bbMin, Vec3d &_bbMax) override |
void | clear () |
void | reserve (size_t _n) |
void | push_back (const BoxElement &_v) |
STL conformance. | |
void | getRenderObjects (IRenderer *_renderer, GLState &_state, const DrawModes::DrawMode &_drawMode, const ACG::SceneGraph::Material *_mat) override |
Deferred draw call with shader based renderer. More... | |
void | setScaleFactor (float _val) |
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 | draw (GLState &, const DrawModes::DrawMode &) |
Draw this node using the draw modes _drawMode. More... | |
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... | |
Protected Member Functions | |
void | createVBO () |
creates the vbo only if update was requested | |
Protected Attributes | |
std::vector< BoxElement > | elem_ |
float | scaleFactor_ = 1.0f |
std::vector< std::array< Vec3f, 3 > > | triangles_ |
std::vector< Vec4f > | triangle_colors_ |
GeometryBuffer | geometry_vbo_ |
GeometryBuffer | instance_vbo_ |
bool | updateVBO_ |
ACG::VertexDeclaration | vertexDecl_ |
std::string | boxesNodeName_ |
Definition at line 60 of file BoxesNode.hh.
|
inlineoverridevirtual |
Return a list of available draw modes for this node: should be OR'ed from the items of the enum DrawModeIDs.
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 70 of file BoxesNode.hh.
Compute the bounding box of this node and update the values _bbMin and _bbMax accordingly. Do not initialize _bbMin and _bbMax since they may already store values of previous nodes' bounding box computation.
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 103 of file BoxesNode.cc.
|
overridevirtual |
Deferred draw call with shader based renderer.
The renderer calls this function to collect the geometry that should be rendered from the nodes.
Add any renderable geometry to the renderer via _renderer->addRenderObject()
The material is fetched from the last active material node and may be used to setup Renderobjects, but may as well be ignored.
_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 169 of file BoxesNode.cc.