Developer Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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)
 
#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)
 
BaseNodeACG::SceneGraph::find_node (BaseNode *_root, unsigned int _node_idx)
 Find a node in the scene graph. More...
 
BaseNodeACG::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; \
};