From 6cca2a4ec13fd210ede56a466b6924a77348cee9 Mon Sep 17 00:00:00 2001 From: Rainer Kartmann <rainer.kartmann@kit.edu> Date: Tue, 29 Jun 2021 15:38:54 +0200 Subject: [PATCH] Fix snapshot loading --- .../armem_objects/server/instance/Segment.cpp | 17 ++++++++++++----- .../armem_objects/server/instance/Segment.h | 3 ++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp b/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp index 125bdd946..fd9a7d126 100644 --- a/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp +++ b/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp @@ -81,12 +81,14 @@ namespace armarx::armem::server::obj::instance "If true, no new snapshots are stored while an object is attached to a robot node.\n" "If false, new snapshots are stored, but the attachment is kept in the new snapshots."); - defs->optional(p.sceneSnapshotsPackage, prefix + "scene.Package", + defs->optional(p.sceneSnapshotsPackage, prefix + "scene.10_Package", "ArmarX package containing the scene snapshots.\n" "Scene snapshots are expected to be located in Package/data/Package/Scenes/*.json."); - defs->optional(p.sceneSnapshotToLoad, prefix + "scene.SnapshotToLoad", + 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/'."); + "You can also specify paths relative to 'Package/scenes/'."); decay.defineProperties(defs, prefix + "decay."); } @@ -791,7 +793,7 @@ namespace armarx::armem::server::obj::instance if (finder->packageFound()) { std::filesystem::path dataDir = finder->getDataDir(); - std::filesystem::path path = dataDir / p.sceneSnapshotsPackage / "Scenes" / filename; + std::filesystem::path path = dataDir / p.sceneSnapshotsPackage / p.sceneSnapshotsDirectory / filename; return path; } else @@ -906,7 +908,12 @@ namespace armarx::armem::server::obj::instance loadButton.setLabel("Load Scene"); storeButton.setLabel("Store Scene"); - HBoxLayout storeLoadLineLayout({Label(data.p.sceneSnapshotsPackage + "/Scenes/"), storeLoadLine, Label(".json")}); + HBoxLayout storeLoadLineLayout( + { + Label(data.p.sceneSnapshotsPackage + "/" + data.p.sceneSnapshotsDirectory + "/"), + storeLoadLine, + Label(".json") + }); HBoxLayout storeLoadButtonsLayout({loadButton, storeButton}); GridLayout grid; diff --git a/source/RobotAPI/libraries/armem_objects/server/instance/Segment.h b/source/RobotAPI/libraries/armem_objects/server/instance/Segment.h index 0ac63b410..440de8135 100644 --- a/source/RobotAPI/libraries/armem_objects/server/instance/Segment.h +++ b/source/RobotAPI/libraries/armem_objects/server/instance/Segment.h @@ -182,7 +182,8 @@ namespace armarx::armem::server::obj::instance bool discardSnapshotsWhileAttached = true; /// Package containing the scene snapshots - std::string sceneSnapshotsPackage = "ArmarXObjects"; + std::string sceneSnapshotsPackage = armarx::ObjectFinder::DefaultObjectsPackageName; + std::string sceneSnapshotsDirectory = "scenes"; std::string sceneSnapshotToLoad = ""; }; Properties p; -- GitLab