All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
LabelModelFactory.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "ILabelModelFactory.h"
6 #include "Types.h"
7 #include "Labels.h"
8 #include "Text.h"
9 #include "Icons.h"
10 
11 namespace Eegeo
12 {
13  namespace Labels
14  {
16  {
17  public:
18  LabelModelFactory(ILabelAnchorCategoryRepository& labelAnchorCategoryRepository,
19  const ILabelStyleBindingRepository& labelStyleBindingRepository,
20  const ILabelStyleRepository& labelStyleRepository,
21  ILabelAnchorChangedEvent& labelAnchorChangedEvent);
22 
24 
25  LabelModel* CreatePointLabel(const std::string& labelModelId,
26  const std::string& labelAnchorCategoryId,
27  const std::string& entityName,
28  const std::string& labelTextUtf8,
29  const std::string& iconKey,
30  const dv3& ecefPosition,
31  const v3& anchorOffset,
32  int subPriority);
33 
34  static const Icons::IconDefinition* FindIconDefinitionOrNull(const LabelStyle& labelStyle, const std::string& iconKey);
35  private:
36  const LabelStyle& GetLabelStyle(const LabelAnchorCategory& labelAnchorCategory);
37 
38  ILabelAnchorCategoryRepository& m_labelAnchorCategoryRepository;
39  const ILabelStyleBindingRepository& m_labelStyleBindingRepository;
40  const ILabelStyleRepository& m_labelStyleRepository;
41  ILabelAnchorChangedEvent& m_labelAnchorChangedEvent;
42 
43  Text::ShapedTextBuilder* m_pShapedTextBuilder;
44 
45  };
46  }
47 }