All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
BuildingFootprintRepository.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "BuildingFootprints.h"
7 #include "MortonKey.h"
8 
9 #include <vector>
10 #include <map>
11 
12 namespace Eegeo
13 {
14  namespace BuildingFootprints
15  {
17  {
18  public:
19  void Add(const Eegeo::Streaming::MortonKey& cellKey, const BuildingFootprintResource& footprintResource);
20  void Remove(const Eegeo::Streaming::MortonKey& cellKey);
21  bool Contains(const Eegeo::Streaming::MortonKey& cellKey) const;
22  const BuildingFootprintResource* Get(const Eegeo::Streaming::MortonKey& cellKey) const;
23  std::vector<Streaming::MortonKey> OrderedKeys() const;
24  private:
25  typedef std::map<Eegeo::Streaming::MortonKey, const BuildingFootprintResource*, Eegeo::Streaming::MortonKeyCompare> TKeyToResourceMap;
26  TKeyToResourceMap m_footprintResources;
27  };
28  }
29 }