本文整理汇总了C++中GlideResult::GetArrivalAltitude方法的典型用法代码示例。如果您正苦于以下问题:C++ GlideResult::GetArrivalAltitude方法的具体用法?C++ GlideResult::GetArrivalAltitude怎么用?C++ GlideResult::GetArrivalAltitude使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GlideResult
的用法示例。
在下文中一共展示了GlideResult::GetArrivalAltitude方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
void
InfoBoxContentNextAltitudeArrival::Update(InfoBoxData &data)
{
// pilots want this to be assuming terminal flight to this wp
const MoreData &basic = CommonInterface::Basic();
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.IsAchievable()) {
data.SetInvalid();
return;
}
data.SetValueFromAltitude(next_solution.GetArrivalAltitude(basic.nav_altitude));
}
示例2:
void
UpdateInfoBoxNextAltitudeArrival(InfoBoxData &data)
{
// pilots want this to be assuming terminal flight to this wp
const MoreData &basic = CommonInterface::Basic();
const TaskStats &task_stats = CommonInterface::Calculated().task_stats;
const GlideResult next_solution = task_stats.current_leg.solution_remaining;
if (!basic.NavAltitudeAvailable() ||
!task_stats.task_valid || !next_solution.IsAchievable()) {
data.SetInvalid();
return;
}
data.SetValueFromAltitude(next_solution.GetArrivalAltitude(basic.nav_altitude));
}
示例3: mc
void
CrossSectionRenderer::PaintGlide(ChartRenderer &chart) const
{
if (!gps_info.NavAltitudeAvailable() || !glide_polar.IsValid())
return;
const fixed altitude = gps_info.nav_altitude;
const MacCready mc(glide_settings, glide_polar);
const GlideState task(vec, fixed(0), altitude,
calculated_info.GetWindOrZero());
const GlideResult result = mc.SolveStraight(task);
if (!result.IsOk())
return;
chart.DrawLine(fixed(0), altitude, result.vector.distance,
result.GetArrivalAltitude(),
ChartLook::STYLE_BLUETHIN);
}
示例4:
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);
}
示例5: assert
void
GlideResult::Add(const GlideResult &s2)
{
if ((unsigned)s2.validity > (unsigned)validity)
/* downgrade the validity */
validity = s2.validity;
if (!IsDefined())
return;
vector.distance += s2.vector.distance;
if (!IsOk())
/* the other attributes are not valid if validity is not OK or
PARTIAL */
return;
if (s2.GetRequiredAltitudeWithDrift() < min_arrival_altitude) {
/* must meet the safety height of the first leg */
assert(s2.min_arrival_altitude < s2.GetArrivalAltitudeWithDrift(min_arrival_altitude));
/* calculate a new minimum arrival height that considers the
"mountain top" in the middle */
min_arrival_altitude = s2.GetArrivalAltitudeWithDrift(min_arrival_altitude);
} else {
/* must meet the safety height of the second leg */
/* apply the increased altitude requirement */
altitude_difference -=
s2.GetRequiredAltitudeWithDrift() - min_arrival_altitude;
/* adopt the minimum height of the second leg */
min_arrival_altitude = s2.min_arrival_altitude;
}
/* same as above, but for "pure glide" */
if (s2.GetRequiredAltitude() < pure_glide_min_arrival_altitude) {
/* must meet the safety height of the first leg */
assert(s2.pure_glide_min_arrival_altitude <
s2.GetArrivalAltitude(pure_glide_min_arrival_altitude));
/* calculate a new minimum arrival height that considers the
"mountain top" in the middle */
pure_glide_min_arrival_altitude =
s2.GetArrivalAltitude(pure_glide_min_arrival_altitude);
} else {
/* must meet the safety height of the second leg */
/* apply the increased altitude requirement */
pure_glide_altitude_difference -=
s2.GetRequiredAltitude() - pure_glide_min_arrival_altitude;
/* adopt the minimum height of the second leg */
pure_glide_min_arrival_altitude = s2.pure_glide_min_arrival_altitude;
}
pure_glide_height += s2.pure_glide_height;
time_elapsed += s2.time_elapsed;
height_glide += s2.height_glide;
height_climb += s2.height_climb;
time_virtual += s2.time_virtual;
}