00001 #include <pcl/visualization/pcl_visualizer.h> 00002 #include <boost/thread/mutex.hpp> 00003 #include <boost/thread/thread.hpp> 00004 00005 typedef pcl::visualization::PCLVisualizer visualizer_t; 00006 typedef boost::shared_ptr<visualizer_t> visualizer_ptr_t; 00007 typedef pcl::PointXYZRGB point_t; 00008 typedef pcl::PointCloud<point_t> pointcloud_t; 00009 00010 namespace rc 00011 { 00012 00015 class CloudVisualizer { 00016 public: 00017 00019 CloudVisualizer(const char* name); 00020 00022 void operator()(); 00023 00025 void addCloudToViewer(const pointcloud_t::Ptr pointcloud); 00026 00028 void updateCloudInViewer(const pointcloud_t::Ptr pointcloud); 00029 00031 void stop(); 00032 00033 private: 00034 00035 visualizer_ptr_t viewer_; 00036 bool stop_; 00037 boost::mutex viewer_mutex_; 00038 }; 00039 00040 00041 }//namespace rc