- int diff=0;
- diff=ytrans_slider->value()-ytrans_sb->value();
- this->SetTransform(0, diff, 0, 0, 0, 0);
- ytrans_sb->setValue(ytrans_slider->value());
-// UpdateTextEditor(mCurrentSlicerManager->GetImage()->GetTransform()->GetMatrix(),QString("Ty:")+ytrans_sb->text());
-}
-//------------------------------------------------------------------------------
-
-//------------------------------------------------------------------------------
-void vvToolRigidReg::UpdateZtransb()
-{
-
- int diff=0;
- diff=ztrans_sb->value()-ztrans_slider->value();
- this->SetTransform(0, 0, diff, 0, 0, 0);
- ztrans_slider->setValue(ztrans_sb->value());
- // UpdateTextEditor(mCurrentSlicerManager->GetImage()->GetTransform()->GetMatrix(),QString("Tz:")+ztrans_sb->text());
-}
-
-//------------------------------------------------------------------------------
-
-//------------------------------------------------------------------------------
-void vvToolRigidReg::UpdateZtranslider()
-{
- int diff=0;
- diff=ztrans_slider->value()-ztrans_sb->value();
- this->SetTransform(0, 0, diff, 0, 0, 0);
- ztrans_sb->setValue(ztrans_slider->value());
-// UpdateTextEditor(mCurrentSlicerManager->GetImage()->GetTransform()->GetMatrix(),QString("Tz:")+ztrans_sb->text());
-}
-//------------------------------------------------------------------------------
-
-//------------------------------------------------------------------------------
-void vvToolRigidReg::UpdateXrotsb()
-{
-
- int diff=0;
- diff=xrot_sb->value()-xrot_slider->value();
- this->SetTransform(0, 0, 0, diff, 0, 0);
- xrot_slider->setValue(xrot_sb->value());
- // UpdateTextEditor(mCurrentSlicerManager->GetImage()->GetTransform()->GetMatrix(),QString("Rx:")+xrot_sb->text());
-}
-
-//------------------------------------------------------------------------------
-
-//------------------------------------------------------------------------------
-void vvToolRigidReg::UpdateXrotslider()
-{
- int diff=0;
- diff=xrot_slider->value()-xrot_sb->value();
- this->SetTransform(0, 0, 0, diff, 0, 0);
- xrot_sb->setValue(xrot_slider->value());
- // UpdateTextEditor(mCurrentSlicerManager->GetImage()->GetTransform()->GetMatrix(),QString("Rx:")+xrot_sb->text());
-}
-//------------------------------------------------------------------------------
-
-//------------------------------------------------------------------------------
-void vvToolRigidReg::UpdateYrotsb()
-{
-
- int diff=0;
- diff=yrot_sb->value()-yrot_slider->value();
- this->SetTransform(0, 0, 0, 0, diff, 0);
- yrot_slider->setValue(yrot_sb->value());
- // UpdateTextEditor(mCurrentSlicerManager->GetImage()->GetTransform()->GetMatrix(),QString("Ry:")+yrot_sb->text());
-}
-
-//------------------------------------------------------------------------------
-
-//------------------------------------------------------------------------------
-void vvToolRigidReg::UpdateYrotslider()
-{
- int diff=0;
- diff=yrot_slider->value()-yrot_sb->value();
- this->SetTransform(0, 0, 0, 0, diff, 0);
- yrot_sb->setValue(yrot_slider->value());
-// UpdateTextEditor(mCurrentSlicerManager->GetImage()->GetTransform()->GetMatrix(),QString("Ry:")+yrot_sb->text());
+ vtkSmartPointer<vtkTransform> transform_final=vtkSmartPointer<vtkTransform>::New();
+ transform_final->SetMatrix(mInitialMatrix);
+ transform_final->PostMultiply();
+ //Rotations
+ double x=0, y=0 ,z=0;
+ x= Xval->text().toDouble();
+ y= Yval->text().toDouble();
+ z= Zval->text().toDouble();
+ transform_final->Translate(-x,-y,-z);
+ if(slider_enabled){
+ transform_final->RotateY(yrot_slider->value());
+ transform_final->RotateX(xrot_slider->value());
+ transform_final->RotateZ(zrot_slider->value());
+ }
+ else{
+ transform_final->RotateY(yrot_sb->value());
+ transform_final->RotateX(xrot_sb->value());
+ transform_final->RotateZ(zrot_sb->value());
+ }
+ transform_final->Translate(x,y,z);
+ transform_final->PreMultiply();
+ if(slider_enabled){
+ transform_final->Translate(xtrans_slider->value()*mInput1->GetImage()->GetSpacing()[0],0,0);
+ transform_final->Translate(0,ytrans_slider->value()*mInput1->GetImage()->GetSpacing()[1],0);
+ transform_final->Translate(0,0,ztrans_slider->value()*mInput1->GetImage()->GetSpacing()[2]);
+ }
+ else{
+ transform_final->Translate(xtrans_sb->value(),0,0);
+ transform_final->Translate(0,ytrans_sb->value(),0);
+ transform_final->Translate(0,0,ztrans_sb->value());
+ }
+ SetTransform(transform_final->GetMatrix());
+ UpdateTextEditor(transform_final->GetMatrix(),textEdit);