From 0d65e8a59fd9297c0afb561bd7536750a6d785e0 Mon Sep 17 00:00:00 2001 From: Alexis Ballier Date: Tue, 26 Jul 2016 09:29:35 +0200 Subject: dev-ros/collada_parser: fix build with urdfdom 1. Package-Manager: portage-2.3.0 --- .../collada_parser/collada_parser-1.12.3-r1.ebuild | 31 +++ .../collada_parser/collada_parser-1.12.3.ebuild | 25 --- dev-ros/collada_parser/files/urdfdom1.patch | 224 +++++++++++++++++++++ 3 files changed, 255 insertions(+), 25 deletions(-) create mode 100644 dev-ros/collada_parser/collada_parser-1.12.3-r1.ebuild delete mode 100644 dev-ros/collada_parser/collada_parser-1.12.3.ebuild create mode 100644 dev-ros/collada_parser/files/urdfdom1.patch (limited to 'dev-ros/collada_parser') diff --git a/dev-ros/collada_parser/collada_parser-1.12.3-r1.ebuild b/dev-ros/collada_parser/collada_parser-1.12.3-r1.ebuild new file mode 100644 index 000000000000..88716c5be513 --- /dev/null +++ b/dev-ros/collada_parser/collada_parser-1.12.3-r1.ebuild @@ -0,0 +1,31 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +ROS_REPO_URI="https://github.com/ros/robot_model" +KEYWORDS="~amd64 ~arm" +ROS_SUBDIR=${PN} + +inherit ros-catkin flag-o-matic + +DESCRIPTION="C++ parser for the Collada robot description format" +LICENSE="BSD" +SLOT="0" +IUSE="" + +RDEPEND=" + dev-libs/boost:= + >=dev-ros/urdf_parser_plugin-1.12.3-r1 + dev-ros/roscpp + dev-ros/class_loader + dev-libs/urdfdom_headers + dev-libs/collada-dom +" +DEPEND="${RDEPEND}" +PATCHES=( "${FILESDIR}/urdfdom1.patch" ) + +src_configure() { + append-cxxflags -std=gnu++11 + ros-catkin_src_configure +} diff --git a/dev-ros/collada_parser/collada_parser-1.12.3.ebuild b/dev-ros/collada_parser/collada_parser-1.12.3.ebuild deleted file mode 100644 index bdf3b898aca6..000000000000 --- a/dev-ros/collada_parser/collada_parser-1.12.3.ebuild +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 1999-2016 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -EAPI=5 -ROS_REPO_URI="https://github.com/ros/robot_model" -KEYWORDS="~amd64 ~arm" -ROS_SUBDIR=${PN} - -inherit ros-catkin - -DESCRIPTION="C++ parser for the Collada robot description format" -LICENSE="BSD" -SLOT="0" -IUSE="" - -RDEPEND=" - dev-libs/boost:= - dev-ros/urdf_parser_plugin - dev-ros/roscpp - dev-ros/class_loader - dev-libs/urdfdom_headers - dev-libs/collada-dom -" -DEPEND="${RDEPEND}" diff --git a/dev-ros/collada_parser/files/urdfdom1.patch b/dev-ros/collada_parser/files/urdfdom1.patch new file mode 100644 index 000000000000..139137256a8a --- /dev/null +++ b/dev-ros/collada_parser/files/urdfdom1.patch @@ -0,0 +1,224 @@ +Index: collada_parser/include/collada_parser/collada_parser.h +=================================================================== +--- collada_parser.orig/include/collada_parser/collada_parser.h ++++ collada_parser/include/collada_parser/collada_parser.h +@@ -47,7 +47,7 @@ + namespace urdf { + + /// \brief Load Model from string +-boost::shared_ptr parseCollada(const std::string &xml_string ); ++std::shared_ptr parseCollada(const std::string &xml_string ); + + } + +Index: collada_parser/include/collada_parser/collada_parser_plugin.h +=================================================================== +--- collada_parser.orig/include/collada_parser/collada_parser_plugin.h ++++ collada_parser/include/collada_parser/collada_parser_plugin.h +@@ -46,7 +46,7 @@ class ColladaURDFParser : public URDFPar + { + public: + +- virtual boost::shared_ptr parse(const std::string &xml_string); ++ virtual std::shared_ptr parse(const std::string &xml_string); + }; + + } +Index: collada_parser/src/collada_parser.cpp +=================================================================== +--- collada_parser.orig/src/collada_parser.cpp ++++ collada_parser/src/collada_parser.cpp +@@ -176,7 +176,7 @@ public: + USERDATA(double scale) : scale(scale) { + } + double scale; +- boost::shared_ptr p; ///< custom managed data ++ std::shared_ptr p; ///< custom managed data + }; + + enum GeomType { +@@ -409,7 +409,7 @@ public: + }; + + public: +- ColladaModelReader(boost::shared_ptr model) : _dom(NULL), _nGlobalSensorId(0), _nGlobalManipulatorId(0), _model(model) { ++ ColladaModelReader(std::shared_ptr model) : _dom(NULL), _nGlobalSensorId(0), _nGlobalManipulatorId(0), _model(model) { + daeErrorHandler::setErrorHandler(this); + _resourcedir = "."; + } +@@ -715,7 +715,7 @@ protected: + } + + // find the target joint +- boost::shared_ptr pjoint = _getJointFromRef(pf->getTarget()->getParam()->getValue(),pf); ++ std::shared_ptr pjoint = _getJointFromRef(pf->getTarget()->getParam()->getValue(),pf); + if (!pjoint) { + continue; + } +@@ -785,7 +785,7 @@ protected: + } + BOOST_ASSERT(psymboljoint->hasAttribute("encoding")); + BOOST_ASSERT(psymboljoint->getAttribute("encoding")==std::string("COLLADA")); +- boost::shared_ptr pbasejoint = _getJointFromRef(psymboljoint->getCharData().c_str(),pf); ++ std::shared_ptr pbasejoint = _getJointFromRef(psymboljoint->getCharData().c_str(),pf); + if( !!pbasejoint ) { + // set the mimic properties + pjoint->mimic.reset(new JointMimic()); +@@ -801,7 +801,7 @@ protected: + } + + /// \brief Extract Link info and add it to an existing body +- boost::shared_ptr _ExtractLink(const domLinkRef pdomlink,const domNodeRef pdomnode, const Pose& tParentWorldLink, const Pose& tParentLink, const std::vector& vdomjoints, const KinematicsSceneBindings& bindings) { ++ std::shared_ptr _ExtractLink(const domLinkRef pdomlink,const domNodeRef pdomnode, const Pose& tParentWorldLink, const Pose& tParentLink, const std::vector& vdomjoints, const KinematicsSceneBindings& bindings) { + const std::list& listAxisBindings = bindings.listAxisBindings; + // Set link name with the name of the COLLADA's Link + std::string linkname = _ExtractLinkName(pdomlink); +@@ -817,7 +817,7 @@ protected: + } + } + +- boost::shared_ptr plink; ++ LinkSharedPtr plink; + _model->getLink(linkname,plink); + if( !plink ) { + plink.reset(new Link()); +@@ -921,7 +921,7 @@ protected: + + if (!pdomjoint || pdomjoint->typeID() != domJoint::ID()) { + ROS_WARN_STREAM(str(boost::format("could not find attached joint %s!\n")%pattfull->getJoint())); +- return boost::shared_ptr(); ++ return std::shared_ptr(); + } + + // get direct child link +@@ -952,7 +952,7 @@ protected: + } + + // create the joints before creating the child links +- std::vector > vjoints(vdomaxes.getCount()); ++ std::vector > vjoints(vdomaxes.getCount()); + for (size_t ic = 0; ic < vdomaxes.getCount(); ++ic) { + bool joint_active = true; // if not active, put into the passive list + FOREACHC(itaxisbinding,listAxisBindings) { +@@ -966,7 +966,7 @@ protected: + } + } + +- boost::shared_ptr pjoint(new Joint()); ++ std::shared_ptr pjoint(new Joint()); + pjoint->limits.reset(new JointLimits()); + pjoint->limits->velocity = 0.0; + pjoint->limits->effort = 0.0; +@@ -995,12 +995,12 @@ protected: + } + + _getUserData(pdomjoint)->p = pjoint; +- _getUserData(pdomaxis)->p = boost::shared_ptr(new int(_model->joints_.size())); ++ _getUserData(pdomaxis)->p = std::shared_ptr(new int(_model->joints_.size())); + _model->joints_[pjoint->name] = pjoint; + vjoints[ic] = pjoint; + } + +- boost::shared_ptr pchildlink = _ExtractLink(pattfull->getLink(), pchildnode, _poseMult(_poseMult(tParentWorldLink,tlink), tatt), tatt, vdomjoints, bindings); ++ std::shared_ptr pchildlink = _ExtractLink(pattfull->getLink(), pchildnode, _poseMult(_poseMult(tParentWorldLink,tlink), tatt), tatt, vdomjoints, bindings); + + if (!pchildlink) { + ROS_WARN_STREAM(str(boost::format("Link has no child: %s\n")%plink->name)); +@@ -1035,7 +1035,7 @@ protected: + } + + ROS_DEBUG_STREAM(str(boost::format("Joint %s assigned %d \n")%vjoints[ic]->name%ic)); +- boost::shared_ptr pjoint = vjoints[ic]; ++ std::shared_ptr pjoint = vjoints[ic]; + pjoint->child_link_name = pchildlink->name; + + #define PRINT_POSE(pname, apose) ROS_DEBUG(pname" pos: %f %f %f, rot: %f %f %f %f", \ +@@ -1178,7 +1178,7 @@ protected: + return plink; + } + +- boost::shared_ptr _CreateGeometry(const std::string& name, const std::list& listGeomProperties) ++ urdf::GeometrySharedPtr _CreateGeometry(const std::string& name, const std::list& listGeomProperties) + { + std::vector > vertices; + std::vector > indices; +@@ -1219,12 +1219,12 @@ protected: + } + + if (vert_counter == 0) { +- boost::shared_ptr ret; ++ std::shared_ptr ret; + ret.reset(); + return ret; + } + +- boost::shared_ptr geometry(new Mesh()); ++ std::shared_ptr geometry(new Mesh()); + geometry->type = Geometry::MESH; + geometry->scale.x = 1; + geometry->scale.y = 1; +@@ -2020,7 +2020,7 @@ protected: + //std::string aname = pextra->getAttribute("name"); + domTechniqueRef tec = _ExtractOpenRAVEProfile(pextra->getTechnique_array()); + if( !!tec ) { +- boost::shared_ptr pjoint; ++ std::shared_ptr pjoint; + daeElementRef domactuator; + { + daeElementRef bact = tec->getChild("bind_actuator"); +@@ -2413,7 +2413,7 @@ protected: + return name.substr(pos+1)==type; + } + +- boost::shared_ptr _getJointFromRef(xsToken targetref, daeElementRef peltref) { ++ std::shared_ptr _getJointFromRef(xsToken targetref, daeElementRef peltref) { + daeElement* peltjoint = daeSidRef(targetref, peltref).resolve().elt; + domJointRef pdomjoint = daeSafeCast (peltjoint); + +@@ -2426,10 +2426,10 @@ protected: + + if (!pdomjoint || pdomjoint->typeID() != domJoint::ID() || !pdomjoint->getName()) { + ROS_WARN_STREAM(str(boost::format("could not find collada joint %s!\n")%targetref)); +- return boost::shared_ptr(); ++ return std::shared_ptr(); + } + +- boost::shared_ptr pjoint; ++ std::shared_ptr pjoint; + std::string name(pdomjoint->getName()); + if (_model->joints_.find(name) == _model->joints_.end()) { + pjoint.reset(); +@@ -2797,7 +2797,7 @@ protected: + int _nGlobalSensorId, _nGlobalManipulatorId; + std::string _filename; + std::string _resourcedir; +- boost::shared_ptr _model; ++ std::shared_ptr _model; + Pose _RootOrigin; + Pose _VisualRootOrigin; + }; +@@ -2805,9 +2805,9 @@ protected: + + + +-boost::shared_ptr parseCollada(const std::string &xml_str) ++std::shared_ptr parseCollada(const std::string &xml_str) + { +- boost::shared_ptr model(new ModelInterface); ++ std::shared_ptr model(new ModelInterface); + + ColladaModelReader reader(model); + if (!reader.InitFromData(xml_str)) +Index: collada_parser/src/collada_parser_plugin.cpp +=================================================================== +--- collada_parser.orig/src/collada_parser_plugin.cpp ++++ collada_parser/src/collada_parser_plugin.cpp +@@ -38,7 +38,7 @@ + #include "collada_parser/collada_parser.h" + #include + +-boost::shared_ptr urdf::ColladaURDFParser::parse(const std::string &xml_string) ++std::shared_ptr urdf::ColladaURDFParser::parse(const std::string &xml_string) + { + return urdf::parseCollada(xml_string); + } -- cgit v1.2.3-65-gdbad