Number5
Visualisierung 2 Project - Florian Schober (0828151, f.schober@live.com), Andreas Walch (0926780, walch.andreas89@gmail.com)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SceneGraph.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "SimpleMesh.hpp"
4 
9 class SceneGraph : public IdCache<id_t>
10 {
11  typedef set<ISceneObject*> object_list;
12 
17  public:
22  bool const hasSceneChanged() { return m_hasSceneChanged; }
23 
24  public:
29  SceneGraph(Application* app);
33  ~SceneGraph();
34 
41  template<typename t_obj>
42  t_obj& add(t_obj* object)
43  {
44  m_hasSceneChanged = true;
45 
46  m_objects.insert(object);
47  return *object;
48  }
54  void remove(ISceneObject*& object);
55 
60  object_list::iterator begin();
65  object_list::iterator end();
66 
71  void draw(DrawArgs& args);
78  void update(double time, double timeDelta);
79 };
bool const hasSceneChanged()
Definition: SceneGraph.hpp:22
Application * m_app
Definition: SceneGraph.hpp:14
t_obj & add(t_obj *object)
Definition: SceneGraph.hpp:42
void update(double time, double timeDelta)
Definition: SceneGraph.cpp:31
object_list::iterator begin()
Definition: SceneGraph.cpp:22
object_list m_objects
Definition: SceneGraph.hpp:13
object_list::iterator end()
Definition: SceneGraph.cpp:26
bool m_hasSceneChanged
Definition: SceneGraph.hpp:15
void draw(DrawArgs &args)
Definition: SceneGraph.cpp:41
set< ISceneObject * > object_list
Definition: SceneGraph.hpp:11
SceneGraph(Application *app)
Definition: SceneGraph.cpp:4