Developer Documentation
|
#include <ACG/Scenegraph/MaterialNode.hh>
Public Types | |
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 | |
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... | |
Scenegraph functions | |
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... | |
Color and material settings ( Applied to all objects below this node ) | |
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... | |
Point/Line controls | |
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... | |
Tests | |
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... | |
Other Rendering options | |
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... | |
Private Attributes | |
int | applyProperties_ |
OR'ed ApplyProperties. More... | |
ACG::SceneGraph::Material | material_ |
Local material class that actually stores the properties. More... | |
ACG::SceneGraph::Material | materialBackup_ |
Material Backup. More... | |
Set material and some other stuff like alphatest and blending for this node and all its children. All changes will be done in the enter() method undone in the leave() method.
Definition at line 317 of file MaterialNode.hh.
Apply which properties? Others will be ignored. Values may be OR'ed.
Enumerator | |
---|---|
None | apply nothing |
All | apply all properites |
BaseColor | apply base color |
Material | apply material (ambient, diffuse, specular, shininess) |
PointSize | apply point size |
LineWidth | apply line width |
RoundPoints | draw smooth (round) points using glPoint() |
LineSmooth | draw smooth lines using glLine() |
AlphaTest | use alpha test |
Blending | use blending |
BackFaceCulling | backface culling |
ColorMaterial | Color Material ( Only when a drawmode using shading and lighting is enabled ) |
MultiSampling | MultiSampling. |
Definition at line 322 of file MaterialNode.hh.
ACG::SceneGraph::MaterialNode::MaterialNode | ( | BaseNode * | _parent = 0 , |
const std::string & | _name = "<MaterialNode>" , |
||
unsigned int | _applyProperties = (All & ~BackFaceCulling) |
||
) |
Default constructor. Applies all properties.
Definition at line 162 of file MaterialNode.cc.
|
inlinevirtual |
Destructor.
Definition at line 358 of file MaterialNode.hh.
|
inline |
Return state of Alpha test.
Definition at line 498 of file MaterialNode.hh.
|
inline |
get current alpha value for alpha_test
Definition at line 522 of file MaterialNode.hh.
|
inline |
get the ambient color.
Definition at line 412 of file MaterialNode.hh.
|
inline |
get properties that will be applied (OR'ed ApplyProperties)
Definition at line 546 of file MaterialNode.hh.
|
inline |
set properties that will be applied (OR'ed ApplyProperties)
Definition at line 549 of file MaterialNode.hh.
|
inline |
Definition at line 537 of file MaterialNode.hh.
|
inline |
get the base color ( same as emission() )
Definition at line 402 of file MaterialNode.hh.
|
inline |
Definition at line 524 of file MaterialNode.hh.
|
inline |
Definition at line 526 of file MaterialNode.hh.
|
inline |
Definition at line 527 of file MaterialNode.hh.
|
inline |
get colorMaterial state
Definition at line 436 of file MaterialNode.hh.
|
inline |
Set colorMaterial.
Definition at line 430 of file MaterialNode.hh.
|
inline |
get the diffuse color.
Definition at line 417 of file MaterialNode.hh.
|
inline |
disable alpha test
Definition at line 495 of file MaterialNode.hh.
|
inline |
disable backface culling (not active by default, see applyProperties)
Definition at line 543 of file MaterialNode.hh.
|
inline |
disable blending
Definition at line 535 of file MaterialNode.hh.
|
inline |
Disable Color Material.
Definition at line 434 of file MaterialNode.hh.
|
inline |
enable alpha test (draw pixels if alpha >= _clip)
Definition at line 511 of file MaterialNode.hh.
|
inline |
get emission ( same as base_color() )
Definition at line 407 of file MaterialNode.hh.
|
inline |
enable alpha test (draw pixels if alpha >= _clip)
Definition at line 492 of file MaterialNode.hh.
|
inline |
enable backface culling (not active by default, see applyProperties)
Definition at line 540 of file MaterialNode.hh.
|
inline |
enable blending with Parameters (_p1, _p2)
Definition at line 530 of file MaterialNode.hh.
|
inline |
Enable Color Material.
Definition at line 432 of file MaterialNode.hh.
|
inline |
Enable Multisampling.
Definition at line 508 of file MaterialNode.hh.
|
overridevirtual |
set current GL-color and GL-material
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 173 of file MaterialNode.cc.
|
overridevirtual |
Do nothing in picking.
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 315 of file MaterialNode.cc.
|
inline |
get index of refraction
Definition at line 451 of file MaterialNode.hh.
|
inline |
get refractive flag
Definition at line 456 of file MaterialNode.hh.
|
overridevirtual |
restores original GL-color and GL-material
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 348 of file MaterialNode.cc.
|
overridevirtual |
Do nothing in picking.
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 330 of file MaterialNode.cc.
|
inline |
get: rsmooth lines enabled
Definition at line 482 of file MaterialNode.hh.
|
inline |
get line width
Definition at line 472 of file MaterialNode.hh.
|
inline |
Get material object reference.
Definition at line 554 of file MaterialNode.hh.
|
inline |
Get state of multisampling.
Definition at line 514 of file MaterialNode.hh.
|
inline |
get the overlay color
Definition at line 427 of file MaterialNode.hh.
|
inline |
get point size
Definition at line 467 of file MaterialNode.hh.
void ACG::SceneGraph::MaterialNode::read | ( | std::istream & | _is | ) |
read MaterialFile
Definition at line 455 of file MaterialNode.cc.
|
inline |
get reflectance
Definition at line 446 of file MaterialNode.hh.
|
inline |
get round points enabled
Definition at line 477 of file MaterialNode.hh.
|
inline |
set the ambient color.
Definition at line 410 of file MaterialNode.hh.
|
inline |
set the base color ( Same as set_emission(const Vec4f& _c) )
Definition at line 400 of file MaterialNode.hh.
|
inline |
set color (base, ambient, diffuse, specular) based on _c
Definition at line 390 of file MaterialNode.hh.
|
inline |
set the diffuse color.
Definition at line 415 of file MaterialNode.hh.
|
inline |
set emission ( same as set_base_color(const Vec4f& _c) )
Definition at line 405 of file MaterialNode.hh.
|
inline |
set index of refraction
Definition at line 449 of file MaterialNode.hh.
|
inline |
set: smooth lines enabled
Definition at line 480 of file MaterialNode.hh.
|
inline |
set line width (default: 1.0)
Definition at line 470 of file MaterialNode.hh.
|
inline |
Set material object.
Definition at line 557 of file MaterialNode.hh.
|
inline |
Set state of multisampling.
Definition at line 517 of file MaterialNode.hh.
|
inline |
set the overlay color
Definition at line 425 of file MaterialNode.hh.
|
inline |
set point size (default: 1.0)
Definition at line 465 of file MaterialNode.hh.
|
inline |
Generates a random color and sets it.
Definition at line 395 of file MaterialNode.hh.
|
inline |
set reflectance
Definition at line 444 of file MaterialNode.hh.
|
inline |
set refractive flag
Definition at line 454 of file MaterialNode.hh.
|
inline |
set round points enabled
Definition at line 475 of file MaterialNode.hh.
|
inline |
set shininess
Definition at line 439 of file MaterialNode.hh.
|
inline |
set the specular color
Definition at line 420 of file MaterialNode.hh.
|
inline |
get shininess
Definition at line 441 of file MaterialNode.hh.
|
inline |
get the specular color
Definition at line 422 of file MaterialNode.hh.
|
private |
OR'ed ApplyProperties.
Definition at line 562 of file MaterialNode.hh.
|
private |
Local material class that actually stores the properties.
Definition at line 565 of file MaterialNode.hh.
|
private |
Material Backup.
Definition at line 568 of file MaterialNode.hh.