All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
CellModelAnchoredLabel.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 
6 #include "Labels.h"
7 #include "IAnchoredLabel.h"
8 
9 
10 namespace Eegeo
11 {
12  namespace Labels
13  {
14 
16  {
17  public:
18  CellModelAnchoredLabel(const LabelCellModelFeatureContainer& labelCellModelFeatureContainer,
19  const LabelCellModelFeature& labelCellModelFeature);
20 
21  IdType GetId() const;
22 
23  const std::string& GetEntityName() const;
24 
25  const LabelAnchorCategory& GetLabelAnchorCategory() const;
26 
27  void GetShapedGlyphs(std::vector<Text::ShapedGlyph>& out_shapedGlyphs) const;
28 
29  const Icons::IconDefinition* GetIconDefinition() const;
30 
31  dv3 GetEcefAnchorPosition() const;
32 
33  v3 GetAnchorOffset() const;
34 
35  m44 CalcFeatureAlignedAnchorBasisEcef(float environmentFlatteningScale) const;
36 
37  Geometry::AxisAlignedBox2 GetLocalTextBounds() const;
38 
39  float GetConstraintRadiusEcef() const;
40 
41  bool CanCacheAnchorOffset() const { return true; }
42 
43  int GetSubPriority() const;
44 
45  private:
46 
47  const LabelCellModelFeatureContainer& m_labelCellModelFeatureContainer;
48  const LabelCellModelFeature& m_labelCellModelFeature;
49  };
50  }
51 }