Developer Documentation

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Classes | Namespaces | Macros | Functions
SceneGraph.hh File Reference
`#include "BaseNode.hh"`
`#include "DrawModes.hh"`
`#include "../Math/VectorT.hh"`
`#include <cfloat>`
`#include <QMouseEvent>`

Go to the source code of this file.

## Classes
struct | ACG::SceneGraph::enable_if< C, T >
struct | ACG::SceneGraph::enable_if< false, T >
class | ACG::SceneGraph::BoundingBoxAction
class | ACG::SceneGraph::MultiPassInfoAction
class | ACG::SceneGraph::FindNodeAction
class | ACG::SceneGraph::CollectDrawModesAction
class | ACG::SceneGraph::CollectActiveDrawModesAction
class | ACG::SceneGraph::SetDrawModesAction
class | ACG::SceneGraph::DrawAction
class | ACG::SceneGraph::PickAction
class | ACG::SceneGraph::MouseEventAction
class | ACG::SceneGraph::CheckDirtyAction

## Namespaces
| ACG
| Namespace providing different geometric functions concerning angles.
| ACG::SceneGraph

## Macros
#define | ACG_SCENEGRAPH_HH
#define | HAS_MEM_FUNC(func)

## Functions
template<typename Action >
enable_if< has_enter< Action, void(Action::*)(BaseNode *) > ::value, void >::type | ACG::SceneGraph::if_has_enter (Action &_action, BaseNode *_node)
template<typename Action >
enable_if<!has_enter< Action, void(Action::*)(BaseNode *) > ::value, void >::type | ACG::SceneGraph::if_has_enter (Action &, BaseNode *)
template<typename Action >
enable_if< has_leave< Action, void(Action::*)(BaseNode *) > ::value, void >::type | ACG::SceneGraph::if_has_leave (Action &_action, BaseNode *_node)
template<typename Action >
enable_if<!has_enter< Action, void(Action::*)(BaseNode *) > ::value, void >::type | ACG::SceneGraph::if_has_leave (Action &, BaseNode *)
template<class Action >
void | ACG::SceneGraph::traverse (BaseNode *_node, Action &_action)
template<class Action >
void | ACG::SceneGraph::traverse_all (BaseNode *_node, Action &_action)
template<class Action >
void | ACG::SceneGraph::traverse_multipass (BaseNode *_node, Action &_action, const unsigned int &_pass)
template<class Action >
void | ACG::SceneGraph::traverse_multipass (BaseNode *_node, Action &_action, GLState &_state, DrawModes::DrawMode=DrawModes::DEFAULT)
BaseNode * | ACG::SceneGraph::find_node (BaseNode *_root, unsigned int _node_idx)
| Find a node in the scene graph. More...
BaseNode * | ACG::SceneGraph::find_hidden_node (BaseNode *_root, unsigned int _node_idx)
| Find a node in the scene graph. More...

## Detailed Description

This file contains the traversal functions used to apply actions to the SceneGraph.

Definition in file SceneGraph.hh.

## Macro Definition Documentation

#define HAS_MEM_FUNC | ( |  | func | ) |

Value:
template<typename T, typename Sign> \
struct has_##func { \
template <typename U, U> struct type_check; \
template <typename _1> static char (& chk(type_check<Sign, &_1::func> *))[1]; \
template <typename > static char (& chk(...))[2]; \
static bool const value = sizeof(chk<T>(0)) == 1; \
};

Definition at line 95 of file SceneGraph.hh.

#define HAS_MEM_FUNC | ( |  | func | ) |

Value:
template<typename T, typename Sign> \
struct has_##func { \
template <typename U, U> struct type_check; \
template <typename _1> static char (& chk(type_check<Sign, &_1::func> *))[1]; \
template <typename > static char (& chk(...))[2]; \
static bool const value = sizeof(chk<T>(0)) == 1; \
};