put back old collada_urdf (thanks to Tim Field for noticing this)
This commit is contained in:
parent
9de088ff75
commit
e92227f894
|
@ -1,7 +1,7 @@
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
* Software License Agreement (BSD License)
|
* Software License Agreement (BSD License)
|
||||||
*
|
*
|
||||||
* Copyright (c) 2010, Willow Garage, Inc., University of Tokyo
|
* Copyright (c) 2010, Willow Garage, Inc.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
/* Authors: Tim Field, Rosen Diankov */
|
/* Authors: Tim Field */
|
||||||
|
|
||||||
#ifndef COLLADA_URDF_COLLADA_URDF_H
|
#ifndef COLLADA_URDF_COLLADA_URDF_H
|
||||||
#define COLLADA_URDF_COLLADA_URDF_H
|
#define COLLADA_URDF_COLLADA_URDF_H
|
||||||
|
@ -50,20 +50,33 @@ public:
|
||||||
ColladaUrdfException(std::string const& what);
|
ColladaUrdfException(std::string const& what);
|
||||||
};
|
};
|
||||||
|
|
||||||
enum WriteOptions
|
/** Construct a COLLADA DOM from an URDF file
|
||||||
{
|
* \param file The filename from where to read the URDF
|
||||||
WO_IgnoreCollisionGeometry = 1, ///< if set, will use only the visual geometry
|
* \param dom The resulting COLLADA DOM
|
||||||
};
|
* \return true on success, false on failure
|
||||||
|
|
||||||
/** Construct a COLLADA DOM from an URDF model
|
|
||||||
|
|
||||||
\param robot_model The initialized robot model
|
|
||||||
\param dom The resulting COLLADA DOM
|
|
||||||
\param writeoptions A combination of \ref WriteOptions
|
|
||||||
|
|
||||||
\return true on success, false on failure
|
|
||||||
*/
|
*/
|
||||||
bool colladaFromUrdfModel(const urdf::Model& robot_model, boost::shared_ptr<DAE>& dom, int writeoptions=0);
|
bool colladaFromUrdfFile(std::string const& file, boost::shared_ptr<DAE>& dom);
|
||||||
|
|
||||||
|
/** Construct a COLLADA DOM from a string containing URDF
|
||||||
|
* \param xml A string containing the XML description of the robot
|
||||||
|
* \param dom The resulting COLLADA DOM
|
||||||
|
* \return true on success, false on failure
|
||||||
|
*/
|
||||||
|
bool colladaFromUrdfString(std::string const& xml, boost::shared_ptr<DAE>& dom);
|
||||||
|
|
||||||
|
/** Construct a COLLADA DOM from a TiXmlDocument containing URDF
|
||||||
|
* \param xml_doc The TiXmlDocument containing URDF
|
||||||
|
* \param dom The resulting COLLADA DOM
|
||||||
|
* \return true on success, false on failure
|
||||||
|
*/
|
||||||
|
bool colladaFromUrdfXml(TiXmlDocument* xml_doc, boost::shared_ptr<DAE>& dom);
|
||||||
|
|
||||||
|
/** Construct a COLLADA DOM from a URDF robot model
|
||||||
|
* \param robot_model The URDF robot model
|
||||||
|
* \param dom The resulting COLLADA DOM
|
||||||
|
* \return true on success, false on failure
|
||||||
|
*/
|
||||||
|
bool colladaFromUrdfModel(urdf::Model const& robot_model, boost::shared_ptr<DAE>& dom);
|
||||||
|
|
||||||
/** Write a COLLADA DOM to a file
|
/** Write a COLLADA DOM to a file
|
||||||
* \param dom COLLADA DOM to write
|
* \param dom COLLADA DOM to write
|
||||||
|
|
|
@ -1225,14 +1225,44 @@ private:
|
||||||
Assimp::Importer _importer;
|
Assimp::Importer _importer;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
ColladaUrdfException::ColladaUrdfException(std::string const& what)
|
ColladaUrdfException::ColladaUrdfException(std::string const& what)
|
||||||
: std::runtime_error(what)
|
: std::runtime_error(what)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
bool colladaFromUrdfModel(const urdf::Model& robot_model, boost::shared_ptr<DAE>& dom, int writeoptions)
|
bool colladaFromUrdfFile(string const& file, boost::shared_ptr<DAE>& dom) {
|
||||||
{
|
TiXmlDocument urdf_xml;
|
||||||
ColladaWriter writer(robot_model,writeoptions);
|
if (!urdf_xml.LoadFile(file)) {
|
||||||
|
ROS_ERROR("Could not load XML file");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return colladaFromUrdfXml(&urdf_xml, dom);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool colladaFromUrdfString(string const& xml, boost::shared_ptr<DAE>& dom) {
|
||||||
|
TiXmlDocument urdf_xml;
|
||||||
|
if (urdf_xml.Parse(xml.c_str()) == 0) {
|
||||||
|
ROS_ERROR("Could not parse XML document");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return colladaFromUrdfXml(&urdf_xml, dom);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool colladaFromUrdfXml(TiXmlDocument* xml_doc, boost::shared_ptr<DAE>& dom) {
|
||||||
|
urdf::Model robot_model;
|
||||||
|
if (!robot_model.initXml(xml_doc)) {
|
||||||
|
ROS_ERROR("Could not generate robot model");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return colladaFromUrdfModel(robot_model, dom);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool colladaFromUrdfModel(urdf::Model const& robot_model, boost::shared_ptr<DAE>& dom) {
|
||||||
|
ColladaWriter writer(robot_model,0);
|
||||||
dom = writer.convert();
|
dom = writer.convert();
|
||||||
return dom != boost::shared_ptr<DAE>();
|
return dom != boost::shared_ptr<DAE>();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue