]> git.mxchange.org Git - flightgear.git/blob - src/Airports/parking.hxx
c96ab1d241248ae2a34c3d030da027dd1ee441c5
[flightgear.git] / src / Airports / parking.hxx
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.
4 //
5 // Written by Durk Talsma, started December 2004.
6 //
7 // Copyright (C) 2004 Durk Talsma.
8 //
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.
13 //
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.
18 //
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.
22 //
23 // $Id$
24
25 #ifndef _PARKING_HXX_
26 #define _PARKING_HXX_
27
28 #ifndef __cplusplus
29 # error This library requires C++
30 #endif
31
32 #include <simgear/compiler.h>
33
34 #include STL_STRING
35 #include <vector>
36
37 #include "gnnode.hxx"
38
39 SG_USING_STD(string);
40 SG_USING_STD(vector);
41
42 class FGParking : public FGTaxiNode {
43 private:
44   double heading;
45   double radius;
46   string parkingName;
47   string type;
48   string airlineCodes;
49  
50   bool available;
51
52   
53
54 public:
55   FGParking() { available = true;};
56   //FGParking(FGParking &other);
57   FGParking(double lat,
58             double lon,
59             double hdg,
60             double rad,
61             int idx,
62             const string& name,
63             const string& tpe,
64             const string& codes);
65
66   void setHeading  (double hdg)  { heading     = hdg;  };
67   void setRadius   (double rad)  { radius      = rad;  };
68
69   void setName     (const string& name) { parkingName = name; };
70   void setType     (const string& tpe)  { type        = tpe;  };
71   void setCodes    (const string& codes){ airlineCodes= codes;};
72
73   bool isAvailable ()         { return available;};
74   void setAvailable(bool val) { available = val; };
75   
76   double getHeading  () { return heading;     };
77   double getRadius   () { return radius;      };
78
79   string getType     () { return type;        };
80   string getCodes    () { return airlineCodes;};
81   string getName     () { return parkingName; };
82
83   bool operator< (const FGParking &other) const {
84     return radius < other.radius; };
85 };
86
87 typedef vector<FGParking> FGParkingVec;
88 typedef vector<FGParking>::iterator FGParkingVecIterator;
89 typedef vector<FGParking>::const_iterator FGParkingVecConstIterator;
90
91 #endif