From bdd8f80c6882ebc427d4787d569892b2bb0601bd Mon Sep 17 00:00:00 2001 From: Sebastian Hahta <joseha@utu.fi> Date: Fri, 24 Jul 2020 15:53:16 +0300 Subject: [PATCH] update calibration to nodes --- .../src/modules/calibration/extrinsic.cpp | 26 +++++-------------- .../src/views/calibration/extrinsicview.cpp | 3 +-- 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/applications/gui2/src/modules/calibration/extrinsic.cpp b/applications/gui2/src/modules/calibration/extrinsic.cpp index 9ebadc97c..9f88e3b6c 100644 --- a/applications/gui2/src/modules/calibration/extrinsic.cpp +++ b/applications/gui2/src/modules/calibration/extrinsic.cpp @@ -242,27 +242,17 @@ bool ExtrinsicCalibration::isBusy() { void ExtrinsicCalibration::updateCalibration() { auto fs = std::atomic_load(&fs_current_); - unsigned int nsources = fs->frames.size(); - std::vector<CalibrationData> data(nsources); - std::vector<bool> update(nsources, false); - - for (unsigned int i = 0; i < nsources; i++) { - data[i] = (*fs)[i].get<CalibrationData>(Channel::CalibrationData); - } - - for (const auto& camera : state_.cameras) { - auto srcid = camera.id.source(); - data[srcid].get(camera.id.channel) = camera.calib; - update[srcid] = true; - } - - for (unsigned int i = 0; i < nsources; i++) { - setCalibration((*fs)[i], data[i]); + for (unsigned int i = 0; i < state_.cameras.size(); i++) { + auto& c = state_.cameras[i]; + auto& frame = fs->frames[c.id]; + auto calib = frame.get<CalibrationData>(Channel::CalibrationData); + calib.get(c.id.channel) = state_.calib.calibration(i); + setCalibration(frame, calib); } } void ExtrinsicCalibration::updateCalibration(int c) { - + throw ftl::exception("Not implemented"); } void ExtrinsicCalibration::stereoRectify(int cl, int cr, @@ -360,8 +350,6 @@ int ExtrinsicCalibration::getFrameCount(int camera) { // debug method: save state to file (msgpack) void ExtrinsicCalibration::saveInput(const std::string& filename) { - LOG(WARNING) << "DISABLED"; - return; ftl::pool.push([this, filename](int){ do { // calib must not be modified; would be better to have mutex here diff --git a/applications/gui2/src/views/calibration/extrinsicview.cpp b/applications/gui2/src/views/calibration/extrinsicview.cpp index 284ba035b..4e583f6c2 100644 --- a/applications/gui2/src/views/calibration/extrinsicview.cpp +++ b/applications/gui2/src/views/calibration/extrinsicview.cpp @@ -193,9 +193,8 @@ ExtrinsicCalibrationView::ControlWindow::ControlWindow(nanogui::Widget* parent, bupload_ = new nanogui::Button(buttons, "", ENTYPO_ICON_UPLOAD); bupload_->setTooltip("Save input to sources"); bupload_->setCallback([this](){ - ctrl_->save(); + ctrl_->updateCalibration(); bupload_->setTextColor(nanogui::Color(32, 192, 32, 255)); - bupload_->setEnabled(false); }); bresults_ = new nanogui::Button(buttons, "Show Calibration"); -- GitLab