All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
SceneGraphCellCallback.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Streaming.h"
6 
7 namespace Eegeo
8 {
9  namespace Streaming
10  {
12  {
13  public:
14  virtual void operator()(const MortonKey& key) = 0;
15  };
16 
17  template <class T> class TSceneGraphCellCallback : public ISceneGraphCellCallback
18  {
19  private:
20  void (T::*m_callback)(const MortonKey& key);
21  T* m_context;
22  public:
23  TSceneGraphCellCallback(T* context, void (T::*callback)(const MortonKey& key))
24  : m_callback(callback)
25  , m_context(context)
26  {
27  }
28 
29  virtual void operator()(const MortonKey& key)
30  {
31  (*m_context.*m_callback)(key);
32  }
33  };
34  }
35 }