- wpt = createOnGround("accel", accelPoint, airportElev, speed);
- waypoints.push_back(wpt);
-
- //Start Climbing to 3000 ft. Let's do this
- // at the center of the runway for now:
- SGGeod rotate = rwy->pointOnCenterline(105.0+accelDistance);
- wpt = cloneWithPos(wpt, "SOC", rotate);
- wpt->altitude = airportElev+1000;
+ wpt = createOnGround(ac, "accel", accelPoint, airportElev, vRotate);
+ waypoints.push_back(wpt);
+
+
+ accelDistance = (vTakeoffMetric*vTakeoffMetric - vTaxiMetric*vTaxiMetric) / (2*accelMetric);
+ cerr << "Using " << accelDistance << " " << accelMetric << " " << vTakeoffMetric << endl;
+ accelPoint = rwy->pointOnCenterline(105.0+accelDistance);
+ wpt = createOnGround(ac, "rotate", accelPoint, airportElev, vTakeoff);
+ waypoints.push_back(wpt);
+
+ accelDistance = ((vTakeoffMetric*1.1)*(vTakeoffMetric*1.1) - vTaxiMetric*vTaxiMetric) / (2*accelMetric);
+ cerr << "Using " << accelDistance << " " << accelMetric << " " << vTakeoffMetric << endl;
+ accelPoint = rwy->pointOnCenterline(105.0+accelDistance);
+ wpt = createOnGround(ac, "rotate", accelPoint, airportElev+1000, vTakeoff*1.1);