FlightGear next
FGMobileNavRecord Class Reference

A mobile navaid, aka. More...

#include <navrecord.hxx>

Inherits FGNavRecord.

Public Member Functions

 FGMobileNavRecord (PositionedID aGuid, Type type, const std::string &ident, const std::string &name, const SGGeod &aPos, int freq, int range, double multiuse, PositionedID aRunway)
 
virtual const SGGeod & geod () const
 
virtual const SGVec3d & cart () const
 The cartesian position associated with this object.
 
void updateVehicle ()
 
void updatePos ()
 
void clearVehicle ()
 
- Public Member Functions inherited from FGNavRecord
 FGNavRecord (PositionedID aGuid, Type type, const std::string &ident, const std::string &name, const SGGeod &aPos, int freq, int range, double multiuse, PositionedID aRunway)
 
double get_lon () const
 
double get_lat () const
 
double get_elev_ft () const
 
int get_freq () const
 
int get_range () const
 
double get_multiuse () const
 
void set_multiuse (double m)
 
const char * get_ident () const
 
bool get_serviceable () const
 
const char * get_trans_ident () const
 
virtual const std::string & name () const
 Return the name of this positioned.
 
FGRunwayRef runway () const
 Retrieve the runway this navaid is associated with (for ILS/LOC/GS)
 
double localizerWidth () const
 return the localizer width, in degrees computation is based up ICAO stdandard width at the runway threshold see implementation for further details.
 
double glideSlopeAngleDeg () const
 extract the glide slope angle, in degrees, from the multiuse field Return 0.0 for non-GS navaids (including an ILS or LOC - you need to call this on the paired GS record.
 
void bindToNode (SGPropertyNode *nd) const
 
void unbindFromNode (SGPropertyNode *nd) const
 
void setColocatedDME (PositionedID other)
 
bool hasDME () const
 
PositionedID colocatedDME () const
 
bool isVORTAC () const
 
void updateFromXML (const SGGeod &geod, double heading)
 
- Public Member Functions inherited from FGPositioned
virtual ~FGPositioned ()
 
Type type () const
 
const char * typeString () const
 
const std::string & ident () const
 
PositionedID guid () const
 
double latitude () const
 
double longitude () const
 
double elevation () const
 
double elevationM () const
 

Static Public Member Functions

static bool isType (FGPositioned::Type ty)
 
- Static Public Member Functions inherited from FGNavRecord
static bool isType (FGPositioned::Type ty)
 
- 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)
 

Protected Attributes

SGTimeStamp _last_vehicle_update
 
SGPropertyNode_ptr _vehicle_node
 
double _initial_elevation_ft
 
- Protected Attributes inherited from FGNavRecord
bool serviceable
 
- Protected Attributes inherited from FGPositioned
const PositionedID mGuid
 
const Type mType
 
const std::string mIdent
 

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)
 

Detailed Description

A mobile navaid, aka.

a navaid which can change its position (eg. a mobile TACAN)

Definition at line 125 of file navrecord.hxx.

Constructor & Destructor Documentation

◆ FGMobileNavRecord()

FGMobileNavRecord::FGMobileNavRecord ( PositionedID aGuid,
Type type,
const std::string & ident,
const std::string & name,
const SGGeod & aPos,
int freq,
int range,
double multiuse,
PositionedID aRunway )

Definition at line 139 of file navrecord.cxx.

Member Function Documentation

◆ cart()

const SGVec3d & FGMobileNavRecord::cart ( ) const
virtual

The cartesian position associated with this object.

Reimplemented from FGPositioned.

Definition at line 162 of file navrecord.cxx.

◆ clearVehicle()

void FGMobileNavRecord::clearVehicle ( )

Definition at line 169 of file navrecord.cxx.

◆ geod()

const SGGeod & FGMobileNavRecord::geod ( ) const
virtual

Reimplemented from FGPositioned.

Definition at line 155 of file navrecord.cxx.

◆ isType()

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

Definition at line 129 of file navrecord.hxx.

◆ updatePos()

void FGMobileNavRecord::updatePos ( )

Definition at line 229 of file navrecord.cxx.

◆ updateVehicle()

void FGMobileNavRecord::updateVehicle ( )

Definition at line 174 of file navrecord.cxx.

Member Data Documentation

◆ _initial_elevation_ft

double FGMobileNavRecord::_initial_elevation_ft
protected

Definition at line 155 of file navrecord.hxx.

◆ _last_vehicle_update

SGTimeStamp FGMobileNavRecord::_last_vehicle_update
protected

Definition at line 153 of file navrecord.hxx.

◆ _vehicle_node

SGPropertyNode_ptr FGMobileNavRecord::_vehicle_node
protected

Definition at line 154 of file navrecord.hxx.


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