All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
SceneGraphUpdater.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Streaming.h"
7 
8 namespace Eegeo
9 {
10  namespace Streaming
11  {
13  {
14  private:
15  QuadTreeCube *m_pQuadTreeCube;
16  PayloadPool *m_pPayloadPool;
17 
18  private:
19  int m_numOfPayloadsInserted;
20  int m_totalPayloadsInserted;
21  int m_numOfChildPayloadsEvicted;
22  int m_totalChildPayloadsEvicted;
23 
24  public:
25  int numOfPayloadsInserted() { return m_numOfPayloadsInserted; }
26  int totalPayloadsInserted() { return m_totalPayloadsInserted; }
27  int numOfChildPayloadsEvicted() { return m_numOfChildPayloadsEvicted; }
28  int totalChildPayloadsEvicted() { return m_totalChildPayloadsEvicted; }
29 
30  SceneGraphUpdater(QuadTreeCube *pQuadTreeCube,
31  PayloadPool *pPayloadPool):
32  m_pQuadTreeCube(pQuadTreeCube),
33  m_pPayloadPool(pPayloadPool),
34  m_numOfPayloadsInserted(0),
35  m_totalPayloadsInserted(0),
36  m_numOfChildPayloadsEvicted(0),
37  m_totalChildPayloadsEvicted(0)
38  {}
39 
40  void insertBuiltPayloads(int updateCount);
41 
42 
43  private:
44  void insertBuiltPayloads(QuadTreeNode *pNode, u32 slotsToVisit, u32 slotsToEvict, int updateCount);
45  };
46  }
47 }