本文整理汇总了C++中OrderedTask::GetActiveIndex方法的典型用法代码示例。如果您正苦于以下问题:C++ OrderedTask::GetActiveIndex方法的具体用法?C++ OrderedTask::GetActiveIndex怎么用?C++ OrderedTask::GetActiveIndex使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OrderedTask
的用法示例。
在下文中一共展示了OrderedTask::GetActiveIndex方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
void
TaskRenderer::Draw(const OrderedTask &task)
{
tpv.SetBoundingBox(task.GetBoundingBox(screen_bounds));
tpv.SetActiveIndex(task.GetActiveIndex());
for (unsigned i = 0; i < 4; i++) {
tpv.ResetIndex();
if (i != TaskPointRenderer::LAYER_SYMBOLS &&
i != TaskPointRenderer::LAYER_LEG) {
tpv.SetModeOptional(true);
for (const auto &tp : task.GetOptionalStartPoints())
tpv.Draw(tp, (TaskPointRenderer::Layer)i);
}
tpv.SetModeOptional(false);
for (const auto &tp : task.GetPoints())
tpv.Draw(tp, (TaskPointRenderer::Layer)i);
}
if (task.GetFactoryType() == TaskFactoryType::MAT) {
// now draw MAT circles
tpv.ResetIndex();
tpv.SetModeOptional(false);
for (const auto *i : task.GetMatPoints())
tpv.Draw(*i, (TaskPointRenderer::Layer)2);
}
}
示例2:
void
TaskRenderer::Draw(const OrderedTask &task)
{
tpv.SetBoundingBox(task.get_bounding_box(screen_bounds));
tpv.SetActiveIndex(task.GetActiveIndex());
for (unsigned i = 0; i < 4; i++) {
tpv.ResetIndex();
if (i != RenderTaskPoint::LAYER_SYMBOLS && i != RenderTaskPoint::LAYER_LEG) {
tpv.SetModeOptional(true);
for (unsigned j = 0, end = task.optional_start_points_size(); j < end; ++j)
tpv.Draw(*task.get_optional_start(j), (RenderTaskPoint::Layer)i);
}
tpv.SetModeOptional(false);
for (unsigned j = 0, end = task.TaskSize(); j < end; ++j)
tpv.Draw(task.GetTaskPoint(j), (RenderTaskPoint::Layer)i);
}
}
示例3:
static int
GetIndexInTask(const OrderedTask &task, const Waypoint &waypoint)
{
if (task.TaskSize() == 0)
return -1;
unsigned i = task.GetActiveIndex();
if (i >= task.TaskSize())
return -1;
int TPindex = -1;
for (unsigned i = task.TaskSize(); i--;) {
const OrderedTaskPoint &tp = task.GetPoint(i);
if (tp.GetWaypoint() == waypoint) {
TPindex = i;
break;
}
}
return TPindex;
}
示例4:
void
TaskRenderer::Draw(const OrderedTask &task)
{
tpv.SetBoundingBox(task.GetBoundingBox(screen_bounds));
tpv.SetActiveIndex(task.GetActiveIndex());
for (unsigned i = 0; i < 4; i++) {
tpv.ResetIndex();
if (i != TaskPointRenderer::LAYER_SYMBOLS &&
i != TaskPointRenderer::LAYER_LEG) {
tpv.SetModeOptional(true);
for (const auto &tp : task.GetOptionalStartPoints())
tpv.Draw(tp, (TaskPointRenderer::Layer)i);
}
tpv.SetModeOptional(false);
for (const auto &tp : task.GetPoints())
tpv.Draw(tp, (TaskPointRenderer::Layer)i);
}
}
示例5: active_taskpoint_index
static void
Run(DebugReplay &replay, OrderedTask &task, const GlidePolar &glide_polar)
{
Validity last_location_available;
last_location_available.Clear();
AircraftState last_as;
bool last_as_valid = false;
bool task_finished = false;
unsigned active_taskpoint_index(-1);
char time_buffer[32];
while (replay.Next()) {
const MoreData &basic = replay.Basic();
const DerivedInfo &calculated = replay.Calculated();
if (!basic.location_available) {
last_location_available.Clear();
continue;
}
const AircraftState current_as = ToAircraftState(basic, calculated);
if (!last_location_available) {
last_as = current_as;
last_as_valid = true;
last_location_available = basic.location_available;
continue;
}
if (!basic.location_available.Modified(last_location_available))
continue;
if (!last_as_valid) {
last_as = current_as;
last_as_valid = true;
last_location_available = basic.location_available;
continue;
}
task.Update(current_as, last_as, glide_polar);
task.UpdateIdle(current_as, glide_polar);
task.SetTaskAdvance().SetArmed(true);
if (task.GetActiveIndex() != active_taskpoint_index) {
active_taskpoint_index = task.GetActiveIndex();
FormatISO8601(time_buffer, basic.date_time_utc);
printf("%s active_taskpoint_index=%u\n",
time_buffer, active_taskpoint_index);
}
const TaskStats &task_stats = task.GetStats();
if (task_finished != task_stats.task_finished) {
task_finished = true;
FormatISO8601(time_buffer, basic.date_time_utc);
printf("%s task finished\n", time_buffer);
}
last_as = current_as;
last_as_valid = true;
}
const TaskStats &task_stats = task.GetStats();
printf("task_started=%d task_finished=%d\n",
task_stats.start.task_started,
task_stats.task_finished);
printf("task elapsed %ds\n", (int)task_stats.total.time_elapsed);
printf("task speed %1.2f kph\n",
double(task_stats.total.travelled.GetSpeed() * 3.6));
printf("travelled distance %1.3f km\n",
double(task_stats.total.travelled.GetDistance() / 1000));
printf("scored distance %1.3f km\n",
double(task_stats.distance_scored / 1000));
if (task_stats.total.time_elapsed > 0)
printf("scored speed %1.2f kph\n",
double(task_stats.distance_scored
/ task_stats.total.time_elapsed * 3.6));
}