All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
LabelAnchorCategory.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Labels.h"
7 #include "Text.h"
8 #include "Fonts.h"
9 #include "LabelLayer.h"
10 
11 #include <string>
12 
13 namespace Eegeo
14 {
15  namespace Labels
16  {
17  namespace LabelPlacement
18  {
19  enum Type
20  {
21  Point,
22  Line
23  };
24  }
25 
27  {
28  public:
29  typedef std::string IdType;
30 
31  static LabelAnchorCategory* Create(const std::string& labelAnchorCategory, LabelLayer::IdType labelLayerId, int minLevel, int maxLevel, LabelPlacement::Type labelPlacement, bool horizonCullAlwaysRequired);
32 
33  const IdType& GetId() const { return m_id; }
34 
35  LabelLayer::IdType GetLabelLayerId() const { return m_labelLayerId; }
36 
37  int GetMinLevel() const { return m_minLevel; }
38 
39  int GetMaxLevel() const { return m_maxLevel; }
40 
41  LabelPlacement::Type GetLabelPlacement() const { return m_labelPlacement; }
42 
43  bool IsHorizonCullAlwaysRequired() const { return m_horizonCullAlwaysRequired; }
44 
45  private:
46  LabelAnchorCategory(const IdType& labelAnchorCategoryId, LabelLayer::IdType labelLayerId, int minLevel, int maxLevel, LabelPlacement::Type labelPlacement, bool horizonCullAlwaysRequired);
47 
48  IdType m_id;
49  LabelLayer::IdType m_labelLayerId;
50  int m_minLevel;
51  int m_maxLevel;
52  LabelPlacement::Type m_labelPlacement;
53  bool m_horizonCullAlwaysRequired;
54  };
55  }
56 }