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