All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
LabelCellModel.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 
6 #include "Types.h"
7 #include "IAnchoredLabelSource.h"
8 #include "Labels.h"
9 #include "ShapedText.h"
10 #include "VectorMath.h"
11 #include "LabelCellModelFeature.h"
12 #include "LabelCellModelFeatureContainer.h"
13 
14 
15 #include <string>
16 #include <vector>
17 
18 
19 namespace Eegeo
20 {
21  namespace Labels
22  {
24  {
25  public:
26  static LabelCellModel* Create(const IdType& cellModelId,
27  const dv3& originEcef,
28  const v3& upEcef,
29  int cubeFaceIndex,
30  const std::vector<Text::ShapedGlyph>* pShapedGlyphPool,
31  const std::vector<v3>* pAnchorVertexPool,
32  const std::vector<const LabelAnchorCategory*>* pLabelAnchorCategoryPool,
33  const std::vector<LabelCellModelFeature>* pLabelFeaturePool,
34  const std::vector<std::string>* pEntityNames,
35  const std::vector<const Icons::IconDefinition*>* pIconKeys);
36 
37  ~LabelCellModel();
38 
39  const IdType& GetId() const { return m_id; }
40 
41  void EnqueueLabels(std::vector<const IAnchoredLabel*>& labels) const;
42 
43  const std::vector<CellModelAnchoredLabel>& GetAnchoredLabelPool() const { return *m_pAnchoredLabelPool; }
44 
45  private:
46 
47  LabelCellModel(const IdType& cellModelId,
48  const LabelCellModelFeatureContainer* pLabelCellModelFeatureContainer,
49  const std::vector<CellModelAnchoredLabel>* pAnchoredLabelPool
50  );
51 
52  IdType m_id;
53  const LabelCellModelFeatureContainer* m_pLabelCellModelFeatureContainer;
54  const std::vector<CellModelAnchoredLabel>* m_pAnchoredLabelPool;
55 
56  };
57 
58  }
59 }