Skip to content
Snippets Groups Projects
Commit 01702137 authored by Jean Patrick Mathes's avatar Jean Patrick Mathes
Browse files

Add reset operation for all elements

parent 532339e4
No related branches found
No related tags found
No related merge requests found
......@@ -111,20 +111,41 @@ namespace armarx
{
bool isChanged = changed.find(objectPose.objectID.str()) != changed.end();
float alpha = isChanged ? 1.0 / 2 : 1.0;
viz::InteractionDescription interaction = viz::interaction().selection().transform().hideDuringTransform();
if (isChanged)
{
interaction.contextMenu({"Reset"});
}
observer.addObserved(
memoryLayer,
viz::Object(objectPose.objectID.str())
.pose(objectPose.objectPoseGlobal)
.fileByObjectFinder(objectPose.objectID)
.alpha(isChanged ? 0.5 : 1.0)
.enable(viz::interaction()
.selection()
.transform()
.hideDuringTransform()))
.alpha(alpha)
.enable(interaction))
.onContextMenu(0, [&]
{
auto iterator = changed.find(objectPose.objectID.str());
if (iterator != changed.end())
{
Change change = iterator->second;
changed.erase(iterator);
objectPose.objectPoseGlobal = change.originalPose;
isMemoryVizRequired = true;
}
})
.onTransformEnd([&](const Eigen::Matrix4f& transform)
{
Change change = {.originalPose = objectPose.objectPoseGlobal};
objectPose.objectPoseGlobal = transform * objectPose.objectPoseGlobal;
changed.emplace(objectPose.objectID.str());
// Emplace does not override when entry already exists in map.
changed.emplace(objectPose.objectID.str(), change);
isMemoryVizRequired = true;
});
}
......@@ -132,13 +153,15 @@ namespace armarx
void Editor::visualizeMeta()
{
const float size = 1000;
observer.clearObservedLayer(metaLayer);
observer.addObserved(
metaLayer,
viz::Box("meta")
.pose(metaCubePose)
.size(1000)
.size(size)
.color(simox::color::Color(1.0, 0.0, 0.0))
.enable(viz::interaction()
.selection()
......
......@@ -30,8 +30,13 @@ namespace armarx
InteractionObserver observer;
struct Change
{
Eigen::Matrix4f originalPose;
};
objpose::ObjectPoseSeq requestedPoses;
std::set<std::string> changed;
std::map<std::string, Change> changed;
bool isPushRequired;
bool isPullRequired;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment