All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
PrioritisedBlockCoverageTreeList.h
1 // Copyright (c) 2015 eeGeo. All rights reserved.
2 #pragma once
3 
4 #include "Streaming.h"
5 #include "BlockCoverageTree.h"
6 #include "CoverageTreeMinMaxLevel.h"
7 #include <vector>
8 
9 
10 namespace Eegeo
11 {
12  namespace Streaming
13  {
14  namespace BlockCoverageTrees
15  {
17  {
18  BlockCoverageTree* coverageTree;
19  ResourceStreamComponent* resourceStreamComponent;
20 
22  : coverageTree(tree)
23  , resourceStreamComponent(stream) {}
24  };
25 
27  {
28  public:
30 
32 
33  bool HasCoverageFor(const MortonKey& mortonKey, ResourceStreamComponent*& out_resourceStream) const;
34 
35  bool HasCoverageFor(const MortonKey& mortonKey) const;
36 
37  void InsertCoverageTree(BlockCoverageTrees::BlockCoverageTree* coverageTree, ResourceStreamComponent* stream);
38 
39  const CoverageTrees::CoverageTreeMinMaxLevel GetCoverageTreeMinMaxLevels() const;
40 
41  const bool IsEmpty() const;
42 
43  private:
44 
45  int m_lowestLevel;
46  int m_highestLevel;
47 
48  std::vector<StoreCoverageEntry> m_storeCoverageEntries;
49  };
50  }
51  }
52 }