FlightGear next
FGRunway Class Reference

#include <runways.hxx>

Inherits FGRunwayBase.

Public Member Functions

 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)
 
double score (double aLengthWt, double aWidthWt, double aSurfaceWt, double aIlsWt) const
 score this runway according to the specified weights.
 
SGGeod begin () const
 Get the runway beginning point - this is syntatic sugar, equivalent to calling pointOnCenterline(0.0);.
 
SGGeod threshold () const
 Get the (possibly displaced) threshold point.
 
SGGeod pointOnCenterlineDisplaced (double aOffset) const
 Retrieve a position on the extended centerline.
 
SGGeod end () const
 Get the 'far' end - this is equivalent to calling pointOnCenterline(lengthFt());.
 
double displacedThresholdM () const
 
double stopwayM () const
 
FGNavRecordILS () const
 
FGNavRecordglideslope () const
 retrieve the associated glideslope transmitter, if one is defined.
 
void setILS (PositionedID nav)
 
FGRunwayreciprocalRunway () const
 
void setReciprocalRunway (PositionedID other)
 
flightgear::SIDList getSIDs () const
 Get SIDs (DPs) associated with this runway.
 
flightgear::STARList getSTARs () const
 Get STARs associared with this runway.
 
flightgear::ApproachList getApproaches (flightgear::ProcedureType type=flightgear::PROCEDURE_INVALID) const
 
void updateThreshold (const SGGeod &newThreshold, double newHeading, double newDisplacedThreshold, double newStopway)
 
- Public Member Functions inherited from FGRunwayBase
 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)
 
SGGeod pointOnCenterline (double aOffset) const
 Retrieve a position on the extended centerline.
 
SGGeod pointOffCenterline (double aOffset, double lateralOffset) const
 
double lengthFt () const
 
double lengthM () const
 
double widthFt () const
 
double widthM () const
 
double headingDeg () const
 Runway heading in degrees.
 
bool isHardSurface () const
 Predicate to test if this runway has a hard surface.
 
int surface () const
 Retrieve runway surface code, as define in Robin Peel's data.
 
const char * surfaceName ()
 
FGAirportRef airport () const
 
- Public Member Functions inherited from FGPositioned
virtual ~FGPositioned ()
 
Type type () const
 
const char * typeString () const
 
const std::string & ident () const
 
virtual const std::string & name () const
 Return the name of this positioned.
 
virtual const SGGeod & geod () const
 
PositionedID guid () const
 
virtual const SGVec3d & cart () const
 The cartesian position associated with this object.
 
double latitude () const
 
double longitude () const
 
double elevation () const
 
double elevationM () const
 

Static Public Member Functions

static bool isType (FGPositioned::Type ty)
 
static std::string reverseIdent (const std::string &aRunayIdent)
 given a runway identifier (06, 18L, 31R) compute the identifier for the reciprocal heading runway (24, 36R, 13L) string.
 
- Static Public Member Functions inherited from FGRunwayBase
static const char * surfaceName (int surface_code)
 Retrieve runway surface name, as define in Robin Peel's data.
 
- Static Public Member Functions inherited from FGPositioned
static bool isAirportType (FGPositioned *pos)
 
static bool isRunwayType (FGPositioned *pos)
 
static bool isNavaidType (FGPositioned *pos)
 
static FGPositionedList findWithinRange (const SGGeod &aPos, double aRangeNm, Filter *aFilter)
 
static FGPositionedList findWithinRangePartial (const SGGeod &aPos, double aRangeNm, Filter *aFilter, bool &aPartial)
 
static FGPositionedRef findClosestWithIdent (const std::string &aIdent, const SGGeod &aPos, Filter *aFilter=NULL)
 
static FGPositionedRef findFirstWithIdent (const std::string &aIdent, Filter *aFilter)
 
static FGPositionedList findAllWithIdent (const std::string &aIdent, Filter *aFilter=NULL, bool aExact=true)
 Find all items with the specified ident.
 
static FGPositionedList findAllWithName (const std::string &aName, Filter *aFilter=NULL, bool aExact=true)
 As above, but searches names instead of idents.
 
static void sortByRange (FGPositionedList &, const SGGeod &aPos)
 Sort an FGPositionedList by distance from a position.
 
static FGPositionedRef findClosest (const SGGeod &aPos, double aCutoffNm, Filter *aFilter=NULL)
 Find the closest item to a position, which pass the specified filter A cutoff range in NM must be specified, to constrain the search acceptably.
 
static FGPositionedList findClosestN (const SGGeod &aPos, unsigned int aN, double aCutoffNm, Filter *aFilter=NULL)
 Find the closest N items to a position, which pass the specified filter A cutoff range in NM must be specified, to constrain the search acceptably.
 
static FGPositionedList findClosestNPartial (const SGGeod &aPos, unsigned int aN, double aCutoffNm, Filter *aFilter, bool &aPartial)
 Same as above, but with a time-bound in msec too.
 
template<class T>
static SGSharedPtr< T > loadById (PositionedID id)
 
template<class T>
static SGSharedPtr< T > loadById (const PositionedIDVec &id_vec, size_t index)
 
template<class T>
static std::vector< SGSharedPtr< T > > loadAllById (const PositionedIDVec &id_vec)
 
static Type typeFromName (const std::string &aName)
 Map a candidate type string to a real type.
 
static const char * nameForType (Type aTy)
 Map a type to a human-readable string.
 
static FGPositionedRef createWaypoint (FGPositioned::Type aType, const std::string &aIdent, const SGGeod &aPos, bool isTemporary=false, const std::string &aName={})
 
static bool deleteWaypoint (FGPositionedRef aWpt)
 

Additional Inherited Members

- Public Types inherited from FGPositioned
enum  Type {
  INVALID = 0 , AIRPORT , HELIPORT , SEAPORT ,
  RUNWAY , HELIPAD , TAXIWAY , PAVEMENT ,
  WAYPOINT , FIX , NDB , VOR ,
  ILS , LOC , GS , OM ,
  MM , IM , DME , TACAN ,
  MOBILE_TACAN , OBSTACLE , TOWER , FREQ_GROUND ,
  FREQ_TOWER , FREQ_ATIS , FREQ_AWOS , FREQ_APP_DEP ,
  FREQ_ENROUTE , FREQ_CLEARANCE , FREQ_UNICOM , PARKING ,
  TAXI_NODE , COUNTRY , CITY , TOWN ,
  VILLAGE , VISUAL_REPORTING_POINT , LAST_POI_TYPE , LAST_TYPE
}
 
- Protected Member Functions inherited from FGPositioned
 FGPositioned (PositionedID aGuid, Type ty, const std::string &aIdent, const SGGeod &aPos)
 
void modifyPosition (const SGGeod &newPos)
 
void invalidatePosition ()
 
- Static Protected Member Functions inherited from FGPositioned
static FGPositionedRef loadByIdImpl (PositionedID id)
 
- Protected Attributes inherited from FGRunwayBase
double _heading
 
double _length
 
double _width
 
int _surface_code
 surface, as defined by: http://www.x-plane.org/home/robinp/Apt810.htm#RwySfcCodes
 
PositionedID mAirport
 
- Protected Attributes inherited from FGPositioned
const PositionedID mGuid
 
const Type mType
 
const std::string mIdent
 

Detailed Description

Definition at line 14 of file runways.hxx.

Constructor & Destructor Documentation

◆ FGRunway()

FGRunway::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 )

Definition at line 25 of file runways.cxx.

Member Function Documentation

◆ begin()

SGGeod FGRunway::begin ( ) const

Get the runway beginning point - this is syntatic sugar, equivalent to calling pointOnCenterline(0.0);.

Definition at line 89 of file runways.cxx.

◆ displacedThresholdM()

double FGRunway::displacedThresholdM ( ) const
inline

Definition at line 69 of file runways.hxx.

◆ end()

SGGeod FGRunway::end ( ) const

Get the 'far' end - this is equivalent to calling pointOnCenterline(lengthFt());.

Definition at line 94 of file runways.cxx.

◆ getApproaches()

Definition at line 169 of file runways.cxx.

◆ getSIDs()

flightgear::SIDList FGRunway::getSIDs ( ) const

Get SIDs (DPs) associated with this runway.

Definition at line 140 of file runways.cxx.

◆ getSTARs()

flightgear::STARList FGRunway::getSTARs ( ) const

Get STARs associared with this runway.

Definition at line 154 of file runways.cxx.

◆ glideslope()

FGNavRecord * FGRunway::glideslope ( ) const

retrieve the associated glideslope transmitter, if one is defined.

Definition at line 129 of file runways.cxx.

◆ ILS()

FGNavRecord * FGRunway::ILS ( ) const

Definition at line 120 of file runways.cxx.

◆ isType()

static bool FGRunway::isType ( FGPositioned::Type ty)
inlinestatic

Definition at line 21 of file runways.hxx.

◆ pointOnCenterlineDisplaced()

SGGeod FGRunway::pointOnCenterlineDisplaced ( double aOffset) const

Retrieve a position on the extended centerline.

Positive values are in the direction of the runway heading, negative values are in the opposited direction. 0.0 corresponds to the possibly threshold

Definition at line 104 of file runways.cxx.

◆ reciprocalRunway()

FGRunway * FGRunway::reciprocalRunway ( ) const

Definition at line 115 of file runways.cxx.

◆ reverseIdent()

string FGRunway::reverseIdent ( const std::string & aRunayIdent)
static

given a runway identifier (06, 18L, 31R) compute the identifier for the reciprocal heading runway (24, 36R, 13L) string.

Definition at line 41 of file runways.cxx.

◆ score()

double FGRunway::score ( double aLengthWt,
double aWidthWt,
double aSurfaceWt,
double aIlsWt ) const

score this runway according to the specified weights.

Used by FGAirport::findBestRunwayForHeading

Definition at line 76 of file runways.cxx.

◆ setILS()

void FGRunway::setILS ( PositionedID nav)
inline

Definition at line 83 of file runways.hxx.

◆ setReciprocalRunway()

void FGRunway::setReciprocalRunway ( PositionedID other)

Definition at line 109 of file runways.cxx.

◆ stopwayM()

double FGRunway::stopwayM ( ) const
inline

Definition at line 72 of file runways.hxx.

◆ threshold()

SGGeod FGRunway::threshold ( ) const

Get the (possibly displaced) threshold point.

Definition at line 99 of file runways.cxx.

◆ updateThreshold()

void FGRunway::updateThreshold ( const SGGeod & newThreshold,
double newHeading,
double newDisplacedThreshold,
double newStopway )

Definition at line 183 of file runways.cxx.


The documentation for this class was generated from the following files: