+ FGRunway* rwy;
+ FGAIFlightPlan *sid;
+ typedef vector <waypoint*> wpt_vector_type;
+ typedef wpt_vector_type::const_iterator wpt_vector_iterator;
+
+
+ wpt_vector_type waypoints;
+ wpt_vector_iterator wpt_iterator;
+
+ bool repeat;
+ double distance_to_go;
+ double lead_distance;
+ double leadInAngle;
+ time_t start_time;
+ time_t arrivalTime; // For AI/ATC purposes.
+ int leg;
+ int gateId, lastNodeVisited;
+ string activeRunway;
+ FGAirRoute airRoute;
+ FGTaxiRoute *taxiRoute;
+ string name;
+
+ void createPushBack(FGAIAircraft *, bool, FGAirport*, double, double, double, const string&, const string&, const string&);
+ void createPushBackFallBack(FGAIAircraft *, bool, FGAirport*, double, double, double, const string&, const string&, const string&);
+ void createTakeOff(FGAIAircraft *, bool, FGAirport *, double, const string&);
+ void createClimb(FGAIAircraft *, bool, FGAirport *, double, double, const string&);
+ void createCruise(FGAIAircraft *, bool, FGAirport*, FGAirport*, double, double, double, double, const string&);
+ void createDescent(FGAIAircraft *, FGAirport *, double latitude, double longitude, double speed, double alt,const string&, double distance);
+ void createLanding(FGAIAircraft *, FGAirport *, const string&);
+ void createParking(FGAIAircraft *, FGAirport *, double radius);
+ void deleteWaypoints();
+ void resetWaypoints();
+
+ void createLandingTaxi(FGAIAircraft *, FGAirport *apt, double radius, const string& fltType, const string& acType, const string& airline);
+ void createDefaultLandingTaxi(FGAIAircraft *, FGAirport* aAirport);
+ void createDefaultTakeoffTaxi(FGAIAircraft *, FGAirport* aAirport, FGRunway* aRunway);
+ void createTakeoffTaxi(FGAIAircraft *, bool firstFlight, FGAirport *apt, double radius, const string& fltType, const string& acType, const string& airline);
+
+ double getTurnRadius(double, bool);
+
+ waypoint* createOnGround(FGAIAircraft *, const std::string& aName, const SGGeod& aPos, double aElev, double aSpeed);
+ waypoint* createInAir(FGAIAircraft *, const std::string& aName, const SGGeod& aPos, double aElev, double aSpeed);
+ waypoint* cloneWithPos(FGAIAircraft *, waypoint* aWpt, const std::string& aName, const SGGeod& aPos);
+ waypoint* clone(waypoint* aWpt);
+
+
+ //void createCruiseFallback(bool, FGAirport*, FGAirport*, double, double, double, double);
+ void evaluateRoutePart(double deplat, double deplon, double arrlat, double arrlon);
+ public:
+ wpt_vector_iterator getFirstWayPoint() { return waypoints.begin(); };
+ wpt_vector_iterator getLastWayPoint() { return waypoints.end(); };