void ChartProjection::Set(const PixelRect &rc, const TaskManager &task_manager, const GeoPoint &fallback_loc) { const AbstractTask *task = task_manager.GetActiveTask(); if (task != NULL) Set(rc, *task, fallback_loc); else Set(rc, fallback_loc, fixed_zero); }
void PrintHelper::taskmanager_print(const TaskManager &task, const AircraftState &state) { switch (task.GetMode()) { case TaskType::NONE: break; case TaskType::ABORT: aborttask_print(*(const AbortTask *)task.GetActiveTask(), state); break; case TaskType::GOTO: gototask_print(*(const GotoTask *)task.GetActiveTask(), state); break; case TaskType::ORDERED: orderedtask_print(task.GetOrderedTask(), state); break; } }
void task_report(const TaskManager &task_manager, const char *text) { AircraftState ac; if (verbose) { printf("%s",text); const AbstractTask *task = task_manager.GetActiveTask(); if (task != NULL) { switch (task->GetType()) { case TaskType::NONE: printf("# task is none\n"); break; case TaskType::ORDERED: printf("# task is ordered\n"); task_manager.GetFactory().UpdateGeometry(); break; case TaskType::ABORT: printf("# task is abort\n"); break; case TaskType::GOTO: printf("# task is goto\n"); break; } TaskPointVisitorPrint tpv; task->AcceptTaskPointVisitor(tpv); printf("# - dist nominal %g\n", (double)task->GetStats().distance_nominal); if (task->GetType() == TaskType::ORDERED && task->GetStats().distance_max > task->GetStats().distance_min) { printf("# - dist max %g\n", (double)task->GetStats().distance_max); printf("# - dist min %g\n", (double)task->GetStats().distance_min); } } PrintHelper::taskmanager_print(task_manager, ac); } if (interactive>1) { WaitPrompt(); } }