#ifndef _TRAFFIC_CONTROL_HXX_
#define _TRAFFIC_CONTROL_HXX_
-#include <string>
-#include <vector>
-#include <list>
+#include <Airports/airports_fwd.hxx>
#include <osg/Geode>
#include <osg/Geometry>
#include <simgear/structure/SGReferenced.hxx>
#include <simgear/structure/SGSharedPtr.hxx>
-typedef std::vector<int> intVec;
-typedef std::vector<int>::iterator intVecIterator;
+class FGAIAircraft;
+typedef std::vector<FGAIAircraft*> AircraftVec;
+typedef std::vector<FGAIAircraft*>::iterator AircraftVecIterator;
+class FGAIFlightPlan;
+typedef std::vector<FGAIFlightPlan*> FlightPlanVec;
+typedef std::vector<FGAIFlightPlan*>::iterator FlightPlanVecIterator;
+typedef std::map<std::string, FlightPlanVec> FlightPlanVecMap;
-class FGAIFlightPlan; // forward reference
-class FGGroundNetwork; // forward reference
-class FGAIAircraft; // forward reference
-class FGAirportDynamics;
+class FGTrafficRecord;
+typedef std::list<FGTrafficRecord> TrafficVector;
+typedef std::list<FGTrafficRecord>::iterator TrafficVectorIterator;
+
+class ActiveRunway;
+typedef std::vector<ActiveRunway> ActiveRunwayVec;
+typedef std::vector<ActiveRunway>::iterator ActiveRunwayVecIterator;
+
+typedef std::vector<int> intVec;
+typedef std::vector<int>::iterator intVecIterator;
/**************************************************************************************
* class FGATCInstruction
int getPriority() const { return priority; };
};
-typedef std::list<FGTrafficRecord> TrafficVector;
-typedef std::list<FGTrafficRecord>::iterator TrafficVectorIterator;
-
-typedef std::vector<time_t> TimeVector;
-typedef std::vector<time_t>::iterator TimeVectorIterator;
-
-typedef std::vector<FGAIAircraft*> AircraftVec;
-typedef std::vector<FGAIAircraft*>::iterator AircraftVecIterator;
-
/***********************************************************************
* Active runway, a utility class to keep track of which aircraft has
* clearance for a given runway.
void printDepartureCue();
};
-typedef std::vector<ActiveRunway> ActiveRunwayVec;
-typedef std::vector<ActiveRunway>::iterator ActiveRunwayVecIterator;
-
/**
* class FGATCController
* NOTE: this class serves as an abstraction layer for all sorts of ATC controllers.
virtual std::string getName();
virtual void update(double dt);
bool hasActiveTraffic() {
- return activeTraffic.size() != 0;
+ return ! activeTraffic.empty();
};
TrafficVector &getActiveTraffic() {
return activeTraffic;
virtual void update(double dt);
bool hasActiveTraffic() {
- return activeTraffic.size() != 0;
+ return ! activeTraffic.empty();
};
TrafficVector &getActiveTraffic() {
return activeTraffic;
ActiveRunway* getRunway(const std::string& name);
bool hasActiveTraffic() {
- return activeTraffic.size() != 0;
+ return ! activeTraffic.empty();
};
TrafficVector &getActiveTraffic() {
return activeTraffic;