X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvToolCropImage.cxx;h=736a7d696fc04549e4b24d0b0f988a457620cbbb;hb=93f793e07c285d87a02d72864cf11c13adf4a304;hp=d191f04c63c10a97ee25ac69eae4a5d74af8a594;hpb=7a4f96cb761fcb660ead67906c19d4b74350931d;p=clitk.git diff --git a/vv/vvToolCropImage.cxx b/vv/vvToolCropImage.cxx index d191f04..736a7d6 100644 --- a/vv/vvToolCropImage.cxx +++ b/vv/vvToolCropImage.cxx @@ -102,7 +102,16 @@ void vvToolCropImage::closeEvent(QCloseEvent *event) for(int i=0; i<6; i++){ mReducedExtent[i] = mInitialExtent[i]; } + for(int i=0; iGetNumberOfSlicers(); i++) + mCurrentSlicerManager->GetSlicer(i)->EnableReducedExtent(false); UpdateExtent(); + + mCurrentSlicerManager->GetImage()->GetTransform()[0]->SetMatrix(mConcatenedTransform); + for (int i=0; iGetNumberOfSlicers(); i++) { + mCurrentSlicerManager->GetSlicer(i)->ResetCamera(); + mCurrentSlicerManager->GetSlicer(i)->Render(); + mCurrentSlicerManager->UpdateLinkedNavigation( mCurrentSlicerManager->GetSlicer(i) ); + } } vvToolWidgetBase::closeEvent(event); } @@ -120,7 +129,10 @@ bool vvToolCropImage::close() //------------------------------------------------------------------------------ void vvToolCropImage::reject() { - for(int i=0; iGetNumberOfSlicers(); i++) + mCurrentSlicerManager->GetSlicer(i)->EnableReducedExtent(false); UpdateExtent(); return vvToolWidgetBase::reject(); } @@ -157,6 +169,18 @@ void vvToolCropImage::UpdateExtent() //------------------------------------------------------------------------------ void vvToolCropImage::InputIsSelected(vvSlicerManager * slicer) { + //Save the current transformation + mConcatenedTransform = vtkSmartPointer::New(); + mConcatenedTransform->DeepCopy(slicer->GetSlicer(0)->GetConcatenatedTransform()->GetMatrix()); + vtkSmartPointer matrix = vtkSmartPointer::New(); + matrix->Identity(); + mCurrentSlicerManager->GetImage()->GetTransform()[0]->SetMatrix(matrix); + for (int i=0; iGetNumberOfSlicers(); i++) { + mCurrentSlicerManager->GetSlicer(i)->ResetCamera(); + mCurrentSlicerManager->GetSlicer(i)->Render(); + mCurrentSlicerManager->UpdateLinkedNavigation( mCurrentSlicerManager->GetSlicer(i) ); + } + // Change interface according to number of dimension mExtentSize = 2*slicer->GetDimension(); if (slicer->GetDimension()<4) { @@ -290,6 +314,8 @@ void vvToolCropImage::apply() // Retrieve result and display it vvImage::Pointer output = filter->GetOutputVVImage(); + output->GetTransform()[0]->SetMatrix(mConcatenedTransform); + AddImage(output,croppedImageName.str()); // End