1 // Airports forward declarations 2 // 3 // Copyright (C) 2013 Thomas Geymayer <tomgey@gmail.com> 4 // 5 // This program is free software; you can redistribute it and/or 6 // modify it under the terms of the GNU General Public License as 7 // published by the Free Software Foundation; either version 2 of the 8 // License, or (at your option) any later version. 9 // 10 // This program is distributed in the hope that it will be useful, but 11 // WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 // General Public License for more details. 14 // 15 // You should have received a copy of the GNU General Public License 16 // along with this program; if not, write to the Free Software 17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18 19 #ifndef AIRPORTS_FWD_HXX_ 20 #define AIRPORTS_FWD_HXX_ 21 22 #include <simgear/structure/SGSharedPtr.hxx> 23 24 #include <list> 25 #include <map> 26 #include <vector> 27 #include <string> 28 #include <ctime> // for time_t 29 30 // forward decls 31 class FGAirport; 32 class FGAirportDynamics; 33 class FGRunwayBase; 34 class FGRunway; 35 class FGHelipad; 36 class FGTaxiway; 37 class FGPavement; 38 39 class FGNavRecord; 40 41 class Block; 42 class FGTaxiNode; 43 class FGParking; 44 class FGTaxiSegment; 45 class FGTaxiRoute; 46 class FGGroundNetwork; 47 48 class RunwayList; 49 class RunwayGroup; 50 class FGRunwayPreference; 51 52 class FGSidStar; 53 54 class SGPropertyNode; 55 56 namespace flightgear { 57 class SID; 58 class STAR; 59 class Approach; 60 class Waypt; 61 class CommStation; 62 63 typedef std::vector<flightgear::SID*> SIDList; 64 typedef std::vector<STAR*> STARList; 65 typedef std::vector<Approach*> ApproachList; 66 67 typedef SGSharedPtr<Waypt> WayptRef; 68 typedef std::vector<WayptRef> WayptVec; 69 70 typedef SGSharedPtr<CommStation> CommStationRef; 71 typedef std::vector<CommStationRef> CommStationList; 72 typedef std::map<std::string, FGAirport*> AirportCache; 73 } 74 75 typedef SGSharedPtr<FGAirport> FGAirportRef; 76 typedef SGSharedPtr<FGRunwayBase> FGRunwayBaseRef; 77 typedef SGSharedPtr<FGRunway> FGRunwayRef; 78 typedef SGSharedPtr<FGHelipad> FGHelipadRef; 79 typedef SGSharedPtr<FGTaxiway> FGTaxiwayRef; 80 typedef SGSharedPtr<FGPavement> FGPavementRef; 81 typedef SGSharedPtr<FGParking> FGParkingRef; 82 typedef SGSharedPtr<FGAirportDynamics> FGAirportDynamicsRef; 83 84 typedef std::vector<FGRunwayRef> FGRunwayList; 85 typedef std::map<std::string, FGRunwayRef> FGRunwayMap; 86 typedef std::map<std::string, FGHelipadRef> FGHelipadMap; 87 88 typedef std::vector<FGTaxiwayRef> FGTaxiwayList; 89 typedef std::vector<FGPavementRef> FGPavementList; 90 typedef std::vector<FGParkingRef> FGParkingList; 91 92 typedef std::vector<FGTaxiSegment*> FGTaxiSegmentVector; 93 typedef FGTaxiSegmentVector::iterator FGTaxiSegmentVectorIterator; 94 95 typedef SGSharedPtr<FGTaxiNode> FGTaxiNodeRef; 96 typedef std::vector<FGTaxiNodeRef> FGTaxiNodeVector; 97 typedef FGTaxiNodeVector::iterator FGTaxiNodeVectorIterator; 98 typedef std::map<int, FGTaxiNodeRef> IndexTaxiNodeMap; 99 100 typedef std::vector<Block> BlockList; 101 typedef BlockList::iterator BlockListIterator; 102 103 typedef std::vector<time_t> TimeVector; 104 typedef std::vector<time_t>::iterator TimeVectorIterator; 105 106 typedef std::vector<FGTaxiRoute> TaxiRouteVector; 107 typedef std::vector<FGTaxiRoute>::iterator TaxiRouteVectorIterator; 108 109 typedef std::vector<RunwayList> RunwayListVec; 110 typedef std::vector<RunwayList>::iterator RunwayListVectorIterator; 111 typedef std::vector<RunwayList>::const_iterator RunwayListVecConstIterator; 112 113 typedef std::vector<RunwayGroup> PreferenceList; 114 typedef std::vector<RunwayGroup>::iterator PreferenceListIterator; 115 typedef std::vector<RunwayGroup>::const_iterator PreferenceListConstIterator; 116 117 #endif /* AIRPORTS_FWD_HXX_ */ 118