// simple.hxx -- a really simplistic class to manage airport ID,
-// lat, lon of the center of one of it's runways, and
+// lat, lon of the center of one of it's runways, and
// elevation in feet.
//
// Written by Curtis Olson, started April 1998.
#define _FG_SIMPLE_HXX
-#ifndef __cplusplus
+#ifndef __cplusplus
# error This library requires C++
-#endif
+#endif
#ifdef HAVE_CONFIG_H
#include <simgear/math/point3d.hxx>
#include <simgear/compiler.h>
-//#include <simgear/xml/easyxml.hxx>
#include STL_STRING
#include <map>
#include "groundnetwork.hxx"
#include "dynamics.hxx"
+
SG_USING_STD(string);
SG_USING_STD(map);
SG_USING_STD(set);
**************************************************************************************/
class FGAirport {
private:
- string _id;
- double _longitude; // degrees
- double _latitude; // degrees
- double _elevation; // ft
- string _name;
- bool _has_metar;
- FGAirportDynamics *dynamics;
+ string _id;
+ double _longitude; // degrees
+ double _latitude; // degrees
+ double _elevation; // ft
+ string _name;
+ bool _has_metar;
+ FGAirportDynamics *dynamics;
public:
- FGAirport();
- // FGAirport(const FGAirport &other);
- FGAirport(const string& id, double lon, double lat, double elev, const string& name, bool has_metar);
- ~FGAirport();
-
- string getId() const { return _id;};
- const string &getName() const { return _name;};
- double getLongitude() const { return _longitude;};
- // Returns degrees
- double getLatitude() const { return _latitude; };
- // Returns ft
- double getElevation() const { return _elevation;};
- bool getMetar() const { return _has_metar;};
-
- void setId(const string& id) { _id = id;};
- void setMetar(bool value) { _has_metar = value; };
-
- FGAirportDynamics *getDynamics();
+ FGAirport();
+ // FGAirport(const FGAirport &other);
+ FGAirport(const string& id, double lon, double lat, double elev, const string& name, bool has_metar);
+ ~FGAirport();
+
+ string getId() const { return _id; }
+ const string &getName() const { return _name; }
+ double getLongitude() const { return _longitude; }
+ // Returns degrees
+ double getLatitude() const { return _latitude; }
+ // Returns ft
+ double getElevation() const { return _elevation; }
+ bool getMetar() const { return _has_metar; }
+
+ void setId(const string& id) { _id = id; }
+ void setMetar(bool value) { _has_metar = value; }
+
+ FGAirportDynamics *getDynamics();
+
private:
- FGAirport operator=(FGAirport &other);
- FGAirport(const FGAirport&);
+ FGAirport operator=(FGAirport &other);
+ FGAirport(const FGAirport&);
};
+
+
typedef map < string, FGAirport* > airport_map;
typedef airport_map::iterator airport_map_iterator;
typedef airport_map::const_iterator const_airport_map_iterator;
typedef airport_list::const_iterator const_airport_list_iterator;
-class FGAirportList {
+class FGAirportList {
private:
airport_map airports_by_id;
airport_list airports_array;
- //set < string > ai_dirs;
+ //set < string > ai_dirs;
public:
-
// Constructor (new)
FGAirportList();
// search for the specified id.
// Returns NULL if unsucessfull.
FGAirport* search( const string& id );
-
+
// Search for the next airport in ASCII sequence to the supplied id.
// eg. id = "KDC" or "KDCA" would both return "KDCA".
// If exact = true then only exact matches are returned.
// (currently a linear inefficient search so it's probably not
// best to use this at runtime.) If with_metar is true, then only
// return station id's marked as having metar data.
- // Returns NULL if fails (unlikely unless none have metar and with_metar spec'd!)
+ // Returns NULL if fails (unlikely unless none have metar and with_metar spec'd!)
FGAirport* search( double lon_deg, double lat_deg, bool with_metar );
/**
* Return a specific airport, by position.
*/
const FGAirport *getAirport( unsigned int index ) const;
-
+
/**
* Return a pointer to the raw airport list
*/
- inline const airport_list* getAirportList() { return(&airports_array); }
+ inline const airport_list* getAirportList() { return (&airports_array); }
/**
* Mark the specified airport record as not having metar