Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef PCL_CLOUD_VIEWER_H_
00037 #define PCL_CLOUD_VIEWER_H_
00038
00039 #include <pcl/visualization/pcl_visualizer.h>
00040
00041 #include <string>
00042
00043 namespace pcl
00044 {
00045 namespace visualization
00046 {
00051 class PCL_EXPORTS CloudViewer : boost::noncopyable
00052 {
00053 public:
00054 typedef pcl::PointCloud<pcl::PointXYZRGBA> ColorACloud;
00055 typedef pcl::PointCloud<pcl::PointXYZRGB> ColorCloud;
00056 typedef pcl::PointCloud<pcl::PointXYZI> GrayCloud;
00057 typedef pcl::PointCloud<pcl::PointXYZ> MonochromeCloud;
00058
00062 CloudViewer (const std::string& window_name);
00063
00068 ~CloudViewer ();
00069
00074 void
00075 showCloud (const ColorCloud::ConstPtr &cloud, const std::string& cloudname = "cloud");
00076
00081 void
00082 showCloud (const ColorACloud::ConstPtr &cloud, const std::string& cloudname = "cloud");
00083
00088 void
00089 showCloud (const GrayCloud::ConstPtr &cloud, const std::string& cloudname = "cloud");
00090
00091
00096 void
00097 showCloud (const MonochromeCloud::ConstPtr &cloud, const std::string& cloudname = "cloud");
00098
00103 bool
00104 wasStopped (int millis_to_wait = 1);
00105
00108 typedef boost::function1<void, pcl::visualization::PCLVisualizer&> VizCallable;
00109
00114 void
00115 runOnVisualizationThread (VizCallable x, const std::string& key = "callable");
00116
00120 void
00121 runOnVisualizationThreadOnce (VizCallable x);
00122
00126 void
00127 removeVisualizationCallable (const std::string& key = "callable");
00128
00134 inline boost::signals2::connection
00135 registerKeyboardCallback (void (*callback) (const pcl::visualization::KeyboardEvent&, void*), void* cookie = NULL)
00136 {
00137 return (registerKeyboardCallback (boost::bind (callback, _1, cookie)));
00138 }
00139
00146 template<typename T> inline boost::signals2::connection
00147 registerKeyboardCallback (void (T::*callback) (const pcl::visualization::KeyboardEvent&, void*), T& instance, void* cookie = NULL)
00148 {
00149 return (registerKeyboardCallback (boost::bind (callback, boost::ref (instance), _1, cookie)));
00150 }
00151
00157 inline boost::signals2::connection
00158 registerMouseCallback (void (*callback) (const pcl::visualization::MouseEvent&, void*), void* cookie = NULL)
00159 {
00160 return (registerMouseCallback (boost::bind (callback, _1, cookie)));
00161 }
00162
00169 template<typename T> inline boost::signals2::connection
00170 registerMouseCallback (void (T::*callback) (const pcl::visualization::MouseEvent&, void*), T& instance, void* cookie = NULL)
00171 {
00172 return (registerMouseCallback (boost::bind (callback, boost::ref (instance), _1, cookie)));
00173 }
00174
00175
00181 inline boost::signals2::connection
00182 registerPointPickingCallback (void (*callback) (const pcl::visualization::PointPickingEvent&, void*), void* cookie = NULL)
00183 {
00184 return (registerPointPickingCallback (boost::bind (callback, _1, cookie)));
00185 }
00186
00193 template<typename T> inline boost::signals2::connection
00194 registerPointPickingCallback (void (T::*callback) (const pcl::visualization::PointPickingEvent&, void*), T& instance, void* cookie = NULL)
00195 {
00196 return (registerPointPickingCallback (boost::bind (callback, boost::ref (instance), _1, cookie)));
00197 }
00198
00199 private:
00201 struct CloudViewer_impl;
00202 std::auto_ptr<CloudViewer_impl> impl_;
00203
00204 boost::signals2::connection
00205 registerMouseCallback (boost::function<void (const pcl::visualization::MouseEvent&)>);
00206
00207 boost::signals2::connection
00208 registerKeyboardCallback (boost::function<void (const pcl::visualization::KeyboardEvent&)>);
00209
00210 boost::signals2::connection
00211 registerPointPickingCallback (boost::function<void (const pcl::visualization::PointPickingEvent&)>);
00212 };
00213 }
00214 }
00215
00216 #endif