X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvSlicer.cxx;h=1ace5c2ee89bf3cfa6131f5c7a13263cc7fe0b52;hb=1548a47199250d3819961adb37becac65bc72f3c;hp=924eb1d8161d096452e7849df145da07c17fa1d9;hpb=b7c0103ffcb88cd6dc1458fec00fc2d7077e48ea;p=clitk.git diff --git a/vv/vvSlicer.cxx b/vv/vvSlicer.cxx index 924eb1d..1ace5c2 100644 --- a/vv/vvSlicer.cxx +++ b/vv/vvSlicer.cxx @@ -21,7 +21,6 @@ #include "vvSlicerManagerCommand.h" #include "vvGlyphSource.h" #include "vvGlyph2D.h" -#include "vvImageMapToWLColors.h" #include #include @@ -138,9 +137,6 @@ vvSlicer::vvSlicer() this->GetRenderer()->AddActor(legend); showFusionLegend = false; - this->WindowLevel->Delete(); - this->WindowLevel = vvImageMapToWLColors::New(); - this->InstallPipeline(); mLinkOverlayWindowLevel = true; @@ -479,7 +475,7 @@ bool vvSlicer::GetActorVisibility(const std::string& actor_type, int overlay_ind else if (actor_type == "overlay") { vis = this->mOverlayActor->GetVisibility(); } - else if (actor_type == "fusion") { + else if ( (actor_type == "fusion") || (actor_type == "fusionSequence") ){ vis = this->mFusionActor->GetVisibility(); } else if (actor_type == "contour") @@ -501,7 +497,7 @@ void vvSlicer::SetActorVisibility(const std::string& actor_type, int overlay_ind else if (actor_type == "overlay") { this->mOverlayActor->SetVisibility(vis); } - else if (actor_type == "fusion") { + else if ( (actor_type == "fusion") || (actor_type == "fusionSequence") ){ this->mFusionActor->SetVisibility(vis); } else if (actor_type == "contour") @@ -645,7 +641,7 @@ void vvSlicer::RemoveActor(const std::string& actor_type, int overlay_index) mOverlayActor = NULL; mOverlayMapper = NULL; } - if (actor_type == "fusion") { + if ( (actor_type == "fusion") || (actor_type == "fusionSequence") ) { Renderer->RemoveActor(mFusionActor); mFusion = NULL; mFusionActor = NULL; @@ -730,6 +726,7 @@ void vvSlicer::SetTSlice(int t) if (mVF->GetVTKImages().size() > (unsigned int)mCurrentTSlice) mVOIFilter->SetInput(mVF->GetVTKImages()[mCurrentTSlice]); } +//also temporarilly disabled... if (mOverlay && mOverlayActor->GetVisibility()) { if (mOverlay->GetVTKImages().size() > (unsigned int)t) { mCurrentOverlayTSlice = t; @@ -741,6 +738,32 @@ void vvSlicer::SetTSlice(int t) mConcatenatedOverlayTransform->Concatenate(mSlicingTransform); } } +//temporarilly disabled for testing fusionSequence + //if (mFusion && mFusionActor->GetVisibility()) { + // if (mFusion->GetVTKImages().size() > (unsigned int)t) { + // mCurrentFusionTSlice = t; + // mFusionReslice->SetInput( mFusion->GetVTKImages()[mCurrentFusionTSlice]); + + // // Update fusion transform + // mConcatenatedFusionTransform->Identity(); + // mConcatenatedFusionTransform->Concatenate(mFusion->GetTransform()[mCurrentFusionTSlice]); + // mConcatenatedFusionTransform->Concatenate(mSlicingTransform); + // } + //} + if (mSurfaceCutActors.size() > 0) + for (std::vector::iterator i=mSurfaceCutActors.begin(); + i!=mSurfaceCutActors.end(); i++) + (*i)->SetTimeSlice(mCurrentTSlice); + UpdateDisplayExtent(); +} +//------------------------------------------------------------------------------ + + +//------------------------------------------------------------------------------ +void vvSlicer::SetFusionSequenceTSlice(int t) +{ +//QMessageBox::information(NULL, "vvSlicer::SetFusionSequenceTSlice", "ENTER, t = " + QString::number(t) + ", currentFusionTSlice = " + QString::number(mCurrentFusionTSlice)); + //fusionSequence data is stored behind standard fusion data... if (mFusion && mFusionActor->GetVisibility()) { if (mFusion->GetVTKImages().size() > (unsigned int)t) { mCurrentFusionTSlice = t; @@ -752,10 +775,7 @@ void vvSlicer::SetTSlice(int t) mConcatenatedFusionTransform->Concatenate(mSlicingTransform); } } - if (mSurfaceCutActors.size() > 0) - for (std::vector::iterator i=mSurfaceCutActors.begin(); - i!=mSurfaceCutActors.end(); i++) - (*i)->SetTimeSlice(mCurrentTSlice); + UpdateDisplayExtent(); } //------------------------------------------------------------------------------ @@ -774,8 +794,9 @@ int vvSlicer::GetMaxCurrentTSlice() int t = mCurrentTSlice; if(mOverlay) t = std::max(t, mCurrentOverlayTSlice); - if(mFusion) - t = std::max(t, mCurrentFusionTSlice); + //TODO temporarily desactivated... + //if(mFusion) + // t = std::max(t, mCurrentFusionTSlice); return t; } //------------------------------------------------------------------------------ @@ -913,15 +934,15 @@ void vvSlicer::UpdateDisplayExtent() return; } input->UpdateInformation(); + this->SetSlice( this->GetSlice() ); //SR: make sure the update let the slice in extents // Local copy of extent int w_ext[6]; int* ext = GetExtent(); copyExtent(ext, w_ext); // Set slice value - int s = this->Slice > ext[this->SliceOrientation*2+1] ? ext[this->SliceOrientation*2 + 1] : this->Slice; - w_ext[ this->SliceOrientation*2 ] = s; - w_ext[ this->SliceOrientation*2+1 ] = s; + w_ext[ this->SliceOrientation*2 ] = this->Slice; + w_ext[ this->SliceOrientation*2+1 ] = this->Slice; // Image actor this->ImageActor->SetDisplayExtent(w_ext); @@ -1012,7 +1033,6 @@ void vvSlicer::UpdateDisplayExtent() } } } - } //----------------------------------------------------------------------------