/** * Quit if viewer was closed. */ void check_quit() { #ifdef USE_GUI if (viewer.exit_requested()) { cout << endl << "Aborted by user..." << endl; exit(0); } #endif }
/** * The actual processing of data, in separate thread if GUI enabled. */ int process(void* unused) { // incrementally process data slam.set_properties(prop); incremental_slam(); toc("all"); if (!prop.quiet) { if (!batch_processing) { cout << endl; } double accumulated = tictoc("setup") + tictoc("incremental") + tictoc("batch"); cout << "Accumulated computation time: " << accumulated << "s" << endl; cout << "(Overall execution time: " << tictoc("all") << "s)" << endl; slam.print_stats(); cout << endl; } if (save_stats) { cout << "Saving statistics to " << fname_stats << endl; save_statistics(fname_stats); cout << endl; } if (write_result) { cout << "Saving result to " << fname_result << endl; slam.save(fname_result); cout << endl; } #ifdef USE_GUI if (use_gui) { while (true) { if (viewer.exit_requested()) { exit(0); } SDL_Delay(100); } } #endif exit(0); }