X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FNavaids%2Ffixlist.hxx;h=7377769712d79a02d3daa673798fe464e9967925;hb=bb2b03c7e392e107aeaf7dbc4eecc59064b28512;hp=91d0c539b2ccf88bb3f3334500ee867a8a42aee6;hpb=d9bfd5a425df1bad7e3c53a64adce871e299a6b9;p=flightgear.git diff --git a/src/Navaids/fixlist.hxx b/src/Navaids/fixlist.hxx index 91d0c539b..737776971 100644 --- a/src/Navaids/fixlist.hxx +++ b/src/Navaids/fixlist.hxx @@ -32,17 +32,19 @@ #include #include -#include "fix.hxx" +class FGFix; -SG_USING_STD(multimap); -SG_USING_STD(vector); -SG_USING_STD(string); +using std::multimap; +using std::vector; +using std::string; // fix names may be globally non-unique. Allow for this. -typedef multimap < string, FGFix > fix_map_type; +typedef multimap < string, FGFix* > fix_map_type; typedef fix_map_type::iterator fix_map_iterator; typedef fix_map_type::const_iterator fix_map_const_iterator; +class FGIdentOrdering; // FIXME, currently declared in Airports/simple.hxx + class FGFixList { fix_map_type fixlist; @@ -56,22 +58,24 @@ public: bool init( SGPath path ); // query the database for the specified fix - bool query( const string& ident, FGFix *f ); + bool query( const string& ident, FGFix* &f ); + + const FGFix* search(const string& ident); // Find fix of requested type with closest exact or following ident // (by ACSII values) to that supplied (ie. a lower-bound lookup). // Supplying true for exact forces only exact matches to be returned (similar to above function) // Returns NULL if no match found. - const FGFix* findFirstByIdent( const string& ident, bool exact = false ); + const FGFix* findFirstByIdent( const string& ident, FGIdentOrdering* aOrder = NULL); // query the database for the specified fix, lon and lat are // in degrees, elev is in meters bool query_and_offset( const string& ident, double lon, double lat, - double elev, FGFix *f, double *heading, + double elev, FGFix* &f, double *heading, double *dist ); // Return a pointer to the master fixlist - inline const fix_map_type* getFixList() { return(&fixlist); } + // inline const fix_map_type* getFixList() { return(&fixlist); } };