bool isSeaport() const;
bool isHeliport() const;
+ /// is the airport closed (disused)?
+ /// note at rpesent we look for an [x] in the name, ideally the database
+ /// would explicitly include this
+ bool isClosed() const
+ {
+ return mIsClosed;
+ }
+
static bool isAirportType(FGPositioned* pos);
virtual const std::string& name() const
/**
* 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();
+
+ bool hasTower() const;
SGGeod getTowerLocation() const;
FGRunwayRef getActiveRunwayForUsage() const;
- FGAirportDynamics *getDynamics();
+ FGAirportDynamicsRef getDynamics() const;
unsigned int numRunways() const;
unsigned int numHelipads() const;
* an airport *once*, not *twice* - eg mapping and nav-display code.
*/
FGRunwayList getRunwaysWithoutReciprocals() const;
+
+ /**
+ * Retrieve all runways at the airport
+ */
+ FGRunwayList getRunways() const;
/**
* Useful predicate for FMS/GPS/NAV displays and similar - check if this
*/
bool hasHardRunwayOfLengthFt(double aLengthFt) const;
+ FGRunwayRef longestRunway() const;
+
unsigned int numTaxiways() const;
FGTaxiwayRef getTaxiwayByIndex(unsigned int aIndex) const;
FGTaxiwayList getTaxiways() const;
* 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;
void loadRunways() const;
void loadHelipads() const;
void loadProcedures() const;
mutable bool mTowerDataLoaded;
+ mutable bool mHasTower;
mutable SGGeod mTowerPosition;
mutable bool mRunwaysLoaded;
mutable bool mHelipadsLoaded;
mutable bool mTaxiwaysLoaded;
mutable bool mProceduresLoaded;
+ bool mIsClosed;
+ mutable bool mThresholdDataLoaded;
bool mILSDataLoaded;
+
+ mutable std::vector<FGRunwayRef> mRunways;
- mutable PositionedIDVec mRunways;
mutable PositionedIDVec mHelipads;
mutable PositionedIDVec mTaxiways;
PositionedIDVec mPavements;