+ }
+ transform->SetMatrix(matrix);
+ // SetTransform(matrix);
+ double * orientations=new double[3];
+ double * translations=new double[3];
+ transform->GetOrientation(orientations);
+ transform->PostMultiply();
+
+ //Obtain the Rotation Center
+ Xval->setText(Qstr.at(2));
+ Yval->setText(Qstr.at(3));
+ Zval->setText(Qstr.at(4));
+
+ //In the Order or Y X Z //
+ //now postmultiply for the rotations
+ SetTransform(0,0,0,0,0,-orientations[2],false);
+ SetTransform(0,0,0,-orientations[0],0,0,false);
+ SetTransform(0,0,0,0,-orientations[1],0,false);
+
+ transform->GetPosition(translations);
+ transform->Identity();
+
+ /* DD(translations[0]/mInput1->GetImage()->GetSpacing()[0]);
+ DD(translations[1]/mInput1->GetImage()->GetSpacing()[1]);
+ DD(translations[2]/mInput1->GetImage()->GetSpacing()[2]);
+ DD(orientations[0]);
+ DD(orientations[1]);
+ DD(orientations[2]);*/
+ //set the sliders and spin box values
+ xtrans_slider->setValue(rint(translations[0]/mInput1->GetImage()->GetSpacing()[0]));
+ UpdateXtranslider();
+ ytrans_slider->setValue(rint(translations[1]/mInput1->GetImage()->GetSpacing()[1]));
+ UpdateYtranslider();
+ ztrans_slider->setValue(rint(translations[2]/mInput1->GetImage()->GetSpacing()[2]));
+ UpdateZtranslider();
+ yrot_slider->setValue(rint(orientations[1]));
+ UpdateYrotslider();
+ xrot_slider->setValue(rint(orientations[0]));
+ UpdateXrotslider();
+ zrot_slider->setValue(rint(orientations[2]));
+ UpdateZrotslider();
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvToolRigidReg::ResetTransform()
+{
+ vtkMatrix4x4 *matrix = vtkMatrix4x4::New();
+ matrix->Identity();
+ mInput1->Reload();
+ mInput1->Render();
+ mInput2->Reload();
+ mInput2->Render();
+ SetRotationCenter();
+ SetSliderRanges();
+ SetTransform(matrix);
+ UpdateTextEditor(matrix);
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvToolRigidReg::SetRotationCenter()
+{
+ //default image rotation center is the center of the image
+ QString xcord,ycord,zcord;
+ std::vector<double> imageorigin;
+ imageorigin=mInput1->GetImage()->GetOrigin();
+
+ xcord=xcord.setNum(imageorigin[0]+mImageSize[0]*mInput1->GetImage()->GetSpacing()[0]/2, 'g', 3);
+ ycord=ycord.setNum(imageorigin[1]+mImageSize[1]*mInput1->GetImage()->GetSpacing()[1]/2, 'g', 3);
+ zcord=zcord.setNum(imageorigin[2]+mImageSize[2]*mInput1->GetImage()->GetSpacing()[2]/2, 'g', 3);
+
+ Xval->setText(xcord);
+ Yval->setText(ycord);
+ Zval->setText(zcord);
+ InitializeSliders();
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvToolRigidReg::InitializeSliders()
+{
+ xtrans_slider->signalsBlocked();
+ ytrans_slider->signalsBlocked();
+ ztrans_slider->signalsBlocked();
+ xtrans_sb->signalsBlocked();
+ ytrans_sb->signalsBlocked();
+ ztrans_sb->signalsBlocked();
+ xrot_slider->signalsBlocked();
+ yrot_slider->signalsBlocked();
+ zrot_slider->signalsBlocked();
+ xrot_sb->signalsBlocked();
+ yrot_sb->signalsBlocked();
+ zrot_sb->signalsBlocked();
+
+ xtrans_sb->setValue(0);
+ ytrans_sb->setValue(0);
+ ztrans_sb->setValue(0);
+
+ xtrans_slider->setValue(0);
+ ytrans_slider->setValue(0);
+ ztrans_slider->setValue(0);
+
+ xrot_sb->setValue(0);
+ yrot_sb->setValue(0);
+ zrot_sb->setValue(0);
+
+ xrot_slider->setValue(0);
+ yrot_slider->setValue(0);
+ zrot_slider->setValue(0);
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvToolRigidReg::SetSliderRanges()
+{
+ xtrans_slider->setMaximum(1000);
+ xtrans_slider->setMinimum(-1000);
+ ytrans_slider->setMaximum(1000);
+ ytrans_slider->setMinimum(-1000);
+ ztrans_slider->setMaximum(1000);
+ ztrans_slider->setMinimum(-1000);
+
+ xtrans_sb->setMaximum(1000);
+ xtrans_sb->setMinimum(-1000);
+ ytrans_sb->setMaximum(1000);
+ ytrans_sb->setMinimum(-1000);
+ ztrans_sb->setMaximum(1000);
+ ztrans_sb->setMinimum(-1000);
+
+ xrot_slider->setMaximum(360);
+ xrot_slider->setMinimum(-360);
+ yrot_slider->setMaximum(360);
+ yrot_slider->setMinimum(-360);
+ zrot_slider->setMaximum(360);
+ zrot_slider->setMinimum(-360);
+
+ xrot_sb->setMaximum(360);
+ xrot_sb->setMinimum(-360);
+ yrot_sb->setMaximum(360);
+ yrot_sb->setMinimum(-360);
+ zrot_sb->setMaximum(360);
+ zrot_sb->setMinimum(-360);