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 #include "pr2_interactive_manipulation/point_head_camera_display.h"
00031
00032 #include <rviz/visualization_manager.h>
00033 #include <rviz/render_panel.h>
00034 #include <rviz/common.h>
00035 #include <rviz/properties/property.h>
00036 #include <rviz/properties/property_manager.h>
00037
00038 #include <pr2_controllers_msgs/PointHeadAction.h>
00039
00040
00041 namespace pr2_interactive_manipulation
00042 {
00043
00044 PointHeadCameraDisplay::PointHeadCameraDisplay( const std::string& name, rviz::VisualizationManager* manager ) :
00045 rviz::CameraDisplay( name, manager )
00046 {
00047
00048
00049 point_head_view_controller_ = new PointHeadViewController( texture_, manager, name );
00050 render_panel_->setViewController( point_head_view_controller_ );
00051
00052 setPointHeadTopic( "/head_traj_controller/point_head_action/goal" );
00053 }
00054
00055 PointHeadCameraDisplay::~PointHeadCameraDisplay()
00056 {
00057
00058 }
00059
00060 void PointHeadCameraDisplay::createProperties()
00061 {
00062 point_head_topic_property_ = property_manager_->createProperty<rviz::ROSTopicStringProperty>( "Point Head Action Topic", property_prefix_, boost::bind( &PointHeadCameraDisplay::getPointHeadTopic, this ),
00063 boost::bind( &PointHeadCameraDisplay::setPointHeadTopic, this, _1 ), parent_category_, this );
00064 setPropertyHelpText(point_head_topic_property_, "Action topic where to send the point head commands to.");
00065 rviz::ROSTopicStringPropertyPtr topic_prop = point_head_topic_property_.lock();
00066 topic_prop->setMessageType(ros::message_traits::datatype< pr2_controllers_msgs::PointHeadActionGoal >());
00067
00068 CameraDisplay::createProperties();
00069 }
00070
00071 void PointHeadCameraDisplay::setPointHeadTopic(const std::string& topic)
00072 {
00073 point_head_view_controller_->setTopic( topic );
00074 propertyChanged(point_head_topic_property_);
00075 }
00076
00077 const std::string& PointHeadCameraDisplay::getPointHeadTopic()
00078 {
00079 return point_head_view_controller_->getTopic();
00080 }
00081
00082 }