Developer Documentation
|
#include <ACG/Scenegraph/LightSourceNode.hh>
Classes | |
struct | LightSource |
Structure to hold options for one LightSource. More... | |
Public Member Functions | |
LightSourceNode (BaseNode *_parent=0, const std::string &_name="<LightSourceNode>") | |
Default constructor. Applies all properties. More... | |
virtual | ~LightSourceNode () |
Destructor. More... | |
ACG_CLASSNAME (LightSourceNode) | |
void | enter (GLState &_state, const DrawModes::DrawMode &_drawmode) override |
set current Light Sources More... | |
void | leave (GLState &_state, const DrawModes::DrawMode &_drawmode) override |
restores original Light Sources More... | |
void | enable (GLenum _nr) |
enable LightSource _nr More... | |
void | disable (GLenum _nr) |
disable LightSource _nr More... | |
void | set_position (GLenum _nr, Vec4f _pos) |
set position ( _pos = 1) or direction ( _pos = 0) of LightSource More... | |
void | set_position (GLenum _nr, Vec3f _pos) |
set position for Point-LightSource More... | |
void | set_direction (GLenum _nr, Vec3f _pos) |
set direction for directional LightSource More... | |
void | set_ambient_color (GLenum _nr, Vec4f _color) |
set Ambient color for LightSource _nr More... | |
void | set_diffuse_color (GLenum _nr, Vec4f _color) |
set Diffuse color for LightSource _nr More... | |
void | set_specular_color (GLenum _nr, Vec4f _color) |
set Specular color for LightSource _nr More... | |
void | fixed_position (GLenum _nr, bool _state) |
make LightSource fixed or moveable with ModelViewMatrix 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 Member Functions | |
int | gl2index (GLenum _nr) |
return index in vector for GL_LIGHT* More... | |
GLenum | index2gl (int _nr) |
return GL_LIGHT* for light _nr More... | |
void | set_parameters (GLenum _index, LightSource &_light) |
set _light Options in OpenGL for GL_LIGHT::_index More... | |
void | get_parameters (GLenum _index, LightSource &_light) |
get _light Options in OpenGL for GL_LIGHT::_index More... | |
Private Attributes | |
std::vector< LightSource > | lights_ |
store LightSources of this node More... | |
std::vector< LightSource > | lightsSave_ |
save old LightSources More... | |
Additional Inherited Members | |
![]() | |
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... | |
Set LightSources (0 to 7) for this node and all its children.
All changes will be done in the enter() method undone in the leave() method.
Definition at line 85 of file LightSourceNode.hh.
ACG::SceneGraph::LightSourceNode::LightSourceNode | ( | BaseNode * | _parent = 0 , |
const std::string & | _name = "<LightSourceNode>" |
||
) |
Default constructor. Applies all properties.
Definition at line 69 of file LightSourceNode.cc.
|
inlinevirtual |
Destructor.
Definition at line 135 of file LightSourceNode.hh.
|
inline |
disable LightSource _nr
Definition at line 150 of file LightSourceNode.hh.
|
inline |
enable LightSource _nr
Definition at line 146 of file LightSourceNode.hh.
|
overridevirtual |
set current Light Sources
transfer GL-preferences to lightsSave_
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 81 of file LightSourceNode.cc.
|
inline |
make LightSource fixed or moveable with ModelViewMatrix
Definition at line 178 of file LightSourceNode.hh.
|
private |
get _light Options in OpenGL for GL_LIGHT::_index
Definition at line 156 of file LightSourceNode.cc.
|
inlineprivate |
return index in vector for GL_LIGHT*
Definition at line 184 of file LightSourceNode.hh.
|
inlineprivate |
return GL_LIGHT* for light _nr
Definition at line 188 of file LightSourceNode.hh.
|
overridevirtual |
restores original Light Sources
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 120 of file LightSourceNode.cc.
|
inline |
set Ambient color for LightSource _nr
Definition at line 166 of file LightSourceNode.hh.
|
inline |
set Diffuse color for LightSource _nr
Definition at line 170 of file LightSourceNode.hh.
|
inline |
set direction for directional LightSource
Definition at line 162 of file LightSourceNode.hh.
|
private |
set _light Options in OpenGL for GL_LIGHT::_index
Definition at line 136 of file LightSourceNode.cc.
|
inline |
set position for Point-LightSource
Definition at line 158 of file LightSourceNode.hh.
|
inline |
set position ( _pos = 1) or direction ( _pos = 0) of LightSource
Definition at line 154 of file LightSourceNode.hh.
|
inline |
set Specular color for LightSource _nr
Definition at line 174 of file LightSourceNode.hh.
|
private |
store LightSources of this node
Definition at line 200 of file LightSourceNode.hh.
|
private |
save old LightSources
Definition at line 203 of file LightSourceNode.hh.