diff --git a/source/RobotAPI/components/InteractiveMemoryEditor/Editor.cpp b/source/RobotAPI/components/InteractiveMemoryEditor/Editor.cpp index 9ad32d663a64a86b41022dbf22b45837979820be..7b8d502180a71e9325107caa16571b85fa0427e4 100644 --- a/source/RobotAPI/components/InteractiveMemoryEditor/Editor.cpp +++ b/source/RobotAPI/components/InteractiveMemoryEditor/Editor.cpp @@ -33,6 +33,13 @@ namespace armarx isUpdateRequired = false; } + if (isResetRequired) + { + reset(); + + isResetRequired = false; + } + if (isMemoryVizRequired) { visualizeMemory(); @@ -73,6 +80,13 @@ namespace armarx return newRequestedPoses; } + void Editor::reset() + { + changes.clear(); + + isMemoryVizRequired = true; + } + void Editor::commit() { changes.moveNewObjectsTo(storedPoses); @@ -182,6 +196,10 @@ namespace armarx { isUpdateRequired = true; }) + .onContextMenu(description.resetAllIndex, [&] + { + isResetRequired = true; + }) .onTransformEnd([&](const Eigen::Matrix4f& transform) { changes.moveObject(objectPose, transform); @@ -293,7 +311,10 @@ namespace armarx description.commitIndex = currentIndex++; description.options.emplace_back("Update Unchanged"); - description.updateIndex = currentIndex; // ++ + description.updateIndex = currentIndex++; + + description.options.emplace_back("Reset All"); + description.resetAllIndex = currentIndex; // ++ return description; } diff --git a/source/RobotAPI/components/InteractiveMemoryEditor/Editor.h b/source/RobotAPI/components/InteractiveMemoryEditor/Editor.h index 1ba3dc26431eb590020423fb10e8aea5ce8a8aba..e64749cabcb24dc27b53f0353454bed2458d8f21 100644 --- a/source/RobotAPI/components/InteractiveMemoryEditor/Editor.h +++ b/source/RobotAPI/components/InteractiveMemoryEditor/Editor.h @@ -48,6 +48,7 @@ namespace armarx size_t resetIndex = std::numeric_limits<size_t>::max(); size_t commitIndex = std::numeric_limits<size_t>::max(); size_t updateIndex = std::numeric_limits<size_t>::max(); + size_t resetAllIndex = std::numeric_limits<size_t>::max(); }; class ChangeState @@ -89,6 +90,7 @@ namespace armarx bool isCommitRequired; bool isUpdateRequired; + bool isResetRequired; bool isMemoryVizRequired; bool isMetaVizRequired; @@ -97,6 +99,7 @@ namespace armarx void commit(); objpose::ObjectPoseSeq update(); + void reset(); void visualizeObject(objpose::ObjectPose &objectPose); };