X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvToolRigidReg.cxx;h=5a11c7f8e367dad022cf08bc8b54cf06a92e92ed;hb=HEAD;hp=d2c889cb31fd8b9b3e8670d911d569f9727a3793;hpb=4a5d4517e48bf9a17c464d8384bd1cdd0397738c;p=clitk.git diff --git a/vv/vvToolRigidReg.cxx b/vv/vvToolRigidReg.cxx index d2c889c..5a11c7f 100644 --- a/vv/vvToolRigidReg.cxx +++ b/vv/vvToolRigidReg.cxx @@ -178,7 +178,8 @@ bool vvToolRigidReg::close() msgBox.addButton(tr("Yes"), QMessageBox::AcceptRole); msgBox.addButton(tr("No"), QMessageBox::RejectRole); if (msgBox.exec() == QMessageBox::AcceptRole) { - SetTransform(mInitialMatrix); + if (mCurrentSlicerManager) + SetTransform(mInitialMatrix); return vvToolWidgetBase::close(); } return false; @@ -379,7 +380,11 @@ void vvToolRigidReg::SetTransform(vtkMatrix4x4 *matrix) euler = itk::Euler3DTransform::New(); euler->SetCenter(center); try { +#if ITK_VERSION_MAJOR > 4 || (ITK_VERSION_MAJOR == 4 && ITK_VERSION_MINOR > 6) + euler->SetMatrix(rotMat,0.00001); +#else euler->SetMatrix(rotMat); +#endif } 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); @@ -408,7 +413,7 @@ void vvToolRigidReg::SetTransform(vtkMatrix4x4 *matrix) double rad = (checkBoxDegrees->checkState()==Qt::Checked)?180./itk::Math::pi:1.; double angleDiff = euler->GetParameters()[i]-rotSBs[i]->value()/rad+2*itk::Math::pi; angleDiff = angleDiff - 2*itk::Math::pi*itk::Math::Round(angleDiff/(2*itk::Math::pi)); - if(abs(angleDiff)>1.e-4) { + if(std::abs(angleDiff)>1.e-4) { rotSBs[i]->blockSignals(true); rotSBs[i]->setValue( euler->GetParameters()[i]*rad ); rotSBs[i]->blockSignals(false);