All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
CarVehicleFactory.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "IVehicleFactory.h"
6 #include "Traffic.h"
7 #include "Location.h"
8 #include "Random.h"
9 #include "Navigation.h"
10 #include "TrafficSimulationConfiguration.h"
11 #include "Helpers.h"
12 #include <string>
13 
14 namespace Eegeo
15 {
16  namespace Traffic
17  {
18  using Resources::Roads::Navigation::NavigationGraph;
19 
21  {
22  public:
23 
25  Random& randomGenerator,
26  const TrafficSimulationCellsModel* cellsModel);
27 
29 
30  void CreateVehicles(int vehicleCount, const NavigationGraph& navGraph, TVehicleVector& vehicles);
31 
32  int CalcInitialVehicleCount(const NavigationGraph& navGraph);
33 
34  void SetConfig(const Config::TrafficSimulationConfiguration& roadConfig);
35  void ApplyVehicleSuffixChange(const std::string &suffix);
36 
37  private:
39  const TrafficSimulationCellsModel* m_cellsModel;
40 
41  Random& m_random;
42  std::string m_modelNodeSuffix;
43  Helpers::RouletteWheelSelector* m_pRouletteWheelSelector;
44  };
45  }
46 }