MapDisplay::MapDisplay() : Display() , manual_object_( NULL ) , loaded_( false ) , resolution_( 0.0f ) , width_( 0 ) , height_( 0 ) { connect(this, SIGNAL( mapUpdated() ), this, SLOT( showMap() )); topic_property_ = new RosTopicProperty( "Topic", "", QString::fromStdString( ros::message_traits::datatype<nav_msgs::OccupancyGrid>() ), "nav_msgs::OccupancyGrid topic to subscribe to.", this, SLOT( updateTopic() )); alpha_property_ = new FloatProperty( "Alpha", 0.7, "Amount of transparency to apply to the map.", this, SLOT( updateAlpha() )); alpha_property_->setMin( 0 ); alpha_property_->setMax( 1 ); color_scheme_property_ = new EnumProperty( "Color Scheme", "map", "How to color the occupancy values.", this, SLOT( updatePalette() )); // Option values here must correspond to indices in palette_textures_ array in onInitialize() below. color_scheme_property_->addOption( "map", 0 ); color_scheme_property_->addOption( "costmap", 1 ); draw_under_property_ = new Property( "Draw Behind", false, "Rendering option, controls whether or not the map is always" " drawn behind everything else.", this, SLOT( updateDrawUnder() )); resolution_property_ = new FloatProperty( "Resolution", 0, "Resolution of the map. (not editable)", this ); resolution_property_->setReadOnly( true ); width_property_ = new IntProperty( "Width", 0, "Width of the map, in meters. (not editable)", this ); width_property_->setReadOnly( true ); height_property_ = new IntProperty( "Height", 0, "Height of the map, in meters. (not editable)", this ); height_property_->setReadOnly( true ); position_property_ = new VectorProperty( "Position", Ogre::Vector3::ZERO, "Position of the bottom left corner of the map, in meters. (not editable)", this ); position_property_->setReadOnly( true ); orientation_property_ = new QuaternionProperty( "Orientation", Ogre::Quaternion::IDENTITY, "Orientation of the map. (not editable)", this ); orientation_property_->setReadOnly( true ); }
AerialMapDisplay::AerialMapDisplay() : Display(), map_id_(0), scene_id_(0), dirty_(false), received_msg_(false), loader_(0) { static unsigned int map_ids = 0; map_id_ = map_ids++; // global counter of map ids topic_property_ = new RosTopicProperty( "Topic", "", QString::fromStdString( ros::message_traits::datatype<sensor_msgs::NavSatFix>()), "nav_msgs::Odometry topic to subscribe to.", this, SLOT(updateTopic())); alpha_property_ = new FloatProperty( "Alpha", 0.7, "Amount of transparency to apply to the map.", this, SLOT(updateAlpha())); alpha_ = alpha_property_->getValue().toFloat(); alpha_property_->setMin(0); alpha_property_->setMax(1); alpha_property_->setShouldBeSaved(true); draw_under_property_ = new Property("Draw Behind", false, "Rendering option, controls whether or not the map is always" " drawn behind everything else.", this, SLOT(updateDrawUnder())); draw_under_property_->setShouldBeSaved(true); draw_under_ = draw_under_property_->getValue().toBool(); // output, resolution of the map in meters/pixel resolution_property_ = new FloatProperty( "Resolution", 0, "Resolution of the map. (Read only)", this); resolution_property_->setReadOnly(true); // properties for map object_uri_property_ = new StringProperty( "Object URI", "http://otile1.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg", "URL from which to retrieve map tiles.", this, SLOT(updateObjectURI())); object_uri_property_->setShouldBeSaved(true); object_uri_ = object_uri_property_->getStdString(); zoom_property_ = new IntProperty("Zoom", 16, "Zoom level (0 - 19 usually)", this, SLOT(updateZoom())); zoom_property_->setShouldBeSaved(true); zoom_ = zoom_property_->getInt(); blocks_property_ = new IntProperty("Blocks", 3, "Number of adjacent blocks (6 max)", this, SLOT(updateBlocks())); blocks_property_->setShouldBeSaved(true); // updating one triggers reload updateBlocks(); }