X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvBinaryImageOverlayActor.cxx;h=1c18def90c2216c5b2d24c7ef3a0834e2f917513;hb=738abae55fb33a7c77843a9d84bc14d5439bff1a;hp=b5935c3692ea3a7c98afe69b14a7c5fba645bea5;hpb=c234e07e4ef90bb8b08c75ca4f1b3a76055e7859;p=clitk.git diff --git a/vv/vvBinaryImageOverlayActor.cxx b/vv/vvBinaryImageOverlayActor.cxx index b5935c3..1c18def 100644 --- a/vv/vvBinaryImageOverlayActor.cxx +++ b/vv/vvBinaryImageOverlayActor.cxx @@ -110,22 +110,48 @@ 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); + } + + mConcatenatedFusionTransform = vtkSmartPointer::New(); + mConcatenatedFusionTransform->Identity(); + if (!mImage->GetTransform().empty()){ + 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())