1 // parking.hxx - A class to handle airport startup locations in
2 // FlightGear. This code is intended to be used by AI code and
3 // initial user-startup location selection.
5 // Written by Durk Talsma, started December 2004.
7 // Copyright (C) 2004 Durk Talsma.
9 // This program is free software; you can redistribute it and/or
10 // modify it under the terms of the GNU General Public License as
11 // published by the Free Software Foundation; either version 2 of the
12 // License, or (at your option) any later version.
14 // This program is distributed in the hope that it will be useful, but
15 // WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 // General Public License for more details.
19 // You should have received a copy of the GNU General Public License
20 // along with this program; if not, write to the Free Software
21 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
29 # error This library requires C++
32 #include <simgear/compiler.h>
33 #include <simgear/sg_inlines.h>
37 #include <memory> // for std::auto_ptr
44 class FGParking : public FGTaxiNode
49 std::string parkingName;
51 std::string airlineCodes;
55 std::auto_ptr<FGTaxiRoute> pushBackRoute;
57 SG_DISABLE_COPY(FGParking);
59 FGParking(PositionedID aGuid, int index, const SGGeod& pos,
60 double heading, double radius,
61 const std::string& name, const std::string& type,
62 const std::string& codes);
65 void setHeading (double hdg) { heading = hdg; };
66 void setRadius (double rad) { radius = rad; };
68 void setName (const std::string& name) { parkingName = name; };
69 void setType (const std::string& tpe) { type = tpe; };
70 void setCodes (const std::string& codes){ airlineCodes= codes;};
72 void setPushBackRoute(std::auto_ptr<FGTaxiRoute> val) { pushBackRoute = val; };
73 void setPushBackPoint(int val) { pushBackPoint = val; };
75 bool isAvailable () const { return available;};
76 void setAvailable(bool val) { available = val; };
78 double getHeading () const { return heading; };
79 double getRadius () const { return radius; };
81 std::string getType () const { return type; };
82 std::string getCodes () const { return airlineCodes;};
83 std::string getName () const { return parkingName; };
85 FGTaxiRoute * getPushBackRoute () { return pushBackRoute.get(); };
87 int getPushBackPoint () { return pushBackPoint; };
89 bool operator< (const FGParking &other) const {
90 return radius < other.radius; };
93 typedef std::vector<FGParking*> FGParkingVec;
94 typedef FGParkingVec::iterator FGParkingVecIterator;
95 typedef FGParkingVec::const_iterator FGParkingVecConstIterator;