diff --git a/applications/gui2/src/modules/calibration/extrinsic.cpp b/applications/gui2/src/modules/calibration/extrinsic.cpp index 9ebadc97cfbf00b0197cc502e54da7e5fde1b444..9f88e3b6c2e18af45a24f42d7878d3a4f930c7f1 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 284ba035ba410a06e7fa1a6505f25ad025b2c2c4..4e583f6c2124f56e91eb30d16acbea2485e979d9 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");