]> git.mxchange.org Git - flightgear.git/blobdiff - src/Airports/dynamics.hxx
Update FGRunway to process information from threshold.xml files.
[flightgear.git] / src / Airports / dynamics.hxx
index 9712c5b8059c8be5262f317d3df1e63e5bb919e4..1f142eb529bd36e9f0d0477e4ea382ec6d49f9a9 100644 (file)
@@ -33,6 +33,7 @@
 #include "parking.hxx"
 #include "groundnetwork.hxx"
 #include "runwayprefs.hxx"
+#include "sidstar.hxx"
 
 //typedef vector<float> DoubleVec;
 //typedef vector<float>::iterator DoubleVecIterator;
@@ -47,6 +48,7 @@ private:
 
   FGParkingVec        parkings;
   FGRunwayPreference  rwyPrefs;
+  FGSidStar           SIDs;
   FGStartupController startupController;
   FGGroundNetwork     groundNetwork;
   FGTowerController   towerController;
@@ -67,7 +69,8 @@ private:
   string atisInformation;
 
   string chooseRunwayFallback();
-  bool innerGetActiveRunway(const string &trafficType, int action, string &runway);
+  bool innerGetActiveRunway(const string &trafficType, int action, string &runway, double heading);
+  string chooseRwyByHeading(stringVec rwys, double heading);
 public:
   FGAirportDynamics(FGAirport* ap);
   FGAirportDynamics(const FGAirportDynamics &other);
@@ -88,7 +91,7 @@ public:
   double getElevation() const; 
   const string& getId() const; 
   
-  void getActiveRunway(const string& trafficType, int action, string& runway);
+  void getActiveRunway(const string& trafficType, int action, string& runway, double heading);
 
   void addParking(FGParking& park);
   bool getAvailableParking(double *lat, double *lon, 
@@ -103,6 +106,10 @@ public:
   //const string &getName() const { return _name;};
   // Returns degrees
 
+  // Departure / Arrival procedures
+  FGSidStar * getSIDs() { return &SIDs; };
+  FGAIFlightPlan * getSID(string activeRunway, double heading);
+
 
   // ATC related functions. 
   FGStartupController *getStartupController() { return &startupController; };
@@ -110,7 +117,7 @@ public:
   FGTowerController   *getTowerController()   { return &towerController; };
 
   const string& getAtisInformation() { return atisInformation; };
-  int getGroundFrequency(int leg); //{ return freqGround.size() ? freqGround[0] : 0; };
+  int getGroundFrequency(unsigned leg); //{ return freqGround.size() ? freqGround[0] : 0; };
 
   void setRwyUse(const FGRunwayPreference& ref);
 };