From 721ad98b883cd4fe8e3d6bd2802a189d4b0b2a59 Mon Sep 17 00:00:00 2001 From: Raphael Grimm <raphael.grimm@kit.edu> Date: Wed, 27 Mar 2019 17:58:07 +0100 Subject: [PATCH] ACDManager::addCollisionModel(const std::vector<RobotNodePtr>& nodes, const std::string& setName)dd --- VirtualRobot/CollisionDetection/CDManager.cpp | 15 +++++++++++++++ VirtualRobot/CollisionDetection/CDManager.h | 1 + 2 files changed, 16 insertions(+) diff --git a/VirtualRobot/CollisionDetection/CDManager.cpp b/VirtualRobot/CollisionDetection/CDManager.cpp index b56eadd40..c05f4faad 100644 --- a/VirtualRobot/CollisionDetection/CDManager.cpp +++ b/VirtualRobot/CollisionDetection/CDManager.cpp @@ -62,6 +62,21 @@ namespace VirtualRobot } } + void CDManager::addCollisionModel(const std::vector<RobotNodePtr>& nodes, const std::string& setName) + { + VirtualRobot::SceneObjectSetPtr cms( + new VirtualRobot::SceneObjectSet( + setName.empty() ? "set_" + std::to_string(colModels.size()) : setName, + getCollisionChecker() + ) + ); + for (const auto& robotNode : nodes) + { + cms->addSceneObject(robotNode); + } + addCollisionModel(cms); + } + bool CDManager::isInCollision(SceneObjectSetPtr m) { if (!m || !colChecker) diff --git a/VirtualRobot/CollisionDetection/CDManager.h b/VirtualRobot/CollisionDetection/CDManager.h index 749c0a974..d3a5ddb01 100644 --- a/VirtualRobot/CollisionDetection/CDManager.h +++ b/VirtualRobot/CollisionDetection/CDManager.h @@ -86,6 +86,7 @@ namespace VirtualRobot Here single collision models can be added. Internally they are wrapped by a SceneObjectSet. */ void addCollisionModel(SceneObjectPtr m); + void addCollisionModel(const std::vector<RobotNodePtr>& nodes, const std::string& setName = ""); bool hasSceneObjectSet(SceneObjectSetPtr m); -- GitLab