From 2083f8ef9a12fafb404cd0b405930f33ed966383 Mon Sep 17 00:00:00 2001 From: tfield Date: Sat, 24 Apr 2010 17:45:27 +0000 Subject: [PATCH] collada_urdf: link Boost.System --- collada_urdf/CMakeLists.txt | 10 ++++- .../include/collada_urdf/collada_writer.h | 32 +------------- .../include/collada_urdf/stl_loader.h | 2 + collada_urdf/src/collada_writer.cpp | 43 ++----------------- collada_urdf/src/stl_loader.cpp | 2 + collada_urdf/src/urdf_to_collada.cpp | 4 +- ...llada_writer.cpp => test_collada_urdf.cpp} | 4 +- 7 files changed, 23 insertions(+), 74 deletions(-) rename collada_urdf/test/{test_collada_writer.cpp => test_collada_urdf.cpp} (96%) diff --git a/collada_urdf/CMakeLists.txt b/collada_urdf/CMakeLists.txt index dd21f38..ee272a6 100644 --- a/collada_urdf/CMakeLists.txt +++ b/collada_urdf/CMakeLists.txt @@ -3,6 +3,12 @@ include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake) set(ROS_BUILD_TYPE Debug) rosbuild_init() set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) -rosbuild_add_executable(urdf_to_collada src/urdf_to_collada.cpp src/collada_writer.cpp src/stl_loader.cpp) -rosbuild_add_gtest(test_collada_writer test/test_collada_writer.cpp src/collada_writer.cpp src/stl_loader.cpp) +rosbuild_add_library(collada_urdf src/collada_urdf.cpp src/collada_writer.cpp src/stl_loader.cpp) +rosbuild_link_boost(collada_urdf system) + +rosbuild_add_executable(urdf_to_collada src/urdf_to_collada.cpp) +target_link_libraries(urdf_to_collada collada_urdf) + +rosbuild_add_gtest(test_collada_writer test/test_collada_urdf.cpp) +target_link_libraries(test_collada_writer collada_urdf) diff --git a/collada_urdf/include/collada_urdf/collada_writer.h b/collada_urdf/include/collada_urdf/collada_writer.h index 69025fc..d579d80 100644 --- a/collada_urdf/include/collada_urdf/collada_writer.h +++ b/collada_urdf/include/collada_urdf/collada_writer.h @@ -32,6 +32,8 @@ * POSSIBILITY OF SUCH DAMAGE. *********************************************************************/ +/* Author: Tim Field */ + #ifndef COLLADA_URDF_COLLADA_WRITER_H #define COLLADA_URDF_COLLADA_WRITER_H @@ -59,36 +61,6 @@ public: ColladaWriterException(std::string const& what) : std::runtime_error(what) { } }; -/** Constructs a COLLADA DOM from a file, given the file name - * \param file The filename from where to read the XML - * \param dom The resulting COLLADA DOM - * \return true on success, false on failure - */ -bool colladaFromFile(std::string const& file, boost::shared_ptr& dom); - -/** Constructs a COLLADA DOM from a string containing XML - * \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 colladaFromString(std::string const& xml, boost::shared_ptr& dom); - -/** Constructs a COLLADA DOM from a TiXmlDocument - * \param xml_doc The TiXmlDocument containing the XML description of the robot - * \param dom The resulting COLLADA DOM - * \return true on success, false on failure - */ -bool colladaFromXml(TiXmlDocument* xml_doc, boost::shared_ptr& dom); - -/** Constructs 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& dom); - -// - class Mesh; class ColladaWriter : public daeErrorHandler diff --git a/collada_urdf/include/collada_urdf/stl_loader.h b/collada_urdf/include/collada_urdf/stl_loader.h index c96395d..4241c54 100644 --- a/collada_urdf/include/collada_urdf/stl_loader.h +++ b/collada_urdf/include/collada_urdf/stl_loader.h @@ -32,6 +32,8 @@ * POSSIBILITY OF SUCH DAMAGE. *********************************************************************/ +/* Author: Tim Field */ + #ifndef COLLADA_URDF_STL_LOADER_H #define COLLADA_URDF_STL_LOADER_H diff --git a/collada_urdf/src/collada_writer.cpp b/collada_urdf/src/collada_writer.cpp index 90364e0..11b5b0e 100644 --- a/collada_urdf/src/collada_writer.cpp +++ b/collada_urdf/src/collada_writer.cpp @@ -32,6 +32,8 @@ * POSSIBILITY OF SUCH DAMAGE. *********************************************************************/ +/* Author: Tim Field */ + #include "collada_urdf/collada_writer.h" #include "collada_urdf/stl_loader.h" @@ -49,45 +51,6 @@ using boost::shared_ptr; namespace collada_urdf { -bool colladaFromFile(std::string const& file, boost::shared_ptr& dom) { - TiXmlDocument urdf_xml; - if (!urdf_xml.LoadFile(file)) { - ROS_ERROR("Could not load XML file"); - return false; - } - - return colladaFromXml(&urdf_xml, dom); -} - -bool colladaFromString(std::string const& xml, boost::shared_ptr& dom) { - TiXmlDocument urdf_xml; - if (urdf_xml.Parse(xml.c_str()) == 0) { - ROS_ERROR("Could not parse XML document"); - return false; - } - - return colladaFromXml(&urdf_xml, dom); -} - -bool colladaFromXml(TiXmlDocument* xml_doc, boost::shared_ptr& 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& dom) { - ColladaWriter writer(robot_model); - dom = writer.convert(); - - return dom != shared_ptr(); -} - -// - ColladaWriter::ColladaWriter(urdf::Model const& robot) : robot_(robot), dom_(NULL) { } shared_ptr ColladaWriter::convert() { @@ -310,7 +273,7 @@ bool ColladaWriter::loadMeshWithSTLLoader(resource_retriever::MemoryResource con if (fd == -1) throw ColladaWriterException("Couldn't create temporary file"); - if (write(fd, resource.data.get(), resource.size) != resource.size) { + if ((uint32_t) write(fd, resource.data.get(), resource.size) != resource.size) { close(fd); unlink(tmp_filename); throw ColladaWriterException("Couldn't write resource to file"); diff --git a/collada_urdf/src/stl_loader.cpp b/collada_urdf/src/stl_loader.cpp index 7278c05..77b8b2d 100644 --- a/collada_urdf/src/stl_loader.cpp +++ b/collada_urdf/src/stl_loader.cpp @@ -32,6 +32,8 @@ * POSSIBILITY OF SUCH DAMAGE. *********************************************************************/ +/* Author: Tim Field */ + #include "collada_urdf/stl_loader.h" #include diff --git a/collada_urdf/src/urdf_to_collada.cpp b/collada_urdf/src/urdf_to_collada.cpp index e527f7b..6081c79 100644 --- a/collada_urdf/src/urdf_to_collada.cpp +++ b/collada_urdf/src/urdf_to_collada.cpp @@ -32,7 +32,9 @@ * POSSIBILITY OF SUCH DAMAGE. *********************************************************************/ -#include "collada_urdf/collada_writer.h" +/* Author: Tim Field */ + +#include "collada_urdf/collada_urdf.h" int main(int argc, char** argv) { diff --git a/collada_urdf/test/test_collada_writer.cpp b/collada_urdf/test/test_collada_urdf.cpp similarity index 96% rename from collada_urdf/test/test_collada_writer.cpp rename to collada_urdf/test/test_collada_urdf.cpp index a69fa79..0c17a8e 100644 --- a/collada_urdf/test/test_collada_writer.cpp +++ b/collada_urdf/test/test_collada_urdf.cpp @@ -25,7 +25,9 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -#include "collada_urdf/collada_writer.h" +/* Author: Tim Field */ + +#include "collada_urdf/collada_urdf.h" #include