From ac8962d7ce480ff1431b407860058d0e9a0adeb7 Mon Sep 17 00:00:00 2001 From: Rainer Kartmann <rainer.kartmann@student.kit.edu> Date: Wed, 26 Jun 2019 13:28:20 +0200 Subject: [PATCH] Add reset() --- VirtualRobot/XML/mujoco/RobotMjcf.cpp | 17 ++++++++++++++++- VirtualRobot/XML/mujoco/RobotMjcf.h | 3 +++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/VirtualRobot/XML/mujoco/RobotMjcf.cpp b/VirtualRobot/XML/mujoco/RobotMjcf.cpp index 5210f82be..42131e5e7 100644 --- a/VirtualRobot/XML/mujoco/RobotMjcf.cpp +++ b/VirtualRobot/XML/mujoco/RobotMjcf.cpp @@ -54,10 +54,25 @@ ActuatorType toActuatorType(const std::string& string) RobotMjcf::RobotMjcf(RobotPtr robot) : robot(robot) { + reset(); +} + +void RobotMjcf::reset() +{ + document.reset(new mjcf::Document()); + robotBody = mjcf::Body(); + nodeBodies.clear(); + + // Set model name. document->setModelName(robot->getName()); + const std::string className = robot->getName(); + + // Add robot defaults class. + document->default_().addClass(className); + // Add robot body. - robotBody = document->worldbody().addBody(robot->getName(), robot->getName()); + robotBody = document->worldbody().addBody(robot->getName(), className); nodeBodies[robot->getName()] = robotBody; } diff --git a/VirtualRobot/XML/mujoco/RobotMjcf.h b/VirtualRobot/XML/mujoco/RobotMjcf.h index 1d0fd6729..02d9b2c60 100644 --- a/VirtualRobot/XML/mujoco/RobotMjcf.h +++ b/VirtualRobot/XML/mujoco/RobotMjcf.h @@ -31,6 +31,9 @@ namespace VirtualRobot::mujoco RobotMjcf(RobotPtr robot); + /// Reset the document and related data. + void reset(); + /// Get the document. mjcf::Document& getDocument(); const mjcf::Document& getDocument() const; -- GitLab