X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FNavaids%2Fnavlist.hxx;h=b975f95b0e9b197c229f605b4a39fdd4b1ee45f2;hb=341216e56a427edf614a9a1dd3be9c2802b61566;hp=63e0d8ea116c196e75edcc004e0bc791a5e1dbe1;hpb=c9813d1b5d79b4aad13c263690a0223086af25ac;p=flightgear.git diff --git a/src/Navaids/navlist.hxx b/src/Navaids/navlist.hxx index 63e0d8ea1..b975f95b0 100644 --- a/src/Navaids/navlist.hxx +++ b/src/Navaids/navlist.hxx @@ -27,47 +27,48 @@ #include #include +#include +#include #include #include -#include STL_STRING +#include #include "navrecord.hxx" -SG_USING_STD(map); -SG_USING_STD(vector); -SG_USING_STD(string); +using std::map; +using std::vector; +using std::string; -// convenience types -typedef vector < FGNavRecord* > nav_list_type; -typedef vector < FGTACANRecord* > tacan_list_type; + +// FGNavList ------------------------------------------------------------------ + +typedef SGSharedPtr nav_rec_ptr; +typedef vector < nav_rec_ptr > nav_list_type; typedef nav_list_type::iterator nav_list_iterator; typedef nav_list_type::const_iterator nav_list_const_iterator; typedef map < int, nav_list_type > nav_map_type; -typedef map < int, tacan_list_type > tacan_map_type; typedef nav_map_type::iterator nav_map_iterator; typedef nav_map_type::const_iterator nav_map_const_iterator; typedef map < string, nav_list_type > nav_ident_map_type; typedef nav_ident_map_type::iterator nav_ident_map_iterator; -typedef map < string, tacan_list_type > tacan_ident_map_type; + class FGNavList { - //nav_list_type navlist; // DCL - this doesn't appear to be used any more - // and can probably be removed. nav_list_type carrierlist; nav_map_type navaids; nav_map_type navaids_by_tile; nav_ident_map_type ident_navaids; - + // Given a point and a list of stations, return the closest one to // the specified point. - FGNavRecord *findNavFromList( const Point3D &aircraft, + FGNavRecord *findNavFromList( const SGVec3d &aircraft, const nav_list_type &stations ); - + public: FGNavList(); @@ -78,23 +79,22 @@ public: // add an entry bool add( FGNavRecord *n ); - //bool add( FGTACANRecord *r ); /** Query the database for the specified station. It is assumed * that there will be multiple stations with matching frequencies * so a position must be specified. Lon and lat are in radians, * elev is in meters. - */ + */ FGNavRecord *findByFreq( double freq, double lon, double lat, double elev ); // locate closest item in the DB matching the requested ident FGNavRecord *findByIdent( const char* ident, const double lon, const double lat ); - - // Find items of requested type with closest exact or subsequent ident + + // Find items of requested type with closest exact or subsequent ident // (by ASCII code value) to that supplied. // Supplying true for exact forces only exact matches to be returned (similar to above function) // Returns an empty list if no match found - calling function should check for this! - nav_list_type findFirstByIdent( string ident, fg_nav_types type, bool exact = false ); + nav_list_type findFirstByIdent( const string& ident, fg_nav_types type, bool exact = false ); // Given an Ident and optional freqency, return the first matching // station. @@ -110,19 +110,24 @@ public: inline const nav_map_type& get_navaids() const { return navaids; } }; + + + +// FGTACANList ---------------------------------------------------------------- + + +typedef SGSharedPtr tacan_rec_ptr; +typedef vector < tacan_rec_ptr > tacan_list_type; +typedef map < int, tacan_list_type > tacan_map_type; +typedef map < string, tacan_list_type > tacan_ident_map_type; + + class FGTACANList { tacan_list_type channellist; - //nav_list_type carrierlist; tacan_map_type channels; - //nav_map_type navaids_by_tile; tacan_ident_map_type ident_channels; - - // Given a point and a list of stations, return the closest one to - // the specified point. - /*FGNavRecord *findNavFromList( const Point3D &aircraft, - const nav_list_type &stations );*/ - + public: FGTACANList(); @@ -132,12 +137,11 @@ public: bool init(); // add an entry - bool add( FGTACANRecord *r ); - - // Given a TACAN Channel, return the appropriate frequency. + + // Given a TACAN Channel, return the appropriate frequency. FGTACANRecord *findByChannel( const string& channel ); - + }; #endif // _FG_NAVLIST_HXX