RC2025_r1/install/linefit_ground_segmentation/include/ground_segmentation/viewer.h
2025-07-13 00:24:17 +08:00

40 lines
853 B
C++

#pragma once
#include <atomic>
#include <mutex>
#include <thread>
#include <pcl/visualization/pcl_visualizer.h>
#include "ground_segmentation/typedefs.h"
class Viewer {
public:
Viewer();
~Viewer();
void visualize(const std::list<PointLine>& lines,
const PointCloud::ConstPtr& min_cloud,
const PointCloud::ConstPtr& ground_cloud,
const PointCloud::ConstPtr& obstacle_cloud);
protected:
// Visualizer.
pcl::visualization::PCLVisualizer viewer_;
std::thread view_thread_;
std::mutex viewer_mutex_;
std::atomic<bool> redraw_{true};
void visualizeLines(const std::list<PointLine>& lines);
void visualizePointCloud(const PointCloud::ConstPtr& cloud,
const std::string& id);
void addEmptyPointCloud(const std::string& id);
void drawThread();
};