X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FAirports%2Frunways.hxx;h=e6f97ea95d7790c30898fbcd6e4ec9c7a5bc865d;hb=386aefe69358ce41a11c9afeb8f56e26758fe56b;hp=ae2610c8b06f41521346cd206b868260b4a170d7;hpb=871b92ae339b33a2c6ee5ede4a61dbc39c9ca3f3;p=flightgear.git diff --git a/src/Airports/runways.hxx b/src/Airports/runways.hxx index ae2610c8b..e6f97ea95 100644 --- a/src/Airports/runways.hxx +++ b/src/Airports/runways.hxx @@ -26,17 +26,21 @@ #include -#include "Airports/runwaybase.hxx" +#include // forward decls class FGAirport; +class FGNavRecord; +class SGPropertyNode; class FGRunway : public FGRunwayBase { FGAirport* _airport; - bool _reciprocal; + bool _isReciprocal; + FGRunway* _reciprocal; double _displ_thresh; double _stopway; + FGNavRecord* _ils; public: FGRunway(FGAirport* aAirport, const std::string& rwy_no, @@ -65,24 +69,24 @@ public: * over runways to avoid counting runways twice, if desired. */ bool isReciprocal() const - { return _reciprocal; } + { return _isReciprocal; } /** - * Get the runway threshold point - this is syntatic sugar, equivalent to + * Get the runway begining point - this is syntatic sugar, equivalent to * calling pointOnCenterline(0.0); */ - SGGeod threshold() const; + SGGeod begin() const; /** * Get the (possibly displaced) threshold point. */ - SGGeod displacedThreshold() const; + SGGeod threshold() const; /** - * Get the opposite threshold - this is equivalent to calling + * Get the 'far' end - this is equivalent to calling * pointOnCenterline(lengthFt()); */ - SGGeod reverseThreshold() const; + SGGeod end() const; double displacedThresholdM() const { return _displ_thresh * SG_FEET_TO_METER; } @@ -90,7 +94,7 @@ public: double stopwayM() const { return _stopway * SG_FEET_TO_METER; } - /** + /** * Airport this runway is located at */ FGAirport* airport() const @@ -99,6 +103,18 @@ public: // FIXME - should die once airport / runway creation is cleaned up void setAirport(FGAirport* aAirport) { _airport = aAirport; } + + FGNavRecord* ILS() const { return _ils; } + void setILS(FGNavRecord* nav) { _ils = nav; } + + FGRunway* reciprocalRunway() const + { return _reciprocal; } + void setReciprocalRunway(FGRunway* other); + + /** + * Helper to process property data loaded from an ICAO.threshold.xml file + */ + void processThreshold(SGPropertyNode* aThreshold); }; #endif // _FG_RUNWAYS_HXX