当前位置: 首页>>代码示例>>C++>>正文


C++ Waypoint::IsLandable方法代码示例

本文整理汇总了C++中Waypoint::IsLandable方法的典型用法代码示例。如果您正苦于以下问题:C++ Waypoint::IsLandable方法的具体用法?C++ Waypoint::IsLandable怎么用?C++ Waypoint::IsLandable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Waypoint的用法示例。


在下文中一共展示了Waypoint::IsLandable方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: DrawLandable

void
WaypointIconRenderer::Draw(const Waypoint &waypoint, const PixelPoint &point,
                           Reachability reachable, bool in_task)
{
    if (waypoint.IsLandable())
        DrawLandable(waypoint, point, reachable);
    else
        // non landable turnpoint
        GetWaypointIcon(look, waypoint, small_icons, in_task).Draw(canvas, point);
}
开发者ID:ahsparrow,项目名称:xcsoar,代码行数:10,代码来源:WaypointIconRenderer.cpp

示例2: UnorderedTaskPoint

bool 
GotoTask::DoGoto(const Waypoint & wp)
{
  if (task_behaviour.goto_nonlandable || wp.IsLandable()) {
    delete tp;
    tp = new UnorderedTaskPoint(wp, task_behaviour);
    stats.start.Reset();
    force_full_update = true;
    return true;
  } else {
    return false;
  }
}
开发者ID:CnZoom,项目名称:XcSoarPull,代码行数:13,代码来源:GotoTask.cpp

示例3: AddText

void
WaypointEditWidget::Prepare(gcc_unused ContainerWindow &parent,
                            gcc_unused const PixelRect &rc)
{
  AddText(_("Name"), nullptr, value.name.c_str());
  AddText(_("Comment"), nullptr, value.comment.c_str());
  Add(_("Location"), nullptr, new GeoPointDataField(value.location,UIGlobals::GetFormatSettings().coordinate_format));
  AddFloat(_("Altitude"), nullptr,
           _T("%.0f %s"), _T("%.0f"),
           0, 30000, 5, false,
           UnitGroup::ALTITUDE, value.elevation);
  AddEnum(_("Type"), nullptr, waypoint_types,
          value.IsAirport() ? 1u : (value.IsLandable() ? 2u : 0u ));
}
开发者ID:rkohel,项目名称:XCSoar,代码行数:14,代码来源:dlgWaypointEdit.cpp

示例4: skip

static void
TestZanderWaypoint(const Waypoint org_wp, const Waypoint *wp)
{
    if (wp == NULL) {
        skip(7, 0, "waypoint not found");
        return;
    }

    ok1(wp->type == ((!org_wp.IsLandable()) ?
                     Waypoint::TYPE_NORMAL : (Waypoint::Type)org_wp.type));
    ok1(wp->flags.turn_point == org_wp.flags.turn_point);
    ok1(wp->flags.home == org_wp.flags.home);
    ok1(wp->flags.start_point == org_wp.flags.start_point);
    ok1(wp->flags.finish_point == org_wp.flags.finish_point);
}
开发者ID:macsux,项目名称:XCSoar,代码行数:15,代码来源:TestWaypointReader.cpp

示例5: AddText

void
WaypointEditWidget::Prepare(ContainerWindow &parent, const PixelRect &rc)
{
    AddText(_("Name"), nullptr, value.name.c_str());
    AddText(_("Comment"), nullptr, value.comment.c_str());
    Add(_("Location"), nullptr, new GeoPointDataField(value.location,
            // TODO: use configured CoordinateFormat
            CoordinateFormat::DDMMSS));
    AddFloat(_("Altitude"), nullptr,
             _T("%.0f %s"), _T("%.0f"),
             fixed(0), fixed(30000), fixed(5), false,
             UnitGroup::ALTITUDE, value.elevation);
    AddEnum(_("Type"), nullptr, waypoint_types,
            value.IsAirport() ? 1u : (value.IsLandable() ? 2u : 0u ));
}
开发者ID:hm17gh1,项目名称:XCSoar,代码行数:15,代码来源:dlgWaypointEdit.cpp

示例6: ToASCII

bool
CAI302Device::WriteNavpoint(unsigned id, const Waypoint &wp,
                            OperationEnvironment &env)
{
  if (!DownloadMode(env))
    return false;

  char name[64], remark[64];
  ToASCII(name, ARRAY_SIZE(name), wp.name.c_str());
  ToASCII(remark, ARRAY_SIZE(remark), wp.comment.c_str());

  if (!CAI302::DownloadNavpoint(port, wp.location, (int)wp.elevation, id,
                                wp.IsTurnpoint(), wp.IsAirport(), false,
                                wp.IsLandable(), wp.IsStartpoint(),
                                wp.IsFinishpoint(), wp.flags.home,
                                false, wp.IsTurnpoint(), false,
                                name, remark, env)) {
    mode = Mode::UNKNOWN;
    return false;
  }

  return true;
}
开发者ID:alon,项目名称:xcsoar,代码行数:23,代码来源:Manage.cpp

示例7: FormatLabel

  void FormatLabel(TCHAR *buffer, size_t buffer_size,
                   const Waypoint &way_point,
                   WaypointRenderer::Reachability reachable,
                   const ReachResult &reach) const {
    FormatTitle(buffer, buffer_size - 20, way_point);

    if (!way_point.IsLandable() && !way_point.flags.watched)
      return;

    if (settings.arrival_height_display == WaypointRendererSettings::ArrivalHeightDisplay::REQUIRED_GR) {
      if (!basic.location_available || !basic.NavAltitudeAvailable())
        return;

      const auto safety_height = task_behaviour.safety_height_arrival;
      const auto target_altitude = way_point.elevation + safety_height;
      const auto delta_h = basic.nav_altitude - target_altitude;
      if (delta_h <= 0)
        /* no L/D if below waypoint */
        return;

      const auto distance = basic.location.DistanceS(way_point.location);
      const auto gr = distance / delta_h;
      if (!GradientValid(gr))
        return;

      size_t length = _tcslen(buffer);
      if (length > 0)
        buffer[length++] = _T(':');
      StringFormatUnsafe(buffer + length, _T("%.1f"), (double) gr);
      return;
    }

    if (reachable == WaypointRenderer::Invalid)
      return;

    if (!reach.IsReachableDirect() && !way_point.flags.watched)
      return;

    if (settings.arrival_height_display == WaypointRendererSettings::ArrivalHeightDisplay::NONE)
      return;

    size_t length = _tcslen(buffer);
    int uah_glide = (int)Units::ToUserAltitude(reach.direct);
    int uah_terrain = (int)Units::ToUserAltitude(reach.terrain);

    if (settings.arrival_height_display == WaypointRendererSettings::ArrivalHeightDisplay::TERRAIN) {
      if (reach.IsReachableTerrain()) {
        if (length > 0)
          buffer[length++] = _T(':');
        StringFormatUnsafe(buffer + length, _T("%d%s"),
                           uah_terrain, altitude_unit);
      }
      return;
    }

    if (length > 0)
      buffer[length++] = _T(':');

    if (settings.arrival_height_display == WaypointRendererSettings::ArrivalHeightDisplay::GLIDE_AND_TERRAIN &&
        reach.IsReachableDirect() && reach.IsReachableTerrain() &&
        reach.IsDeltaConsiderable()) {
      StringFormatUnsafe(buffer + length, _T("%d/%d%s"), uah_glide,
                         uah_terrain, altitude_unit);
      return;
    }

    StringFormatUnsafe(buffer + length, _T("%d%s"), uah_glide, altitude_unit);
  }
开发者ID:Advi42,项目名称:XCSoar,代码行数:68,代码来源:WaypointRenderer.cpp

示例8: Visit

 /**
  * Visit method, adds result to vector
  *
  * @param wp Waypoint that is visited
  */
 void Visit(const Waypoint& wp) {
   if (wp.IsLandable())
     vector.push_back(wp);
 }
开发者ID:FlorianR,项目名称:XCSoar,代码行数:9,代码来源:AbortTask.cpp

示例9: FormatLabel

  void
  FormatLabel(TCHAR *buffer, const Waypoint &way_point,
              const ReachResult &reach)
  {
    FormatTitle(buffer, way_point);

    if (!way_point.IsLandable() && !way_point.flags.watched)
      return;

    if (settings.arrival_height_display == WaypointRendererSettings::ArrivalHeightDisplay::REQUIRED_GR) {
      if (!basic.location_available || !basic.NavAltitudeAvailable())
        return;

      const fixed safety_height = task_behaviour.safety_height_arrival;
      const fixed target_altitude = way_point.elevation + safety_height;
      const fixed delta_h = basic.nav_altitude - target_altitude;
      if (!positive(delta_h))
        /* no L/D if below waypoint */
        return;

      const fixed distance = basic.location.Distance(way_point.location);
      const fixed gr = distance / delta_h;
      if (!GradientValid(gr))
        return;

      size_t length = _tcslen(buffer);
      if (length > 0)
        buffer[length++] = _T(':');
      _stprintf(buffer + length, _T("%.1f"), (double) gr);
      return;
    }

    if (!reach.IsReachableDirect() && !way_point.flags.watched)
      return;

    if (settings.arrival_height_display == WaypointRendererSettings::ArrivalHeightDisplay::NONE)
      return;

    size_t length = _tcslen(buffer);
    int uah_glide = (int)Units::ToUserAltitude(fixed(reach.direct));
    int uah_terrain = (int)Units::ToUserAltitude(fixed(reach.terrain));

    if (settings.arrival_height_display == WaypointRendererSettings::ArrivalHeightDisplay::TERRAIN) {
      if (reach.IsReachableTerrain()) {
        if (length > 0)
          buffer[length++] = _T(':');
        _stprintf(buffer + length, _T("%d%s"), uah_terrain, sAltUnit);
      }
      return;
    }

    if (length > 0)
      buffer[length++] = _T(':');

    if (settings.arrival_height_display == WaypointRendererSettings::ArrivalHeightDisplay::GLIDE_AND_TERRAIN &&
        reach.IsReachableDirect() && reach.IsReachableTerrain() &&
        reach.IsDeltaConsiderable()) {
      _stprintf(buffer + length, _T("%d/%d%s"), uah_glide,
                uah_terrain, sAltUnit);
      return;
    }

    _stprintf(buffer + length, _T("%d%s"), uah_glide, sAltUnit);
  }
开发者ID:rjsikarwar,项目名称:XCSoar,代码行数:64,代码来源:WaypointRenderer.cpp

示例10: Visit

 /**
  * Visit method, adds result to vector
  *
  * @param wp Waypoint that is visited
  */
 void Visit(const Waypoint& wp) {
   if (wp.IsLandable())
     vector.emplace_back(wp);
 }
开发者ID:Adrien81,项目名称:XCSoar,代码行数:9,代码来源:AbortTask.cpp

示例11: operator

 bool operator()(const Waypoint &wp) const {
   return wp.IsLandable();
 }
开发者ID:macsux,项目名称:XCSoar,代码行数:3,代码来源:Waypoints.cpp


注:本文中的Waypoint::IsLandable方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。