All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
BuildingHighlightModel.h
1 #pragma once
2 
3 #include "BuildingHighlights.h"
4 #include "Types.h"
5 #include "VectorMath.h"
6 #include "BuildingInformation.h"
7 
8 #include <array>
9 
10 namespace Eegeo
11 {
12  namespace BuildingHighlights
13  {
15  {
16  public:
18  BuildingHighlightId highlightId,
19  IBuildingHighlightModelChangedEvent& modelChangedEvent,
20  const v4& highlightColor,
21  const std::vector<std::array<float, 2>>& heightRanges,
22  bool shouldCreateView,
23  bool buildingInformationResolved,
24  const BuildingInformation& buildingInformation);
25 
27 
28  BuildingHighlightId GetId() const { return m_highlightId; }
29  IBuildingHighlightModelChangedEvent& GetModelChangedEvent() const { return m_modelChangedEvent; }
30 
31  const v4& GetColor() const { return m_highlightColor; }
32  const std::vector<std::array<float, 2>>& GetHeightRanges() const { return m_heightRanges; }
33  const bool GetShouldCreateView() const { return m_shouldCreateView; }
34 
35  const BuildingInformation& GetBuildingInformation() const { return m_buildingInformation; }
36 
37  void SetColor(const v4& color);
38 
39  void SetHeightRanges(const std::vector<std::array<float, 2>>& heightRanges);
40 
41  void SetBuildingInformation(const BuildingInformation& buildingInformation);
42 
43  bool HasPopulatedBuildingInformation() const;
44  bool IsBuildingInformationResolved() const;
45 
46  private:
47  const BuildingHighlightId m_highlightId;
48  IBuildingHighlightModelChangedEvent& m_modelChangedEvent;
49  v4 m_highlightColor;
50  std::vector<std::array<float, 2>> m_heightRanges;
51  bool m_shouldCreateView;
52  bool m_buildingInformationResolved;
53  BuildingInformation m_buildingInformation;
54  };
55 
56  }
57 }