4 #include "ITransportTiledGraphService.h"
6 #include "HashHelpers.h"
7 #include "Navigation.h"
9 #include <unordered_map>
20 const std::unordered_map<TransportNetwork::Type, const Eegeo::Graphs::TiledGraph&, Helpers::EnumHash>& tiledGraphs,
21 const std::unordered_map<TransportNetwork::Type, Eegeo::Graphs::TiledGraphPathfinder&, Helpers::EnumHash>& tiledGraphPathfinders,
22 const std::unordered_map<TransportNetwork::Type, const ITransportNodeBuilder&, Helpers::EnumHash>& transportNodeBuilders,
23 const std::unordered_map<TransportNetwork::Type, const ITransportDirectedEdgeBuilder&, Helpers::EnumHash>& transportDirectedEdgeBuilders,
24 const std::unordered_map<TransportNetwork::Type, const ITransportWayBuilder&, Helpers::EnumHash>& transportWayBuilders,
25 const std::unordered_map<TransportNetwork::Type, const Eegeo::Resources::Roads::Navigation::NavigationGraphRepository&, Helpers::EnumHash>& navigationGraphRepositories
36 bool PathfindResultExists(
int pathfindResultId)
override;
40 void ReleasePathfindResult(
int pathfindResultId)
override;
54 std::vector<TransportNodeId> GetNodeIdsForNetwork(TransportNetwork::Type transportNetworkType)
const override;
56 std::vector<TransportDirectedEdgeId> GetDirectedEdgeIdsForNetwork(TransportNetwork::Type transportNetworkType)
const override;
58 std::vector<TransportWayId> GetWayIdsForNetwork(TransportNetwork::Type transportNetworkType)
const override;
60 std::vector<TransportNodeId> GetNodeIdsForNetworkInCell(TransportNetwork::Type transportNetworkType,
const Eegeo::Streaming::MortonKey& cellKey)
const override;
62 std::vector<TransportDirectedEdgeId> GetDirectedEdgeIdsForNetworkInCell(TransportNetwork::Type transportNetworkType,
const Eegeo::Streaming::MortonKey& cellKey)
const override;
64 std::vector<TransportWayId> GetWayIdsForNetworkInCell(TransportNetwork::Type transportNetworkType,
const Eegeo::Streaming::MortonKey& cellKey)
const override;
66 int GetNodeCountForNetwork(TransportNetwork::Type transportNetworkType)
const override;
68 int GetDirectedEdgeCountForNetwork(TransportNetwork::Type transportNetworkType)
const override;
70 int GetWayCountForNetwork(TransportNetwork::Type transportNetworkType)
const override;
72 int GetNodeCountForNetworkInCell(TransportNetwork::Type transportNetworkType,
const Eegeo::Streaming::MortonKey& cellKey)
const override;
74 int GetDirectedEdgeCountForNetworkInCell(TransportNetwork::Type transportNetworkType,
const Eegeo::Streaming::MortonKey& cellKey)
const override;
76 int GetWayCountForNetworkInCell(TransportNetwork::Type transportNetworkType,
const Eegeo::Streaming::MortonKey& cellKey)
const override;
82 std::vector<Eegeo::dv3> BuildPathPoints(
83 const std::vector<TransportDirectedEdgeId>& pathDirectedEdgeIds,
84 const double firstEdgeParam,
85 const double lastEdgeParam
88 std::vector<double> BuildPathPointParams(
const std::vector<Eegeo::dv3>& pathPoints)
const;
92 std::unordered_map<TransportNetwork::Type, const Eegeo::Graphs::TiledGraph&, Helpers::EnumHash> m_tiledGraphs;
93 std::unordered_map<TransportNetwork::Type, Eegeo::Graphs::TiledGraphPathfinder&, Helpers::EnumHash> m_tiledGraphPathfinders;
95 const std::unordered_map<TransportNetwork::Type, const ITransportNodeBuilder&, Helpers::EnumHash> m_transportNodeBuilders;
96 const std::unordered_map<TransportNetwork::Type, const ITransportDirectedEdgeBuilder&, Helpers::EnumHash> m_transportDirectedEdgeBuilders;
97 const std::unordered_map<TransportNetwork::Type, const ITransportWayBuilder&, Helpers::EnumHash> m_transportWayBuilders;
98 const std::unordered_map<TransportNetwork::Type, const Eegeo::Resources::Roads::Navigation::NavigationGraphRepository&, Helpers::EnumHash> m_navigationGraphRepositories;
100 int m_nextPathfindResultId;
101 std::unordered_map<int, TransportPathfindResult> m_pathfindResultsStore;