All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
TrafficSimulationFactory.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Camera.h"
6 #include "Location.h"
7 #include "Rendering.h"
8 #include "Traffic.h"
9 #include "Navigation.h"
10 #include "Random.h"
11 #include "Streaming.h"
12 #include "Terrain.h"
13 #include "Streaming.h"
14 #include "InteriorTransitionModel.h"
15 namespace Eegeo
16 {
17  namespace Traffic
18  {
20  {
21  public:
22 
24  const Streaming::ResourceCeilingProvider& resourceCeilingProvider,
25  Random& randomGenerator,
28  : m_environmentFlatteningService(environmentFlatteningService)
29  , m_resourceCeilingProvider(resourceCeilingProvider)
30  , m_randomGenerator(randomGenerator)
31  , m_terrainHeightProvider(terrainHeightProvder)
32  , m_interiorTransitionModel(transitionModel)
33  {
34 
35  }
36 
37  VehiclesOnNavigationGraphSimulation* CreateRoadTrafficSimulation(
39  const Config::TrafficSimulationAltitudeSpeedConfiguration& altitudeSpeedConfig,
41 
42  VehiclesOnNavigationGraphSimulation* CreateRailTrafficSimulation(
44  const Config::TrafficSimulationAltitudeSpeedConfiguration& altitudeSpeedConfig,
46 
47  PlaneSimulation* CreatePlaneSimulation(const Config::TrafficSimulationConfiguration& config,
48  const Config::PlaneSimulationConfig& planeSimulationConfig,
51  private:
52 
53  Rendering::EnvironmentFlatteningService& m_environmentFlatteningService;
54  const Streaming::ResourceCeilingProvider& m_resourceCeilingProvider;
55  Random& m_randomGenerator;
57  Resources::Interiors::InteriorTransitionModel& m_interiorTransitionModel;
58 
59  VehiclesOnNavigationGraphSimulation* CreateNavGraphTrafficSimulation(
61  IVehicleFactory* pVehicleFactory,
62  TrafficSimulationCellsModel* pCellsModel,
64  const Config::TrafficSimulationAltitudeSpeedConfiguration& altitudeSpeedConfig);
65  };
66  }
67 }