All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
TrafficSimulationController.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "ITrafficThemeModelObserver.h"
7 #include "Navigation.h"
8 #include "Streaming.h"
9 #include "Terrain.h"
10 #include "Rendering.h"
11 #include "Camera.h"
12 #include "TrafficSimulationAltitudeSpeedConfiguration.h"
13 #include <string>
14 
15 namespace Eegeo
16 {
17  namespace Traffic
18  {
20  {
21  public:
22 
24  TrafficSimulationFactory& trafficSimFactory,
31  const Config::PlaneSimulationConfig& planeSimulationConfig);
32 
34 
35  bool Enabled() const
36  {
37  return m_enabled;
38  }
39 
40  void SetEnabled(bool enabled);
41  void OnThemeChanged(const Themes::TrafficThemeModel& themeModel);
42  void OnThemeStateChanged(const Themes::TrafficThemeModel& themeModel);
43  void Update(float dt, const Camera::RenderCamera& renderCamera, const dv3& ecefInterestPoint);
44  void SubmitForRendering(Eegeo::Traffic::VehicleRenderer& m_pTrafficVehicleRenderer, const dv3& ecefCameraPosition);
45 
46  void SetAltitudeSpeedConfiguration(Eegeo::Traffic::Config::TrafficSimulationAltitudeSpeedConfiguration config);
47 
48  Eegeo::Traffic::PlaneSimulation& GetPlaneSimulation() const { return *m_pPlaneSimulation; }
49 
50  private:
51  void ApplyVehicleSuffixChange(const std::string &suffix);
52 
54 
55  TrafficSimulationFactory& m_trafficSimFactory;
59  Eegeo::Traffic::PlaneSimulation *m_pPlaneSimulation;
60  bool m_enabled;
61 
65 
66  Config::TrafficSimulationConfiguration* m_pDefaultTrafficConfig;
67 
70  Eegeo::Traffic::Themes::TrafficThemeModel& m_trafficThemeModel;
71  };
72  }
73 }