All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
TransportPositionerMatcher.h
1 #pragma once
2 
3 #include "Transport.h"
4 #include "ITransportPositionerMatcher.h"
5 #include "Navigation.h"
6 #include "HashHelpers.h"
7 #include "Collision.h"
8 
9 #include <unordered_map>
10 
11 namespace Eegeo
12 {
13  namespace Transport
14  {
16  {
17  public:
19  std::unordered_map<TransportNetwork::Type, const Eegeo::Resources::Roads::Navigation::NavigationGraphRepository&, Helpers::EnumHash> networkToNavGraphRepository,
20  const Transport::ITransportTiledGraphService& transportTiledGraphService,
21  Eegeo::Collision::IRayPicker& terrainRayPicker
22  );
23 
24  TransportPositionerPointOnGraph FindPointOnGraph(
25  const TransportPositionerModel& positioner
26  ) override;
27 
28  private:
29 
30  TransportPositionerPointOnGraph BuildMatchSuccededResult(
32  const int navGraphRoadIndex,
33  const float parameterizedPointOnWay,
34  const bool wayDirectionReversed,
35  const Transport::TransportNetwork::Type transportNetworkType
36  ) const;
37 
38  double GetAltitudeForLatLng(double latitude, double longitude);
39 
40  std::unordered_map<TransportNetwork::Type, const Eegeo::Resources::Roads::Navigation::NavigationGraphRepository&, Helpers::EnumHash> m_networkToNavGraphRepository;
41  const Transport::ITransportTiledGraphService& m_transportTiledGraphService;
42  Eegeo::Collision::IRayPicker& m_terrainRayPicker;
43  };
44  }
45 }