diff --git a/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp b/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp index 9f0d717489ab6012f1a812e1a1ad1c3f8499ead5..72faed5fee3f85ff9e34d8e3b821c33598d52f37 100644 --- a/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp +++ b/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp @@ -32,6 +32,7 @@ #include <ArmarXCore/core/time/TimeUtil.h> #include <SimoxUtility/algorithm/get_map_keys_values.h> +#include <SimoxUtility/algorithm/string.h> #include <SimoxUtility/json.h> #include <SimoxUtility/math/pose/pose.h> @@ -100,8 +101,9 @@ namespace armarx::armem::server::obj::instance defs->optional(p.sceneSnapshotsDirectory, prefix + "scene.11_Directory", "Directory in Package/data/Package/ containing the scene snapshots."); defs->optional(p.sceneSnapshotToLoad, prefix + "scene.12_SnapshotToLoad", - "Scene snapshot to load on startup (e.g. 'Scene_2021-06-24_20-20-03').\n" - "You can also specify paths relative to 'Package/scenes/'."); + "Scene to load on startup (e.g. 'Scene_2021-06-24_20-20-03').\n" + "You can also specify paths relative to 'Package/scenes/'. \n" + "You can also specify a ; separated list of scenes."); decay.defineProperties(defs, prefix + "decay."); } @@ -113,8 +115,13 @@ namespace armarx::armem::server::obj::instance if (not p.sceneSnapshotToLoad.empty()) { - bool lockMemory = false; - commitSceneSnapshotFromFilename(p.sceneSnapshotToLoad, lockMemory); + bool trim = true; + const std::vector<std::string> scenes = simox::alg::split(p.sceneSnapshotToLoad, ";", trim); + for (const std::string& scene : scenes) + { + const bool lockMemory = false; + commitSceneSnapshotFromFilename(scene, lockMemory); + } } }