+// UpdateTextEditor(mCurrentSlicerManager->GetImage()->GetTransform()->GetMatrix(),QString("Rz:")+zrot_sb->text());
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvToolRigidReg::SaveFile()
+{
+ QString s = QFileDialog::getSaveFileName(this, tr("Save File"),
+ "/home/bharath/clitk3_27Apr/clitk3/build/bin/text.txt",
+ tr("Text (*.txt *.doc *.rtf)"));
+ QFile file(s);
+ if (file.open(QFile::WriteOnly | QFile::Truncate)) {
+ QTextStream out(&file);
+ out << textEdit->toPlainText() ;
+ }
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvToolRigidReg::ReadFile()
+{
+ QString parameters=QString("Tx: Ty: Tz:");
+ vtkSmartPointer<vtkTransform> transform = mCurrentSlicerManager->GetImage()->GetTransform();
+
+
+ QString s = QFileDialog::getOpenFileName(
+ this,
+ "Choose a file",
+ "/home/bharath/clitk3_27Apr/clitk3/build/bin/",
+ "Text (*.txt *.rtf *.doc)");
+ QFile file(s);
+ ifstream readfile;
+ std::string x;
+ std::vector<QString> Qstr;
+
+ readfile.open("text.txt");
+ if (readfile.is_open())
+ {
+ while (!readfile.eof())
+ {
+ readfile >> x;
+ Qstr.push_back(QString(x.c_str()));
+ }
+ readfile.close();
+ }
+ else cout << "Unable to open file";
+
+ //Obtain the Rotation Center
+ Xval->setText(Qstr.at(2));
+ Yval->setText(Qstr.at(3));
+ Zval->setText(Qstr.at(4));
+
+// InitializeSliders();
+ double * orientations=new double[4];
+ double * translations=new double[3];
+ transform->PostMultiply();
+ //Works currently wit the ROtation order Y Z X
+ transform->GetPosition(translations);
+ transform->GetOrientation(orientations);
+ /* xtrans_slider->setValue(Qstr.at(10).toDouble());
+ UpdateXtranslider();
+ ytrans_slider->setValue(Qstr.at(14).toDouble());
+ UpdateYtranslider();
+ ztrans_slider->setValue(Qstr.at(18).toDouble());
+ UpdateZtranslider();
+*/
+ DD(translations[0]);
+ DD(translations[1]);
+ DD(translations[2]);
+ DD(orientations[0]);
+ DD(orientations[1]);
+ DD(orientations[2]);
+ DD(orientations[3]);
+ DD(*transform->GetMatrix());
+ //Obtain the Transformation Matrix
+ /*QString str;
+ str=QString(value.at(10).c_str());
+ DD(str.toStdString());
+ */
+// DD(value[6]);
+ // DD(value[10]);
+ //put the streamed values in matrix array
+ /* for(int i=0;i<4;i++)
+ {
+ for(int j=0;j<4;j++)
+ {
+ matrix->Element[i][j]=value[i*4+j];
+ }
+ }
+ SetTransform( matrix);*/
+
+ /*xtrans_slider->setValue(value.at(10));
+ ytrans_slider->setValue(value.at(14));
+ ztrans_slider->setValue(value.at(18));
+ UpdateXtranslider();
+ UpdateYtranslider();
+ UpdateZtranslider();*/
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvToolRigidReg::ResetTransform()
+{
+ vtkMatrix4x4 *matrix = vtkMatrix4x4::New();
+ matrix->Identity();
+
+ SetRotationCenter();
+ SetSliderRanges();
+ SetTransform(matrix);
+ mOrder.clear();
+ mOrder=QString("Rotation Order: ");
+ UpdateTextEditor(matrix,mOrder);
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvToolRigidReg::SetRotationCenter()
+{
+ //default image rotation center is the center of the image
+ QString xcord,ycord,zcord;
+ std::vector<double> imageorigin;
+ imageorigin=mCurrentSlicerManager->GetImage()->GetOrigin();
+
+ xcord=xcord.setNum(imageorigin[0]+mImageSize[0]*mCurrentSlicerManager->GetImage()->GetSpacing()[0]/2, 'g', 3);
+ ycord=ycord.setNum(imageorigin[1]+mImageSize[1]*mCurrentSlicerManager->GetImage()->GetSpacing()[1]/2, 'g', 3);
+ zcord=zcord.setNum(imageorigin[2]+mImageSize[2]*mCurrentSlicerManager->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);