diff options
Diffstat (limited to 'dev-ros/gazebo_plugins/files/gazebo7.patch')
-rw-r--r-- | dev-ros/gazebo_plugins/files/gazebo7.patch | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/dev-ros/gazebo_plugins/files/gazebo7.patch b/dev-ros/gazebo_plugins/files/gazebo7.patch new file mode 100644 index 000000000000..7b10e18e7ed2 --- /dev/null +++ b/dev-ros/gazebo_plugins/files/gazebo7.patch @@ -0,0 +1,176 @@ +commit 194ebf81f025c450555ec8cf3a98653bb1307c4c +Author: Steven Peters <scpeters@osrfoundation.org> +Date: Wed Jan 13 11:25:52 2016 -0800 + + Fix gazebo7 build errors + + The SensorPtr types have changed from boost:: pointers + to std:: pointers, + which requires boost::dynamic_pointer_cast to change to + std::dynamic_pointer_cast. + A helper macro is added that adds a `using` statement + corresponding to the correct type of dynamic_pointer_cast. + This macro should be narrowly scoped to protect + other code. + +diff --git a/gazebo_plugins/include/gazebo_plugins/MultiCameraPlugin.h b/gazebo_plugins/include/gazebo_plugins/MultiCameraPlugin.h +index ff38ef6..b3092d0 100644 +--- a/gazebo_plugins/include/gazebo_plugins/MultiCameraPlugin.h ++++ b/gazebo_plugins/include/gazebo_plugins/MultiCameraPlugin.h +@@ -43,7 +43,7 @@ namespace gazebo + unsigned int _width, unsigned int _height, + unsigned int _depth, const std::string &_format); + +- protected: boost::shared_ptr<sensors::MultiCameraSensor> parentSensor; ++ protected: sensors::MultiCameraSensorPtr parentSensor; + + protected: std::vector<unsigned int> width, height, depth; + protected: std::vector<std::string> format; +diff --git a/gazebo_plugins/include/gazebo_plugins/gazebo_ros_utils.h b/gazebo_plugins/include/gazebo_plugins/gazebo_ros_utils.h +index 3db4c45..6cdc4a8 100644 +--- a/gazebo_plugins/include/gazebo_plugins/gazebo_ros_utils.h ++++ b/gazebo_plugins/include/gazebo_plugins/gazebo_ros_utils.h +@@ -41,6 +41,14 @@ + #include <gazebo/sensors/Sensor.hh> + #include <ros/ros.h> + ++#ifndef GAZEBO_SENSORS_USING_DYNAMIC_POINTER_CAST ++# if GAZEBO_MAJOR_VERSION >= 7 ++#define GAZEBO_SENSORS_USING_DYNAMIC_POINTER_CAST using std::dynamic_pointer_cast ++# else ++#define GAZEBO_SENSORS_USING_DYNAMIC_POINTER_CAST using boost::dynamic_pointer_cast ++# endif ++#endif ++ + namespace gazebo + { + +diff --git a/gazebo_plugins/src/MultiCameraPlugin.cpp b/gazebo_plugins/src/MultiCameraPlugin.cpp +index 8001a22..11f663c 100644 +--- a/gazebo_plugins/src/MultiCameraPlugin.cpp ++++ b/gazebo_plugins/src/MultiCameraPlugin.cpp +@@ -17,6 +17,7 @@ + #include <gazebo/sensors/DepthCameraSensor.hh> + #include <gazebo/sensors/CameraSensor.hh> + #include <gazebo_plugins/MultiCameraPlugin.h> ++#include <gazebo_plugins/gazebo_ros_utils.h> + + using namespace gazebo; + GZ_REGISTER_SENSOR_PLUGIN(MultiCameraPlugin) +@@ -40,15 +41,16 @@ void MultiCameraPlugin::Load(sensors::SensorPtr _sensor, + if (!_sensor) + gzerr << "Invalid sensor pointer.\n"; + ++ GAZEBO_SENSORS_USING_DYNAMIC_POINTER_CAST; + this->parentSensor = +- boost::dynamic_pointer_cast<sensors::MultiCameraSensor>(_sensor); ++ dynamic_pointer_cast<sensors::MultiCameraSensor>(_sensor); + + if (!this->parentSensor) + { + gzerr << "MultiCameraPlugin requires a CameraSensor.\n"; +- if (boost::dynamic_pointer_cast<sensors::DepthCameraSensor>(_sensor)) ++ if (dynamic_pointer_cast<sensors::DepthCameraSensor>(_sensor)) + gzmsg << "It is a depth camera sensor\n"; +- if (boost::dynamic_pointer_cast<sensors::CameraSensor>(_sensor)) ++ if (dynamic_pointer_cast<sensors::CameraSensor>(_sensor)) + gzmsg << "It is a camera sensor\n"; + } + +diff --git a/gazebo_plugins/src/gazebo_ros_block_laser.cpp b/gazebo_plugins/src/gazebo_ros_block_laser.cpp +index 76e0206..d03b9f1 100644 +--- a/gazebo_plugins/src/gazebo_ros_block_laser.cpp ++++ b/gazebo_plugins/src/gazebo_ros_block_laser.cpp +@@ -24,6 +24,7 @@ + #include <assert.h> + + #include <gazebo_plugins/gazebo_ros_block_laser.h> ++#include <gazebo_plugins/gazebo_ros_utils.h> + + #include <gazebo/physics/World.hh> + #include <gazebo/physics/HingeJoint.hh> +@@ -86,7 +87,8 @@ void GazeboRosBlockLaser::Load(sensors::SensorPtr _parent, sdf::ElementPtr _sdf) + this->node_ = transport::NodePtr(new transport::Node()); + this->node_->Init(worldName); + +- this->parent_ray_sensor_ = boost::dynamic_pointer_cast<sensors::RaySensor>(this->parent_sensor_); ++ GAZEBO_SENSORS_USING_DYNAMIC_POINTER_CAST; ++ this->parent_ray_sensor_ = dynamic_pointer_cast<sensors::RaySensor>(this->parent_sensor_); + + if (!this->parent_ray_sensor_) + gzthrow("GazeboRosBlockLaser controller requires a Ray Sensor as its parent"); +diff --git a/gazebo_plugins/src/gazebo_ros_bumper.cpp b/gazebo_plugins/src/gazebo_ros_bumper.cpp +index 059f1d9..f8dbdd0 100644 +--- a/gazebo_plugins/src/gazebo_ros_bumper.cpp ++++ b/gazebo_plugins/src/gazebo_ros_bumper.cpp +@@ -39,6 +39,7 @@ + #include <tf/tf.h> + + #include <gazebo_plugins/gazebo_ros_bumper.h> ++#include <gazebo_plugins/gazebo_ros_utils.h> + + namespace gazebo + { +@@ -65,7 +66,8 @@ GazeboRosBumper::~GazeboRosBumper() + // Load the controller + void GazeboRosBumper::Load(sensors::SensorPtr _parent, sdf::ElementPtr _sdf) + { +- this->parentSensor = boost::dynamic_pointer_cast<sensors::ContactSensor>(_parent); ++ GAZEBO_SENSORS_USING_DYNAMIC_POINTER_CAST; ++ this->parentSensor = dynamic_pointer_cast<sensors::ContactSensor>(_parent); + if (!this->parentSensor) + { + ROS_ERROR("Contact sensor parent is not of type ContactSensor"); +diff --git a/gazebo_plugins/src/gazebo_ros_gpu_laser.cpp b/gazebo_plugins/src/gazebo_ros_gpu_laser.cpp +index 811fc81..6b36c48 100644 +--- a/gazebo_plugins/src/gazebo_ros_gpu_laser.cpp ++++ b/gazebo_plugins/src/gazebo_ros_gpu_laser.cpp +@@ -75,8 +75,9 @@ void GazeboRosLaser::Load(sensors::SensorPtr _parent, sdf::ElementPtr _sdf) + // save pointers + this->sdf = _sdf; + ++ GAZEBO_SENSORS_USING_DYNAMIC_POINTER_CAST; + this->parent_ray_sensor_ = +- boost::dynamic_pointer_cast<sensors::GpuRaySensor>(_parent); ++ dynamic_pointer_cast<sensors::GpuRaySensor>(_parent); + + if (!this->parent_ray_sensor_) + gzthrow("GazeboRosLaser controller requires a Ray Sensor as its parent"); +diff --git a/gazebo_plugins/src/gazebo_ros_laser.cpp b/gazebo_plugins/src/gazebo_ros_laser.cpp +index 815c456..80e60a2 100644 +--- a/gazebo_plugins/src/gazebo_ros_laser.cpp ++++ b/gazebo_plugins/src/gazebo_ros_laser.cpp +@@ -72,8 +72,9 @@ void GazeboRosLaser::Load(sensors::SensorPtr _parent, sdf::ElementPtr _sdf) + // save pointers + this->sdf = _sdf; + ++ GAZEBO_SENSORS_USING_DYNAMIC_POINTER_CAST; + this->parent_ray_sensor_ = +- boost::dynamic_pointer_cast<sensors::RaySensor>(_parent); ++ dynamic_pointer_cast<sensors::RaySensor>(_parent); + + if (!this->parent_ray_sensor_) + gzthrow("GazeboRosLaser controller requires a Ray Sensor as its parent"); +diff --git a/gazebo_plugins/src/gazebo_ros_range.cpp b/gazebo_plugins/src/gazebo_ros_range.cpp +index 9387dde..cb229fe 100644 +--- a/gazebo_plugins/src/gazebo_ros_range.cpp ++++ b/gazebo_plugins/src/gazebo_ros_range.cpp +@@ -35,6 +35,7 @@ + /** \author Jose Capriles, Bence Magyar. */ + + #include "gazebo_plugins/gazebo_ros_range.h" ++#include "gazebo_plugins/gazebo_ros_utils.h" + + #include <algorithm> + #include <string> +@@ -92,8 +93,9 @@ void GazeboRosRange::Load(sensors::SensorPtr _parent, sdf::ElementPtr _sdf) + + this->last_update_time_ = common::Time(0); + ++ GAZEBO_SENSORS_USING_DYNAMIC_POINTER_CAST; + this->parent_ray_sensor_ = +- boost::dynamic_pointer_cast<sensors::RaySensor>(this->parent_sensor_); ++ dynamic_pointer_cast<sensors::RaySensor>(this->parent_sensor_); + + if (!this->parent_ray_sensor_) + gzthrow("GazeboRosRange controller requires a Ray Sensor as its parent"); |