void ToolTipCalibrateWidget::calibrateSlot() { ToolPtr refTool = mTools->getTool(); //Todo, we only allow the reference point with id 1 to be used to calibrate //this could be done more dynamic. if(!refTool || !refTool->hasReferencePointWithId(1)) return; ToolPtr tool = mServices->tracking()->getActiveTool(); CoordinateSystem to = mServices->spaceProvider()->getT(tool); Vector3D P_t = mServices->spaceProvider()->getActiveToolTipPoint(to); ToolTipCalibrationCalculator calc(mServices->spaceProvider(), tool, refTool, P_t); Transform3D calibration = calc.get_calibration_sMt(); QMessageBox msgBox; msgBox.setText("Do you want to overwrite "+tool->getName()+"s calibration file?"); msgBox.setInformativeText("This cannot be undone."); msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel); msgBox.setDefaultButton(QMessageBox::Ok); int ret = msgBox.exec(); if(ret == QMessageBox::Ok) { tool->setCalibration_sMt(calibration); mCalibrationLabel->setText("Calibration:\n"+qstring_cast(calibration)); } }
void ToolManualCalibrationWidget::matrixWidgetChanged() { ToolPtr tool = mTool->getTool(); if (!tool) return; Transform3D M = mMatrixWidget->getMatrix(); tool->setCalibration_sMt(M); }