Developer Documentation
|
Namespaces | |
DrawModes | |
Enumerations | |
enum | PickTarget { PICK_CELL, PICK_FACE, PICK_EDGE, PICK_VERTEX, PICK_ANYTHING, PICK_FRONT_EDGE, PICK_FRONT_VERTEX, PICK_SPLINE } |
What target to use for picking. More... | |
Functions | |
BaseNode * | find_node (BaseNode *_root, unsigned int _node_idx) |
Find a node in the scene graph. More... | |
BaseNode * | find_hidden_node (BaseNode *_root, unsigned int _node_idx) |
Find a node in the scene graph. More... | |
template<typename Action > | |
enable_if< has_enter< Action, void(Action::*)(BaseNode *) >::value, void >::type | if_has_enter (Action &_action, BaseNode *_node) |
template<typename Action > | |
enable_if<!has_enter< Action, void(Action::*)(BaseNode *) >::value, void >::type | if_has_enter (Action &, BaseNode *) |
template<typename Action > | |
enable_if< has_leave< Action, void(Action::*)(BaseNode *) >::value, void >::type | if_has_leave (Action &_action, BaseNode *_node) |
template<typename Action > | |
enable_if<!has_enter< Action, void(Action::*)(BaseNode *) >::value, void >::type | if_has_leave (Action &, BaseNode *) |
template<class Action > | |
void | traverse (BaseNode *_node, Action &_action) |
template<class Action > | |
void | traverse_all (BaseNode *_node, Action &_action) |
template<class Action > | |
void | traverse_multipass (BaseNode *_node, Action &_action, const unsigned int &_pass) |
template<class Action > | |
void | traverse_multipass (BaseNode *_node, Action &_action, GLState &_state, DrawModes::DrawMode=DrawModes::DEFAULT) |
void | analyzeSceneGraph (ACG::SceneGraph::BaseNode *_root, unsigned int &_maxPasses, ACG::Vec3d &_bbmin, ACG::Vec3d &_bbmax) |
Analyze the SceneGraph <ACG/Scenegraph/SceneGraphAnalysis.hh> More... | |
bool | stripTextureCompare (const Strip &i, const Strip &j) |
Compare function for sorting Strips depending on their texture index. | |
Variables | |
const Vec4f | cylinder_color (0.8f, 0.4f, 0.4f, 1.0f) |
const Vec4f | sphere_color (0.8f, 0.4f, 0.4f, 1.0f) |
const Vec4f | select_color (1.0f, 0.1f, 0.1f, 1.0f) |
const float | SCALE_CONST = 5.0f |
const Vec4f | colors [4][6] |
This namespace holds the ACG scene graph, all its nodes and helpers.
What target to use for picking.
Definition at line 73 of file PickTarget.hh.
ACGDLLEXPORT void ACG::SceneGraph::analyzeSceneGraph | ( | ACG::SceneGraph::BaseNode * | _root, |
unsigned int & | _maxPasses, | ||
ACG::Vec3d & | _bbmin, | ||
ACG::Vec3d & | _bbmax | ||
) |
Analyze the SceneGraph <ACG/Scenegraph/SceneGraphAnalysis.hh>
_root | Root node of the scenegraph |
_maxPasses | Returns the maximal number of render passes |
_bbmin | Returns lower left of the bounding box |
_bbmax | Returns upper right of the bounding box |
Definition at line 56 of file SceneGraphAnalysis.cc.
ACGDLLEXPORT BaseNode * ACG::SceneGraph::find_hidden_node | ( | BaseNode * | _root, |
unsigned int | _node_idx | ||
) |
Find a node in the scene graph.
Traverses scenegraph just like the find_node function, but includes hidden nodes.
Definition at line 93 of file SceneGraph.cc.
Find a node in the scene graph.
Traverse scenegraph starting at _root, looking for a node whose id is _node_idx . Returns 0 if node wasn't found.
_root | The root node where the traversal starts (not necessary the root node of the scenegraph) |
_node_idx | The node index this function should look for |
Definition at line 77 of file SceneGraph.cc.
void ACG::SceneGraph::traverse | ( | BaseNode * | _node, |
Action & | _action | ||
) |
Traverse the scenegraph starting at the node _node
and apply the action _action
to each node. This traversal function will call the enter/leave functions of the action if they have been implemented.
Definition at line 137 of file SceneGraph.hh.
void ACG::SceneGraph::traverse_all | ( | BaseNode * | _node, |
Action & | _action | ||
) |
Traverse the scenegraph exactly like the traverse() function does, but also include hidden nodes.
Definition at line 202 of file SceneGraph.hh.
void ACG::SceneGraph::traverse_multipass | ( | BaseNode * | _node, |
Action & | _action, | ||
const unsigned int & | _pass | ||
) |
Traverse the scenegraph starting at the node _node
and apply the action _action
to each node. This traversal function will call the enter/leave functions of the action if they have been implemented. This function traverses the scene graph multiple times if multipass rendering is turned on. GLState holds attributes to control render passes. Attention: Render passes are 1-indexed.
!!! You should ot use this function directly. Use the traverse_multipass function which controls the glstate too. This function will also manage the passes for you!!!
Definition at line 254 of file SceneGraph.hh.
void ACG::SceneGraph::traverse_multipass | ( | BaseNode * | _node, |
Action & | _action, | ||
GLState & | _state, | ||
DrawModes::DrawMode | = DrawModes::DEFAULT |
||
) |
Traverse the scenegraph starting at the node _node
and apply the action action
to each node. When arriving at a node, its BaseNode::enter() function is called, then _action
is applied and the node's children are traversed. After that the BaseNode::leave() method is called. Do this in multiple passes.
You have to initialize glstate before doing this:
In the state you give here use GLState::set_max_render_passes to set the maximum number of renderpasses that should be performed. This is not computed here, as the number only changes if the scenegraph is changed and not for all render calls.
Definition at line 329 of file SceneGraph.hh.
const Vec4f ACG::SceneGraph::colors[4][6] |
Definition at line 80 of file TranslationManipulatorNode.cc.