All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
UnitySceneElementObserver.h
1 #pragma once
2 
3 #include "ISceneElementObserver.h"
4 #include "SceneElement.h"
5 #include "UnityCallbacks.h"
6 
7 namespace Eegeo
8 {
9  namespace Unity
10  {
11  template <class TRenderableType>
12  class UnitySceneElementObserver : public Rendering::Scene::ISceneElementObserver<TRenderableType>
13  {
14  public:
15 
16  UnitySceneElementObserver(const MeshCallbacks& meshCallbacks)
17  : m_meshCallbacks(meshCallbacks)
18  {
19 
20  }
21 
22  private:
23 
24  void OnSceneElementAdded(Rendering::Scene::SceneElement<TRenderableType>& sceneElement) override
25  {
26  m_meshCallbacks.AddMesh(sceneElement.GetName().c_str());
27  }
28 
29  void OnSceneElementRemoved(Rendering::Scene::SceneElement<TRenderableType>& sceneElement) override
30  {
31  m_meshCallbacks.DeleteMesh(sceneElement.GetName().c_str());
32  }
33 
34  const MeshCallbacks& m_meshCallbacks;
35  };
36  }
37 }