All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
BlockCoverageTree.h
1 // Copyright (c) 2015 eeGeo. All rights reserved.
2 #pragma once
3 
4 #include "BlockCoverageTrees.h"
5 #include "CoverageTreeMinMaxLevel.h"
6 #include "Streaming.h"
7 #include "Types.h"
8 
9 #include <vector>
10 
11 namespace Eegeo
12 {
13  namespace Streaming
14  {
15  namespace BlockCoverageTrees
16  {
18  {
19  public:
22 
23  bool HasCoverageFor(const MortonKey& mortonKey, const int level) const;
24 
25  void AddBlockCoverageTreeForLevelFace(int level, int face, const std::vector<u64>& blocks);
26 
27  const CoverageTrees::CoverageTreeMinMaxLevel GetCoverageTreeMinMaxLevels() const;
28 
29  const bool IsEmpty() const;
30 
31  private:
32  static const int MaxLevel = 15;
33 
34  int m_lowestLevel;
35  int m_highestLevel;
36 
37  BlockCoverageTreeCube* GetOrCreateTreeRootForLevel(int level);
38  BlockCoverageTreeCube* m_treeRootsByLevel[MaxLevel + 1];
39  };
40  }
41  }
42 }