All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ILabelModelService.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Labels.h"
6 #include "VectorMath.h"
7 #include "LabelLayer.h"
8 #include "LabelModel.h"
9 #include "LabelAnchorCategory.h"
10 #include "InteriorId.h"
11 #include <string>
12 
13 namespace Eegeo
14 {
15  namespace Labels
16  {
18  {
20  : labelModelId("")
21  , labelAnchorCategory(NULL)
22  , entityName("")
23  , labelTextUtf8("")
24  , iconKey("")
25  , ecefPosition(dv3::Zero())
26  , anchorOffset(v3::Zero())
27  , interiorId(Resources::Interiors::InteriorId::NullId())
28  , interiorFloorIndex(0)
29  , fitToSurface(false)
30  , subPriority(0)
31  {
32 
33  }
34 
35  LabelModelCreationParams(const std::string& modelId,
36  const Labels::LabelAnchorCategory& anchorCategory,
37  const std::string& entityName,
38  const std::string& textUtf8,
39  const std::string& iconKey,
40  const dv3& ecefPosition,
41  const v3& anchorOffset,
42  int subPriority)
43  : labelModelId(modelId)
44  , labelAnchorCategory(&anchorCategory)
45  , entityName(entityName)
46  , labelTextUtf8(textUtf8)
47  , ecefPosition(ecefPosition)
48  , anchorOffset(anchorOffset)
49  , iconKey(iconKey)
50  , interiorId(Resources::Interiors::InteriorId::NullId())
51  , interiorFloorIndex(0)
52  , fitToSurface(false)
53  , subPriority(subPriority)
54  {
55  }
56 
57  std::string labelModelId;
58  const Labels::LabelAnchorCategory* labelAnchorCategory;
59  std::string entityName;
60  std::string labelTextUtf8;
61  std::string iconKey;
62  dv3 ecefPosition;
63  v3 anchorOffset;
65  int interiorFloorIndex;
66  int subPriority;
67  bool fitToSurface;
68  };
69 
71  {
72  public:
73  virtual ~ILabelModelService() {}
74 
75  virtual LabelLayer::IdType RegisterLayer(const std::string& layerName) = 0;
76 
77  virtual LabelModel::IdType CreateAndAdd(const LabelModelCreationParams& labelParams) = 0;
78  virtual void SetOffsetForLabel(const LabelModel::IdType& id, const v3& offset) = 0;
79  virtual void RemoveAndDestroy(const LabelModel::IdType& labelModelId) = 0;
80  };
81  }
82 }