All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
TransformedLabelCellModel.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 #include "TransformedCellModelAnchoredLabel.h"
14 
15 #include <string>
16 #include <vector>
17 
18 
19 namespace Eegeo
20 {
21  namespace Labels
22  {
24  {
25  public:
26 
27  static TransformedLabelCellModel* Create(const LabelCellModel& labelCellModel);
28 
30 
31  const IdType& GetId() const;
32 
33  void EnqueueLabels(std::vector<const IAnchoredLabel*>& queue) const;
34 
35  void SetTransform(const m44& transform, const dv3& pivot);
36 
37  private:
38  TransformedLabelCellModel(const LabelCellModel& labelCellModel,
39  std::vector<TransformedCellModelAnchoredLabel>* pTransformedCellModelAnchoredLabels);
40 
41  void UpdateLabels();
42 
43  const LabelCellModel& m_labelCellModel;
44 
45  std::vector<TransformedCellModelAnchoredLabel>* m_pTransformedCellModelAnchoredLabels;
46  };
47  }
48 }