19 using ViewerPtr = std::shared_ptr<pcl::visualization::PCLVisualizer>;
34 void enqueue_status(std::string message);
35 void enqueue_progress(std::string message);
36 void enqueue_warning(std::string message);
37 void enqueue_error(std::string message);
38 void enqueue_task(
VizTask task);
39 void drain_tasks(
const ViewerPtr &viewer);
40 void viewer_loop(std::latch &initialized);
42 std::thread viz_thread_;
43 std::queue<VizTask> task_queue_;
44 std::mutex queue_mutex_;
45 std::atomic_bool stop_requested_{
false};
46 std::atomic_bool running_{
false};
47 std::unique_ptr<spdmon::LoggerProgress> progress_logger_;