#endif
#include <simgear/compiler.h>
+#include <simgear/sg_inlines.h>
-#include STL_STRING
+#include <string>
#include <vector>
+#include <memory> // for std::auto_ptr
+#include "gnnode.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;
+ const PositionedID pushBackPoint;
+ SG_DISABLE_COPY(FGParking);
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); };
+ FGParking(PositionedID aGuid, const SGGeod& pos,
+ double heading, double radius,
+ const std::string& name, const std::string& type,
+ const std::string& codes,
+ PositionedID pushBackNode);
+ virtual ~FGParking();
+#if 0
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;};
- bool isAvailable () { return available;};
- void setAvailable(bool val) { available = val; };
+ void setName (const std::string& name) { parkingName = name; };
+ void setType (const std::string& tpe) { type = tpe; };
+ void setCodes (const std::string& codes){ airlineCodes= codes;};
+#endif
- 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; };
+ double getHeading () const { return heading; };
+ double getRadius () const { return radius; };
+
+ std::string getType () const { return type; };
+ std::string getCodes () const { return airlineCodes;};
+ std::string getName () const { return parkingName; };
+
+ int getPushBackPoint () { return pushBackPoint; };
- bool operator< (const FGParking &other) const {return radius < other.radius; };
+ bool operator< (const FGParking &other) const {
+ return radius < other.radius; };
};
-typedef vector<FGParking> FGParkingVec;
-typedef vector<FGParking>::iterator FGParkingVecIterator;
-typedef vector<FGParking>::const_iterator FGParkingVecConstIterator;
+typedef std::vector<FGParking*> FGParkingVec;
+typedef FGParkingVec::iterator FGParkingVecIterator;
+typedef FGParkingVec::const_iterator FGParkingVecConstIterator;
#endif