3 #include "BuildingHighlights.h"
5 #include "IBuildingHighlightService.h"
7 #include "BuildingFootprints.h"
10 #include "EegeoRootDeclarations.h"
18 namespace BuildingHighlights
37 void Destroy(BuildingHighlightId modelId)
override;
39 void Update()
override;
41 bool Exists(BuildingHighlightId modelId)
const override;
47 typedef BuildingFootprints::BuildingFootprintServiceRequestId RequestId;
48 typedef std::vector<std::pair<RequestId, BuildingHighlightId> > TRequestToHighlightStore;
49 typedef std::vector<std::pair<BuildingHighlightId, BuildingInformation>> THighlightToBuildingStore;
53 void ProcessPendingLandmarkResults();
54 void CancelPendingLandmarkInfoForHighlight(BuildingHighlightId highlightId);
58 void CancelPendingFootprintRequestForHighlight(BuildingHighlightId highlightId);
66 BuildingInformation MakeBuildingInformationFromLandmarkMaterialPrefix(
const std::string& landmarkMaterialPrefix)
const;
69 Geometry::Ray MakeSelectionRayFromScreenPoint(
const v2& screenPoint)
const;
78 TRequestToHighlightStore m_pendingRequests;
79 THighlightToBuildingStore m_pendingLandmarkBuildingInfo;
80 std::multimap<std::string, BuildingHighlightId> m_pendingLandmarkPlaceholderMaterialPrefixes;
84 std::unique_ptr<BuildingHighlightModelRepositoryObserver> m_buildingHighlightModelRepositoryObserver;