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