All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
TrafficThemeModel.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "TrafficSimulationConfiguration.h"
7 #include "CityThemeState.h"
8 #include "CityThemes.h"
9 #include <vector>
10 
11 namespace Eegeo
12 {
13  namespace Traffic
14  {
15  namespace Themes
16  {
18  {
19  private:
20  typedef std::vector<ITrafficThemeModelObserver*> TObservers;
21 
22  public:
23  void SetTheme(const Eegeo::Resources::CityThemes::CityThemeData& cityThemeData);
24  void SetThemeState(const Eegeo::Resources::CityThemes::CityThemeState& cityThemeState);
25 
26  void RegisterObserver(ITrafficThemeModelObserver& observer);
27  void UnregisterObserver(ITrafficThemeModelObserver& observer);
28 
29  const Eegeo::Traffic::Config::TrafficSimulationConfiguration& GetRoadVehiclesConfig() const
30  {
31  return m_roadVehiclesConfig;
32  }
33 
34  const Eegeo::Traffic::Config::TrafficSimulationConfiguration& GetRailVehiclesConfig() const
35  {
36  return m_railVehiclesConfig;
37  }
38 
39  const Eegeo::Traffic::Config::TrafficSimulationConfiguration& GetTramVehiclesConfig() const
40  {
41  return m_tramVehiclesConfig;
42  }
43 
44  const Eegeo::Traffic::Config::TrafficSimulationConfiguration& GetPlaneVehiclesConfig() const
45  {
46  return m_planeVehiclesConfig;
47  }
48 
49  const Eegeo::Resources::CityThemes::CityThemeState& GetCityThemeState() const
50  {
51  return m_themeState;
52  }
53 
54  private:
55  void NotifyThemeObservers() const;
56  void NotifyThemeStateObservers() const;
57 
63 
64  TObservers m_observers;
65  };
66  }
67  }
68 }
69 
70 
71