public static double DistanceLimitedAltitude(this FuelDataItem item, double distance, double grossWt) { var c = item.ClimbGradient(grossWt); var d = item.DescentGradient(grossWt); return(distance * NmFtRatio * c * d / (c + d)); }
/// <exception cref="ArgumentException">Invalid vertical mode.</exception> private double ClimbGradient(double grossWt, VerticalMode mode) { switch (mode) { case VerticalMode.Climb: return(fuelData.ClimbGradient(grossWt)); case VerticalMode.Cruise: return(0.0); case VerticalMode.Descent: return(-fuelData.DescentGradient(grossWt)); default: throw new ArgumentException(); } }