X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FAIModel%2FAIFlightPlanCreatePushBack.cxx;h=34f21a1fc196b0faabef515b10a6c18e6b4613fe;hb=38226af24ec01e8f0a20d7fd73ef838a69f6ef25;hp=5dc01732874013e880a413e0f8f333d5724834fe;hpb=d24fe199143c3cd0adecd74f02430125e2bad45e;p=flightgear.git diff --git a/src/AIModel/AIFlightPlanCreatePushBack.cxx b/src/AIModel/AIFlightPlanCreatePushBack.cxx index 5dc017328..34f21a1fc 100644 --- a/src/AIModel/AIFlightPlanCreatePushBack.cxx +++ b/src/AIModel/AIFlightPlanCreatePushBack.cxx @@ -22,15 +22,21 @@ # include #endif -#include "AIFlightPlan.hxx" #include + +#include #include #include #include #include +#include "AIFlightPlan.hxx" +#include "AIAircraft.hxx" +#include "performancedata.hxx" + +// TODO: Use James Turner's createOnGround functions. void FGAIFlightPlan::createPushBack(FGAIAircraft *ac, bool firstFlight, FGAirport *dep, double latitude, @@ -41,6 +47,9 @@ void FGAIFlightPlan::createPushBack(FGAIAircraft *ac, const string& airline) { double lat, lon, heading; + double vTaxi = ac->getPerformance()->vTaxi(); + double vTaxiBackward = vTaxi * (-2.0/3.0); + double vTaxiReduced = vTaxi * (2.0/3.0); FGTaxiRoute *pushBackRoute; // Active runway can be conditionally set by ATC, so at the start of a new flight, this // must be reset. @@ -73,7 +82,7 @@ void FGAIFlightPlan::createPushBack(FGAIAircraft *ac, // Elevation is currently disregarded when on_ground is true // because the AIModel obtains a periodic ground elevation estimate. wpt->altitude = dep->getElevation(); - wpt->speed = -10; + wpt->speed = vTaxiBackward; wpt->crossat = -10000; wpt->gear_down = true; wpt->flaps_down= true; @@ -139,7 +148,7 @@ void FGAIFlightPlan::createPushBack(FGAIAircraft *ac, // Elevation is currently disregarded when on_ground is true // because the AIModel obtains a periodic ground elevation estimate. wpt->altitude = dep->getElevation(); - wpt->speed = -10; + wpt->speed = vTaxiBackward; wpt->crossat = -10000; wpt->gear_down = true; wpt->flaps_down= true; @@ -150,13 +159,13 @@ void FGAIFlightPlan::createPushBack(FGAIAircraft *ac, } // some special considerations for the last point: wpt->name = string("PushBackPoint"); - wpt->speed = 15; + wpt->speed = vTaxi; //for (wpt_vector_iterator i = waypoints.begin(); i != waypoints.end(); i++) { // cerr << "Waypoint Name: " << (*i)->name << endl; //} } else { //cerr << "Creating direct forward departure route fragment" << endl; - double lat2, lon2, az2; + double lat2 = 0.0, lon2 = 0.0, az2 = 0.0; waypoint *wpt; geo_direct_wgs_84 ( 0, lat, lon, heading, 2, &lat2, &lon2, &az2 ); @@ -165,7 +174,7 @@ void FGAIFlightPlan::createPushBack(FGAIAircraft *ac, wpt->latitude = lat2; wpt->longitude = lon2; wpt->altitude = dep->getElevation(); - wpt->speed = 10; + wpt->speed = vTaxiReduced; wpt->crossat = -10000; wpt->gear_down = true; wpt->flaps_down= true; @@ -181,7 +190,7 @@ void FGAIFlightPlan::createPushBack(FGAIAircraft *ac, wpt->latitude = lat2; wpt->longitude = lon2; wpt->altitude = dep->getElevation(); - wpt->speed = 10; + wpt->speed = vTaxiReduced; wpt->crossat = -10000; wpt->gear_down = true; wpt->flaps_down= true; @@ -209,7 +218,7 @@ void FGAIFlightPlan::createPushBack(FGAIAircraft *ac, wpt->latitude = tn->getLatitude(); wpt->longitude = tn->getLongitude(); wpt->altitude = dep->getElevation(); - wpt->speed = 10; + wpt->speed = vTaxiReduced; wpt->crossat = -10000; wpt->gear_down = true; wpt->flaps_down= true; @@ -239,9 +248,13 @@ void FGAIFlightPlan::createPushBackFallBack(FGAIAircraft *ac, bool firstFlight, double heading; double lat; double lon; - double lat2; - double lon2; - double az2; + double lat2 = 0.0; + double lon2 = 0.0; + double az2 = 0.0; + + double vTaxi = ac->getPerformance()->vTaxi(); + double vTaxiBackward = vTaxi * (-2.0/3.0); + double vTaxiReduced = vTaxi * (2.0/3.0); @@ -255,7 +268,7 @@ void FGAIFlightPlan::createPushBackFallBack(FGAIAircraft *ac, bool firstFlight, wpt->latitude = lat; wpt->longitude = lon; wpt->altitude = dep->getElevation(); - wpt->speed = -10; + wpt->speed = vTaxiBackward; wpt->crossat = -10000; wpt->gear_down = true; wpt->flaps_down= true; @@ -272,7 +285,7 @@ void FGAIFlightPlan::createPushBackFallBack(FGAIAircraft *ac, bool firstFlight, wpt->latitude = lat2; wpt->longitude = lon2; wpt->altitude = dep->getElevation(); - wpt->speed = -10; + wpt->speed = vTaxiBackward; wpt->crossat = -10000; wpt->gear_down = true; wpt->flaps_down= true; @@ -288,7 +301,7 @@ void FGAIFlightPlan::createPushBackFallBack(FGAIAircraft *ac, bool firstFlight, wpt->latitude = lat2; wpt->longitude = lon2; wpt->altitude = dep->getElevation(); - wpt->speed = 10; + wpt->speed = vTaxiReduced; wpt->crossat = -10000; wpt->gear_down = true; wpt->flaps_down= true;