All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Traffic.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "VectorMath.h"
6 #include <vector>
7 
8 namespace Eegeo
9 {
10 
11  namespace Traffic
12  {
13  namespace Config
14  {
15  struct GlobalTrafficConfiguration;
16  class TrafficSimulationConfiguration;
17  struct TrafficSimulationVehicleConfiguration;
18  struct TrafficSimulationRoadClassFilter;
19  struct TrafficSimulationAltitudeSpeedConfiguration;
20  struct PlaneSimulationConfig;
21  }
22 
23  namespace Themes
24  {
25  class ITrafficThemeModelObserver;
26  class TrafficThemeController;
27  class TrafficThemeModel;
28  }
29 
30  class VehicleModelNodeRepository;
31 
32  class IVehicle;
33  class TrainVehicle;
34  class TrainCarriage;
35  class IVehicleFactory;
36  class CarVehicleFactory;
37  class TrainVehicleFactory;
38 
39  class TrafficSimulationCell;
40  class TrafficSimulationCellsModel;
41  class TrafficSimulationPathedVehicle;
42  class TrafficSimulationController;
43 
44  class VehicleRenderablesModel;
45  struct VehicleRenderdata;
46  class VehicleRenderer;
47  class IVehicleModel;
48 
49  class PlaneSimulation;
50  class PlaneVehicle;
51 
52  class VehiclesOnNavigationGraphSimulation;
53  class TrafficSimulationFactory;
54 
55  class VehicleModelLoadHandler;
56 
57  typedef std::vector<IVehicle*> TVehicleVector;
58 
59  // TODO: Move this out of here. Doesn't belong in predecl file.
61  {
62  public:
63  Eegeo::v3 position;
64  Eegeo::v3 direction;
65  Eegeo::v3 target;
66  float length;
67  float halfWidth;
68  bool harshTurn;
69  int roadIndex;
70  int roadVertexIndex;
71  };
72 
73  }
74 
76  {
77  int index;
78  float priority; //1.f high, 0.f low
79  bool wasBestAngle;
80  bool wasInRecentMemory;
81  bool wasSingleVertex;
82  };
83 }