void
AirspaceFormatter::FormatAltitude(TCHAR *buffer,
                                  const AirspaceAltitude &altitude)
{
  FormatAltitudeShort(buffer, altitude);

  if (altitude.reference != AltitudeReference::MSL &&
      positive(altitude.altitude))
    _stprintf(buffer + _tcslen(buffer), _T(" %d %s"),
              iround(Units::ToUserAltitude(altitude.altitude)),
              Units::GetAltitudeName());
}
Пример #2
0
void
AirspaceFormatter::FormatAltitude(TCHAR *buffer,
                                  const AirspaceAltitude &altitude)
{
  FormatAltitudeShort(buffer, altitude);

  if ((altitude.reference == AltitudeReference::MSL ||
       altitude.reference == AltitudeReference::AGL) &&
      Units::GetUserAltitudeUnit() == Unit::METER)
    /* additionally show airspace altitude in feet, because aviation
       charts usually print altitudes in feet */
    StringFormatUnsafe(buffer + _tcslen(buffer), _T(" (%d %s)"),
                       iround(Units::ToUserUnit(altitude.altitude, Unit::FEET)),
                       Units::GetUnitName(Unit::FEET));

  if (altitude.reference != AltitudeReference::MSL &&
      positive(altitude.altitude))
    StringFormatUnsafe(buffer + _tcslen(buffer), _T(" %d %s"),
                       iround(Units::ToUserAltitude(altitude.altitude)),
                       Units::GetAltitudeName());
}