Developer Documentation
|
Namespaces | |
DrawModes | |
GLSL | |
This namespace contains all the classes and functions for handling GLSL shader and program objects. | |
Typedefs | |
typedef unsigned int | uint |
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. | |
stream replacements | |
These stream provide replacements for clog, cout, and cerr. They have the advantage that they can easily be multiplexed.
| |
OPENMESHDLLEXPORT OpenMesh::mostream & | omlog () |
OPENMESHDLLEXPORT OpenMesh::mostream & | omout () |
OPENMESHDLLEXPORT OpenMesh::mostream & | omerr () |
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] |
const float | axis_length = 0.1f |
This namespace holds the ACG scene graph, all its nodes and helpers.
enum ACG::SceneGraph::PickTarget |
What target to use for picking.
Definition at line 99 of file BaseNode.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 62 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 99 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 83 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 143 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 208 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 260 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 335 of file SceneGraph.hh.
const Vec4f ACG::SceneGraph::colors[4][6] |
Definition at line 84 of file TranslationManipulatorNode.cc.