예제 #1
0
gcc_pure
static bool
IsReachable(const GlideResult &result, bool final_glide)
{
  return final_glide
    ? result.IsFinalGlide()
    : result.IsAchievable();
}
예제 #2
0
void
InfoBoxContentNextAltitudeArrival::Update(InfoBoxData &data)
{
  // pilots want this to be assuming terminal flight to this wp

  const TaskStats &task_stats = XCSoarInterface::Calculated().task_stats;
  const GlideResult next_solution = XCSoarInterface::Calculated().common_stats.next_solution;
  if (!task_stats.task_valid || !next_solution.IsFinalGlide()) {
    data.SetInvalid();
    return;
  }

  // Set Value
  TCHAR tmp[32];
  fixed alt = next_solution.GetArrivalAltitude(XCSoarInterface::Basic().nav_altitude);
  Units::FormatUserAltitude(alt, tmp, 32, false);
  data.SetValue(tmp);

  // Set Unit
  data.SetValueUnit(Units::current.altitude_unit);
}