X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvBinaryImageOverlayActor.cxx;h=061bdb8ff6387d1a73c9253138970def5f71db31;hb=08293e0d20ffba488a0808c66ffca457552f5d8e;hp=b5935c3692ea3a7c98afe69b14a7c5fba645bea5;hpb=c45f077f35553cdc72396626ac601080093d273b;p=clitk.git diff --git a/vv/vvBinaryImageOverlayActor.cxx b/vv/vvBinaryImageOverlayActor.cxx index b5935c3..061bdb8 100644 --- a/vv/vvBinaryImageOverlayActor.cxx +++ b/vv/vvBinaryImageOverlayActor.cxx @@ -110,22 +110,46 @@ void vvBinaryImageOverlayActor::Initialize(bool IsVisible) // Create an actor for each time slice for (unsigned int numImage = 0; numImage < mSlicer->GetImage()->GetVTKImages().size(); numImage++) { // how many intensity ? - vtkSmartPointer mOverlayMapper = vtkSmartPointer::New(); - if (mImage->IsTimeSequence()) - { - #if VTK_MAJOR_VERSION <= 5 - mOverlayMapper->SetInput(mImage->GetVTKImages()[numImage]); + + + + if (!mFusionReslice) { + mFusionReslice = vtkSmartPointer::New(); + mFusionReslice->SetInterpolationModeToLinear(); + mFusionReslice->AutoCropOutputOn(); + mFusionReslice->SetBackgroundColor(-1000,-1000,-1000,1); + } + + vtkSmartPointer mConcatenatedFusionTransform = vtkSmartPointer::New(); + mConcatenatedFusionTransform->Identity(); + mConcatenatedFusionTransform->Concatenate(mImage->GetTransform()[0]); + mConcatenatedFusionTransform->Concatenate(mSlicer->GetSlicingTransform()); + mFusionReslice->SetResliceAxes(mConcatenatedFusionTransform->GetMatrix()); + if (mImage->IsTimeSequence()) { +#if VTK_MAJOR_VERSION <= 5 + mFusionReslice->SetInput(0, mImage->GetVTKImages()[numImage]); + mFusionReslice->UpdateInformation(); #else - mOverlayMapper->SetInputData(mImage->GetVTKImages()[numImage]); + mFusionReslice->SetInputData(0, mImage->GetVTKImages()[numImage]); #endif - } - else { + } else { #if VTK_MAJOR_VERSION <= 5 - mOverlayMapper->SetInput(mImage->GetVTKImages()[0]); + mFusionReslice->SetInput(0, mImage->GetVTKImages()[0]); + mFusionReslice->UpdateInformation(); #else - mOverlayMapper->SetInputData(mImage->GetVTKImages()[0]); + mFusionReslice->SetInputData(0, mImage->GetVTKImages()[0]); #endif } + mFusionReslice->Update(); + + + + vtkSmartPointer mOverlayMapper = vtkSmartPointer::New(); +#if VTK_MAJOR_VERSION <= 5 + mOverlayMapper->SetInput(mFusionReslice->GetOutput()); +#else + mOverlayMapper->SetInputConnection(mFusionReslice->GetOutputPort(0)); +#endif double range[2]; if (mImage->IsTimeSequence())