9#include <simgear/compiler.h>
27 const double heading,
const double length,
29 const double displ_thresh,
31 const int surface_code);
37 static std::string
reverseIdent(
const std::string& aRunayIdent);
43 double score(
double aLengthWt,
double aWidthWt,
double aSurfaceWt,
double aIlsWt)
const;
70 {
return _displ_thresh; }
107 double newDisplacedThreshold,
120 const double heading,
const double length,
122 const int surface_code);
FGHelipad(PositionedID aGuid, PositionedID aAirport, const std::string &rwy_no, const SGGeod &aGeod, const double heading, const double length, const double width, const int surface_code)
static bool isType(FGPositioned::Type ty)
FGRunwayBase(PositionedID aGuid, Type aTy, const std::string &aIdent, const SGGeod &aGeod, const double heading, const double length, const double width, const int surface_code, const PositionedID airportId)
FGNavRecord * glideslope() const
retrieve the associated glideslope transmitter, if one is defined.
static std::string reverseIdent(const std::string &aRunayIdent)
given a runway identifier (06, 18L, 31R) compute the identifier for the reciprocal heading runway (24...
SGGeod pointOnCenterlineDisplaced(double aOffset) const
Retrieve a position on the extended centerline.
static bool isType(FGPositioned::Type ty)
flightgear::STARList getSTARs() const
Get STARs associared with this runway.
SGGeod end() const
Get the 'far' end - this is equivalent to calling pointOnCenterline(lengthFt());.
SGGeod threshold() const
Get the (possibly displaced) threshold point.
void setReciprocalRunway(PositionedID other)
FGNavRecord * ILS() const
void setILS(PositionedID nav)
double score(double aLengthWt, double aWidthWt, double aSurfaceWt, double aIlsWt) const
score this runway according to the specified weights.
void updateThreshold(const SGGeod &newThreshold, double newHeading, double newDisplacedThreshold, double newStopway)
FGRunway * reciprocalRunway() const
flightgear::SIDList getSIDs() const
Get SIDs (DPs) associated with this runway.
SGGeod begin() const
Get the runway beginning point - this is syntatic sugar, equivalent to calling pointOnCenterline(0....
flightgear::ApproachList getApproaches(flightgear::ProcedureType type=flightgear::PROCEDURE_INVALID) const
double displacedThresholdM() const
FGRunway(PositionedID aGuid, PositionedID aAirport, const std::string &rwy_no, const SGGeod &aGeod, const double heading, const double length, const double width, const double displ_thresh, const double stopway, const int surface_code)
std::vector< Approach * > ApproachList
std::vector< STAR * > STARList
std::vector< flightgear::SID * > SIDList