From ee2d86a9519bf3e5e7bf416e495fef51fbdb1502 Mon Sep 17 00:00:00 2001 From: Joseph Mirabel <jmirabel@laas.fr> Date: Sun, 21 Aug 2016 17:19:33 +0200 Subject: [PATCH] [C++] Add GeometryModel::addGeometryObject(const Geometry&) --- src/multibody/geometry.hpp | 9 +++++++++ src/multibody/geometry.hxx | 17 +++++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/multibody/geometry.hpp b/src/multibody/geometry.hpp index 1e3d5f446..516428e23 100644 --- a/src/multibody/geometry.hpp +++ b/src/multibody/geometry.hpp @@ -70,6 +70,15 @@ namespace se3 ~GeometryModel() {}; + /** + * @brief Add a geometry object to a GeometryModel + * + * @param[in] object Object + * + * @return The index of the new added GeometryObject in geometryObjects + */ + inline GeomIndex addGeometryObject(const GeometryObject& object); + /** * @brief Add a geometry object to a GeometryModel * diff --git a/src/multibody/geometry.hxx b/src/multibody/geometry.hxx index 01e054328..69085c4ca 100644 --- a/src/multibody/geometry.hxx +++ b/src/multibody/geometry.hxx @@ -32,6 +32,14 @@ namespace se3 { + inline GeomIndex GeometryModel::addGeometryObject(const GeometryObject& object) + { + Index idx = (Index) (ngeoms ++); + geometryObjects.push_back(object); + addInnerObject(object.parentJoint, idx); + return idx; + } + inline GeomIndex GeometryModel::addGeometryObject(const Model& model, const FrameIndex parent, const boost::shared_ptr<fcl::CollisionGeometry> & co, @@ -39,14 +47,11 @@ namespace se3 const std::string & geom_name, const std::string & mesh_path) throw(std::invalid_argument) { - Index idx = (Index) (ngeoms ++); - assert (model.frames[parent].type == se3::BODY); JointIndex parentJoint = model.frames[parent].parent; - geometryObjects.push_back(GeometryObject( geom_name, parent, parentJoint, co, - placement, mesh_path)); - addInnerObject(parentJoint, idx); - return idx; + GeometryObject object( geom_name, parent, parentJoint, co, + placement, mesh_path); + return addGeometryObject (object); } -- GitLab