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 #include <simgear/compiler.h> 29 #include <simgear/sg_inlines.h> 30 31 #include <string> 32 33 #include "gnnode.hxx" 34 #include <Airports/airports_fwd.hxx> 35 36 class FGParking : public FGTaxiNode 37 { 38 private: 39 const double heading; 40 const double radius; 41 const std::string type; 42 const std::string airlineCodes; 43 FGTaxiNodeRef pushBackPoint; 44 45 SG_DISABLE_COPY(FGParking); 46 public: isType(FGPositioned::Type ty)47 static bool isType(FGPositioned::Type ty) 48 { return (ty == FGPositioned::PARKING); } 49 50 FGParking(int index, 51 const SGGeod& pos, 52 double heading, double radius, 53 const std::string& name, const std::string& type, 54 const std::string& codes); 55 virtual ~FGParking() = default; 56 getHeading() const57 double getHeading () const { return heading; }; getRadius() const58 double getRadius () const { return radius; }; 59 getType() const60 std::string getType () const { return type; }; getCodes() const61 std::string getCodes () const { return airlineCodes;}; getName() const62 std::string getName () const { return ident(); }; 63 64 void setPushBackPoint(const FGTaxiNodeRef& node); getPushBackPoint()65 FGTaxiNodeRef getPushBackPoint () { return pushBackPoint; }; 66 operator <(const FGParking & other) const67 bool operator< (const FGParking &other) const { 68 return radius < other.radius; }; 69 }; 70 71 #endif 72