]> git.mxchange.org Git - flightgear.git/blobdiff - src/Airports/parking.hxx
Replace the NOAA METAR URL with the new, updated one
[flightgear.git] / src / Airports / parking.hxx
index a64d5509b40a5ef0a760df2a4f7b3921192c9d4d..9966553651229e2414bc8692dca4db87b0a3b8a4 100644 (file)
 #endif
 
 #include <simgear/compiler.h>
+#include <simgear/sg_inlines.h>
 
-#include STL_STRING
-#include <vector>
+#include <string>
+#include <memory> // for std::auto_ptr
 
+#include "gnnode.hxx"
+#include <Airports/airports_fwd.hxx>
 
-SG_USING_STD(string);
-SG_USING_STD(vector);
-
-double processPosition(const string& pos);
-
-class FGParking {
+class FGParking : public FGTaxiNode
+{
 private:
-  double latitude;
-  double longitude;
-  double heading;
-  double radius;
-  int index;
-  string parkingName;
-  string type;
-  string airlineCodes;
-  bool available;
+  const double heading;
+  const double radius;
+  const std::string parkingName;
+  const std::string type;
+  const std::string airlineCodes;
+  FGTaxiNodeRef pushBackPoint;
 
+  SG_DISABLE_COPY(FGParking);
+public:
+  FGParking(int index,
+            const SGGeod& pos,
+            double heading, double radius,
+            const std::string& name, const std::string& type,
+            const std::string& codes);
+  virtual ~FGParking();
   
+  double getHeading  () const { return heading;     };
+  double getRadius   () const { return radius;      };
 
-public:
-  FGParking() { available = true;};
-  //FGParking(FGParking &other);
-  FGParking(double lat,
-           double lon,
-           double hdg,
-           double rad,
-           int idx,
-           const string& name,
-           const string& tpe,
-           const string& codes);
-  void setLatitude (const string& lat)  { latitude    = processPosition(lat);  };
-  void setLongitude(const string& lon)  { longitude   = processPosition(lon);  };
-  void setHeading  (double hdg)  { heading     = hdg;  };
-  void setRadius   (double rad)  { radius      = rad;  };
-  void setIndex    (int    idx)  { index       = idx;  };
-  void setName     (const string& name) { parkingName = name; };
-  void setType     (const string& tpe)  { type        = tpe;  };
-  void setCodes    (const string& codes){ airlineCodes= codes;};
+  std::string getType     () const { return type;        };
+  std::string getCodes    () const { return airlineCodes;};
+  std::string getName     () const { return parkingName; };
 
-  bool isAvailable ()         { return available;};
-  void setAvailable(bool val) { available = val; };
-  
-  double getLatitude () { return latitude;    };
-  double getLongitude() { return longitude;   };
-  double getHeading  () { return heading;     };
-  double getRadius   () { return radius;      };
-  int    getIndex    () { return index;       };
-  string getType     () { return type;        };
-  string getCodes    () { return airlineCodes;};
-  string getName     () { return parkingName; };
+  // TODO do parkings have different name and ident?
+  virtual const std::string& name() const { return parkingName; }
 
-  bool operator< (const FGParking &other) const {return radius < other.radius; };
-};
+  void setPushBackPoint(const FGTaxiNodeRef& node);
+  FGTaxiNodeRef getPushBackPoint () { return pushBackPoint; };
 
-typedef vector<FGParking> FGParkingVec;
-typedef vector<FGParking>::iterator FGParkingVecIterator;
-typedef vector<FGParking>::const_iterator FGParkingVecConstIterator;
+  bool operator< (const FGParking &other) const {
+    return radius < other.radius; };
+};
 
 #endif