All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
TransportModelModule.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 
7 #include "Rendering.h"
8 #include "Roads.h"
9 #include "Navigation.h"
10 #include "Collision.h"
11 
12 #include "Graphs.h"
13 
14 namespace Eegeo
15 {
16  namespace Modules
17  {
18  namespace Map
19  {
20  namespace Layers
21  {
23  {
24  public:
25  static TransportModelModule* Create();
26 
28 
31 
32  Resources::Roads::Navigation::NavigationGraphRepository& GetRoadNavigationGraphRepository() const;
33  Resources::Roads::Navigation::NavigationGraphBuilder& GetRoadNavigationGraphBuilder() const;
34 
35  Resources::Roads::Navigation::NavigationGraphRepository& GetRailNavigationGraphRepository() const;
36  Resources::Roads::Navigation::NavigationGraphBuilder& GetRailNavigationGraphBuilder() const;
37 
38  Resources::Roads::Navigation::NavigationGraphRepository& GetTramNavigationGraphRepository() const;
39  Resources::Roads::Navigation::NavigationGraphBuilder& GetTramNavigationGraphBuilder() const;
40 
41  Collision::CollisionMeshResourceRepository& GetRoadsCollisionMeshResourceRepository() const;
42  Collision::CollisionMeshResourceRepository& GetRailCollisionMeshResourceRepository() const;
43  Collision::CollisionMeshResourceRepository& GetTramlinesCollisionMeshResourceRepository() const;
44 
45  Graphs::TiledGraph& GetRoadTiledGraph() const;
46  Graphs::TiledGraph& GetRailTiledGraph() const;
47  Graphs::TiledGraph& GetTramTiledGraph() const;
48 
49  private:
59  Eegeo::Collision::CollisionMeshResourceRepository* pRoadsCollisionMeshResourceRepository,
60  Eegeo::Collision::CollisionMeshResourceRepository* pRailCollisionMeshResourceRepository,
61  Eegeo::Collision::CollisionMeshResourceRepository* pTramlinesCollisionMeshResourceRepository,
62  Resources::Roads::Navigation::GraphLinkController* pRoadGraphLinkController,
63  Resources::Roads::Navigation::GraphLinkController* pRailGraphLinkController,
64  Resources::Roads::Navigation::GraphLinkController* pTramGraphLinkController,
65  Graphs::ITiledGraphLinker* pRoadTiledGraphLinker,
66  Graphs::ITiledGraphLinker* pRailTiledGraphLinker,
67  Graphs::ITiledGraphLinker* pTramTiledGraphLinker,
68  Graphs::TiledGraph* pRoadTiledGraph,
69  Graphs::TiledGraph* pRailTiledGraph,
70  Graphs::TiledGraph* pTramTiledGraph
71  );
72 
75 
76  Resources::Roads::Navigation::NavigationGraphRepository* const m_pRoadNavGraphRepository;
77  Resources::Roads::Navigation::NavigationGraphLinkManager* const m_pRoadNavGraphLinkManager;
78 
79  Resources::Roads::Navigation::NavigationGraphRepository* const m_pRailNavGraphRepository;
80  Resources::Roads::Navigation::NavigationGraphLinkManager* const m_pRailNavGraphLinkManager;
81 
82  Resources::Roads::Navigation::NavigationGraphRepository* const m_pTramNavGraphRepository;
83  Resources::Roads::Navigation::NavigationGraphLinkManager* const m_pTramNavGraphLinkManager;
84 
85  Eegeo::Collision::CollisionMeshResourceRepository* const m_pRoadsCollisionMeshResourceRepository;
86  Eegeo::Collision::CollisionMeshResourceRepository* const m_pRailCollisionMeshResourceRepository;
87  Eegeo::Collision::CollisionMeshResourceRepository* const m_pTramlinesCollisionMeshResourceRepository;
88 
89  Resources::Roads::Navigation::GraphLinkController* const m_pRoadGraphLinkController;
90  Resources::Roads::Navigation::GraphLinkController* const m_pRailGraphLinkController;
91  Resources::Roads::Navigation::GraphLinkController* const m_pTramGraphLinkController;
92 
93  Graphs::ITiledGraphLinker* const m_pRoadTiledGraphLinker;
94  Graphs::ITiledGraphLinker* const m_pRailTiledGraphLinker;
95  Graphs::ITiledGraphLinker* const m_pTramTiledGraphLinker;
96 
97  Graphs::TiledGraph* const m_pRoadTiledGraph;
98  Graphs::TiledGraph* const m_pRailTiledGraph;
99  Graphs::TiledGraph* const m_pTramTiledGraph;
100  };
101  }
102  }
103  }
104 }