X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=vv%2FvvToolRigidReg.cxx;h=d2c889cb31fd8b9b3e8670d911d569f9727a3793;hb=2a47eef492588295e5c7259bb8a423ff35d34327;hp=e050426ea99c52ec95cffbb59e4b12c14ec50be1;hpb=4b7af871463cc4b63f52d5892f6ab2d6d40bfc28;p=clitk.git diff --git a/vv/vvToolRigidReg.cxx b/vv/vvToolRigidReg.cxx index e050426..d2c889c 100644 --- a/vv/vvToolRigidReg.cxx +++ b/vv/vvToolRigidReg.cxx @@ -378,7 +378,17 @@ void vvToolRigidReg::SetTransform(vtkMatrix4x4 *matrix) itk::Euler3DTransform::Pointer euler; euler = itk::Euler3DTransform::New(); euler->SetCenter(center); - euler->SetMatrix(rotMat); + try { + euler->SetMatrix(rotMat); + } catch (itk::ExceptionObject) { + QString warning = "The matrice is a non-orthogonal rotation matrix.\nThe manual registration doesn't work."; + QMessageBox msgBox(QMessageBox::Warning, tr("Reset transform"),warning, 0, this); + msgBox.addButton(tr("OK"), QMessageBox::AcceptRole); + if (msgBox.exec() == QMessageBox::AcceptRole) { + //SetTransform(mInitialMatrix); + vvToolWidgetBase::close(); + } + } euler->SetOffset(transVec); // Modify GUI according to the new parameters