All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
RoadLabelAnchorCategoryMapper.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "IRoadLabelAnchorCategoryMapper.h"
6 #include "Types.h"
7 
8 
9 #include <map>
10 
11 namespace Eegeo
12 {
13  namespace Resources
14  {
15  namespace Roads
16  {
18  {
19  public:
21  Labels::LabelLayer::IdType labelLayerId);
22 
24 
25  const Labels::LabelAnchorCategory* GetAnchorCategory(int cellLevel, const RoadClassification& roadClassification) const;
26 
27  private:
28  typedef std::map<FunctionalRoadClass::Type, Labels::LabelAnchorCategory::IdType> FunctionalRoadClassToAnchorCategoryId;
29 
30  const FunctionalRoadClassToAnchorCategoryId& GetMapForCellLevel(int cellLevel) const;
31  void RegisterLabelAnchorCategories(const FunctionalRoadClassToAnchorCategoryId& frcToAnchorCategoryId, int minLevel, int maxLevel);
32  void UnregisterLabelAnchorCategories(const FunctionalRoadClassToAnchorCategoryId& frcToAnchorCategoryId);
33 
34  FunctionalRoadClassToAnchorCategoryId m_functionalRoadClassToAnchorCategoryIdLod0;
35  FunctionalRoadClassToAnchorCategoryId m_functionalRoadClassToAnchorCategoryIdLod1;
36  FunctionalRoadClassToAnchorCategoryId m_functionalRoadClassToAnchorCategoryIdLod2;
37 
38  Labels::ILabelAnchorCategoryRepository& m_labelAnchorCategoryRepository;
39  const Labels::LabelLayer::IdType m_labelLayerId;
40  };
41  }
42  }
43 }