From 2a949639a5a99e99c39d240d2dac34d480adcb42 Mon Sep 17 00:00:00 2001 From: Rainer Kartmann <rainer.kartmann@kit.edu> Date: Thu, 12 May 2022 10:41:26 +0200 Subject: [PATCH] Put linear prediction control in own group box --- .../armem_objects/server/instance/Visu.cpp | 58 ++++++++++++++----- .../armem_objects/server/instance/Visu.h | 15 ++++- 2 files changed, 55 insertions(+), 18 deletions(-) diff --git a/source/RobotAPI/libraries/armem_objects/server/instance/Visu.cpp b/source/RobotAPI/libraries/armem_objects/server/instance/Visu.cpp index 07ded4465..5f1a8c0ae 100644 --- a/source/RobotAPI/libraries/armem_objects/server/instance/Visu.cpp +++ b/source/RobotAPI/libraries/armem_objects/server/instance/Visu.cpp @@ -305,10 +305,6 @@ namespace armarx::armem::server::obj::instance useArticulatedModels.setValue(visu.useArticulatedModels); - showLinearPredictions.setValue(visu.showLinearPredictions); - linearPredictionTimeOffsetSeconds.setValue(visu.linearPredictionTimeOffsetSeconds); - linearPredictionTimeWindowSeconds.setValue(visu.linearPredictionTimeWindowSeconds); - linearPredictionTimeWindowSeconds.setRange(0, std::numeric_limits<float>::max()); GridLayout grid; int row = 0; @@ -331,17 +327,11 @@ namespace armarx::armem::server::obj::instance grid.add(gaussians.group, {row, 0}, {1, 4}); row++; - grid.add(Label("Use Articulated Models"), {row, 0}).add(useArticulatedModels, {row, 1}); row++; - grid.add(Label("Show Linear Predictions"), {row, 0}).add(showLinearPredictions, {row, 1}); - row++; - grid.add(Label("Time (seconds from now):"), {row, 0}) - .add(linearPredictionTimeOffsetSeconds, {row, 1}); - row++; - grid.add(Label("Time Window (seconds):"), {row, 0}) - .add(linearPredictionTimeWindowSeconds, {row, 1}); + linearPredictions.setup(visu); + grid.add(linearPredictions.group, {row, 0}, {1, 4}); row++; group = GroupBox(); @@ -392,9 +382,47 @@ namespace armarx::armem::server::obj::instance visu.useArticulatedModels = useArticulatedModels.getValue(); - visu.showLinearPredictions = showLinearPredictions.getValue(); - visu.linearPredictionTimeOffsetSeconds = linearPredictionTimeOffsetSeconds.getValue(); - visu.linearPredictionTimeWindowSeconds = linearPredictionTimeWindowSeconds.getValue(); + linearPredictions.update(visu); + } + + + void Visu::RemoteGui::LinearPredictions::setup(const Visu& visu) + { + using namespace armarx::RemoteGui::Client; + + show.setValue(visu.showLinearPredictions); + timeOffsetSeconds.setValue(visu.linearPredictionTimeOffsetSeconds); + timeOffsetSeconds.setRange(-1e6, 1e6); + timeOffsetSeconds.setSteps(2 * 2 * 1000 * 1000); + + timeWindowSeconds.setValue(visu.linearPredictionTimeWindowSeconds); + timeWindowSeconds.setRange(0, 1e6); + timeWindowSeconds.setSteps(2 * 1000 * 1000); + + + GridLayout grid; + int row = 0; + + grid.add(Label("Show"), {row, 0}).add(show, {row, 1}); + row++; + grid.add(Label("Time (seconds from now):"), {row, 0}) + .add(timeOffsetSeconds, {row, 1}); + row++; + grid.add(Label("Time Window (seconds):"), {row, 0}) + .add(timeWindowSeconds, {row, 1}); + row++; + + group = GroupBox(); + group.setLabel("Linear Predictions"); + group.addChild(grid); + } + + + void Visu::RemoteGui::LinearPredictions::update(Visu& visu) + { + visu.showLinearPredictions = show.getValue(); + visu.linearPredictionTimeOffsetSeconds = timeOffsetSeconds.getValue(); + visu.linearPredictionTimeWindowSeconds = timeWindowSeconds.getValue(); } } diff --git a/source/RobotAPI/libraries/armem_objects/server/instance/Visu.h b/source/RobotAPI/libraries/armem_objects/server/instance/Visu.h index a88e3d2c8..56380159b 100644 --- a/source/RobotAPI/libraries/armem_objects/server/instance/Visu.h +++ b/source/RobotAPI/libraries/armem_objects/server/instance/Visu.h @@ -128,11 +128,20 @@ namespace armarx::armem::server::obj::instance armarx::RemoteGui::Client::CheckBox useArticulatedModels; - armarx::RemoteGui::Client::CheckBox showLinearPredictions; - armarx::RemoteGui::Client::FloatSpinBox linearPredictionTimeOffsetSeconds; - armarx::RemoteGui::Client::FloatSpinBox linearPredictionTimeWindowSeconds; + struct LinearPredictions + { + armarx::RemoteGui::Client::CheckBox show; + + armarx::RemoteGui::Client::FloatSpinBox timeOffsetSeconds; + armarx::RemoteGui::Client::FloatSpinBox timeWindowSeconds; + + armarx::RemoteGui::Client::GroupBox group; + void setup(const Visu& data); + void update(Visu& data); + }; + LinearPredictions linearPredictions; void setup(const Visu& visu); void update(Visu& visu); -- GitLab