12#include <simgear/structure/SGReferenced.hxx>
13#include <simgear/structure/SGWeakReferenced.hxx>
14#include <simgear/timing/timestamp.hxx>
65 typedef std::set<FGParkingRef> ParkingSet;
67 ParkingSet occupiedParkings;
72 SGSharedPtr<AirportGroundRadar> groundRadar;
82 std::string prevTrafficType;
85 stringVec milActive, comActive, genActive, ulActive;
88 int atisSequenceIndex;
89 double atisSequenceTimeStamp;
91 std::string chooseRunwayFallback();
92 bool innerGetActiveRunway(
const std::string& trafficType,
int action, std::string& runway,
double heading);
93 std::string chooseRwyByHeading(
stringVec rwys,
double heading);
95 FGParking* innerGetAvailableParking(
double radius,
const std::string& flType,
96 const std::string& airline,
97 bool skipEmptyAirlineCode);
99 std::string fallbackGetActiveRunway(
int action,
double heading);
102 SGTimeStamp _lastFallbackUpdate;
104 _fallbackArrivalRunways;
105 unsigned int _fallbackRunwayCounter{0};
114 const std::string
getId()
const;
135 const std::string& acType,
const std::string& airline);
163 return &startupController;
167 return &groundController;
171 return &towerController;
175 return &approachController;
std::vector< FGRunwayRef > FGRunwayList
std::vector< FGParkingRef > FGParkingList
SGSharedPtr< FGParking > FGParkingRef
FGParkingList getParkings(bool onlyAvailable, const std::string &type) const
double getElevation() const
ParkingAssignment getParkingByName(const std::string &name) const
Find a parking gate index by name.
bool hasParking(FGParking *parking) const
ActiveRunwayQueue * getRunwayQueue(const std::string &name)
const std::string getAtisSequence()
get current ATIS sequence letter
int updateAtisSequence(int interval, bool forceUpdate)
get the current ATIS sequence number, updating it if necessary
int getApproachFrequency(unsigned nr)
FGTowerController * getTowerController()
FGGroundController * getGroundController()
void releaseParking(FGParking *id)
FGAirportDynamics(FGAirport *ap)
void init()
Initialization required after XMLRead.
FGParkingRef getOccupiedParkingByName(const std::string &name) const
ParkingAssignment getAvailableParking(double radius, const std::string &fltype, const std::string &acType, const std::string &airline)
retrieve an available parking by GateID, or -1 if no suitable parking location could be found.
FGAirport * parent() const
virtual ~FGAirportDynamics()
int getGroundFrequency(unsigned leg)
void getActiveRunway(const std::string &trafficType, int action, std::string &runway, double heading)
ParkingAssignment getAvailableParkingByName(const std::string &name)
find a parking by name, if available.
void setParkingAvailable(FGParking *park, bool available)
FGApproachController * getApproachController()
FGStartupController * getStartupController()
const std::string getId() const
int getTowerFrequency(unsigned nr)
void setRwyUse(const FGRunwayPreference &ref)
bool isParkingAvailable(FGParking *parking) const
FGParking * parking() const
void operator=(const ParkingAssignment &aOther)
std::vector< std::string > stringVec
std::vector< ActiveRunwayQueue > ActiveRunwayVec