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