]> git.mxchange.org Git - flightgear.git/blobdiff - src/Airports/airport.hxx
Document that property write-protection is not a security measure
[flightgear.git] / src / Airports / airport.hxx
index a35354075fda71c412e81cbd4c9c0bd064b98302..6713e77d1a25248cdaed202b239998b70d1b9fb2 100644 (file)
@@ -70,10 +70,8 @@ class FGAirport : public FGPositioned
 
     /**
      * reload the ILS data from XML if required.
-     * @result true if the data was refreshed, false if no data was loaded
-     * or previously cached data is still correct.
      */
-    bool validateILSData();
+    void validateILSData();
 
     SGGeod getTowerLocation() const;
 
@@ -94,7 +92,22 @@ class FGAirport : public FGPositioned
     bool hasHelipadWithIdent(const std::string& aIdent) const;
     FGRunwayRef getRunwayByIdent(const std::string& aIdent) const;
     FGHelipadRef getHelipadByIdent(const std::string& aIdent) const;
-    FGRunwayRef findBestRunwayForHeading(double aHeading) const;
+
+    struct FindBestRunwayForHeadingParams {
+      FindBestRunwayForHeadingParams() {
+        lengthWeight =  0.01;
+        widthWeight =  0.01;
+        surfaceWeight =  10;
+        deviationWeight =  1;
+        ilsWeight = 0;
+      }
+      double lengthWeight;
+      double widthWeight;
+      double surfaceWeight;
+      double deviationWeight;
+      double ilsWeight;
+    };
+    FGRunwayRef findBestRunwayForHeading(double aHeading, struct FindBestRunwayForHeadingParams * parms = NULL ) const;
     
     /**
      * return the most likely target runway based on a position.
@@ -288,7 +301,9 @@ private:
      * Helper to parse property data loaded from an ICAO.twr.xml file
      */
     void readTowerData(SGPropertyNode* aRoot);
-    
+  
+    PositionedIDVec itemsOfType(FGPositioned::Type ty) const;
+  
     std::string _name;
     bool _has_metar;
     FGAirportDynamics *_dynamics;
@@ -299,13 +314,18 @@ private:
     void loadProcedures() const;
     
     mutable bool mTowerDataLoaded;
+    mutable SGGeod mTowerPosition;
+  
     mutable bool mRunwaysLoaded;
     mutable bool mHelipadsLoaded;
     mutable bool mTaxiwaysLoaded;
     mutable bool mProceduresLoaded;
+  
+    mutable bool mThresholdDataLoaded;
     bool mILSDataLoaded;
+
+    mutable std::vector<FGRunwayRef> mRunways;
   
-    mutable PositionedIDVec mRunways;
     mutable PositionedIDVec mHelipads;
     mutable PositionedIDVec mTaxiways;
     PositionedIDVec mPavements;