00001 #ifndef SELECT_POINT_CLOUD_PUBLISH_ACTION_H 00002 #define SELECT_POINT_CLOUD_PUBLISH_ACTION_H 00003 00004 #ifndef Q_MOC_RUN 00005 #include <ros/ros.h> 00006 00007 #include <rviz/panel.h> 00008 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) 00009 # include <QtWidgets> 00010 #else 00011 # include <QtGui> 00012 #endif 00013 #endif 00014 00015 class QLineEdit; 00016 class QLabel; 00017 class QPushButton; 00018 //class QSignalMapper; 00019 class PropertyTreeWidget; 00020 00021 00022 namespace jsk_rviz_plugins 00023 { 00024 class SelectPointCloudPublishAction: public rviz::Panel 00025 { 00026 // This class uses Qt slots and is a subclass of QObject, so it needs 00027 // the Q_OBJECT macro. 00028 Q_OBJECT 00029 public: 00030 SelectPointCloudPublishAction( QWidget* parent = 0 ); 00031 00032 virtual void load( const rviz::Config& config ); 00033 virtual void save( rviz::Config config ) const; 00034 00035 protected Q_SLOTS: 00036 00037 void publishPointCloud(); 00038 protected: 00039 QPushButton* publish_pointcloud_button_; 00040 00041 QVBoxLayout* layout; 00042 00043 // The ROS publisher for the command velocity. 00044 ros::Publisher select_pointcloud_publisher_; 00045 00046 // The ROS node handle. 00047 ros::NodeHandle nh_; 00048 00049 }; 00050 00051 } 00052 00053 #endif // TELEOP_PANEL_H