Ejemplo n.º 1
0
fixed 
AirspaceAircraftPerformance::SolutionHorizontal(fixed distance_min,
                                                fixed distance_max,
                                                fixed altitude, fixed h,
                                                fixed &intercept_distance) const
{
  if (!SolutionExists(distance_max, altitude, h, h))
    return fixed(-1);

  const fixed dh = altitude - h;

  if (distance_max <= distance_min) {
    // unique solution
    fixed t_this = SolutionGeneral(distance_max, dh);
    if (t_this != fixed_big) {
      intercept_distance = distance_max;
      return t_this;
    }
    return fixed(-1);
  }
  AirspaceAircraftInterceptHorizontal aaih(*this, distance_min, distance_max, dh);
  return aaih.solve(intercept_distance);
}
Ejemplo n.º 2
0
double 
AirspaceAircraftPerformance::SolutionHorizontal(double distance_min,
                                                double distance_max,
                                                double altitude, double h,
                                                double &intercept_distance) const
{
  if (!SolutionExists(distance_max, altitude, h, h))
    return -1;

  const auto dh = altitude - h;

  if (distance_max <= distance_min) {
    // unique solution
    auto t_this = SolutionGeneral(distance_max, dh);
    if (t_this != BIG) {
      intercept_distance = distance_max;
      return t_this;
    }
    return -1;
  }
  AirspaceAircraftInterceptHorizontal aaih(*this, distance_min, distance_max, dh);
  return aaih.solve(intercept_distance);
}