X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvSlicer.h;h=0bffd1f36abcc46f92d5b43a3c51aab519685e59;hb=9c5f0e4d3d6b33e09d0413439ed7a867e3d85faa;hp=71f7ece7e4ecbe22e75fab3406a143d11d8ad5b6;hpb=ba72deb1cf11f32261e565d3103afd84571a0cf2;p=clitk.git diff --git a/vv/vvSlicer.h b/vv/vvSlicer.h index 71f7ece..0bffd1f 100644 --- a/vv/vvSlicer.h +++ b/vv/vvSlicer.h @@ -20,15 +20,20 @@ #include #include +#include //TODO delete +#include + #include "vvLandmarks.h" #include "vvImage.h" #include "vvMesh.h" #include "vvMeshActor.h" +#include "vvClipPolyData.h" #include #include #include #include +#include class vtkActor; class vtkActor2D; @@ -76,7 +81,7 @@ public: vtkActor* GetVFActor() ; vtkCornerAnnotation* GetAnnotation(); - void SetFusion(vvImage::Pointer inputFusion); + void SetFusion(vvImage::Pointer inputFusion, int fusionSequenceCode = -1); vvImage::Pointer GetFusion() { return mFusion; } @@ -95,17 +100,19 @@ public: } void SetLandmarks(vvLandmarks* landmarks); - void SetTSlice(int t); + void SetTSlice(int t, bool updateLinkedImages = true); + + void SetFusionSequenceTSlice(int t); + void SetSliceOrientation(int orientation); void AdjustResliceToSliceOrientation(vtkImageReslice *reslice); int GetTSlice(); int GetFusionTSlice(); int GetOverlayTSlice(); + int GetMaxCurrentTSlice(); ///Reimplemented from vtkImageViewer2 to add polydata support void SetSlice(int s); - int GetTMax() { - return (unsigned int)mImage->GetVTKImages().size() - 1; - } + int GetTMax(); void SetOpacity(double s); void SetRenderWindow(int orientation, vtkRenderWindow * rw); @@ -190,7 +197,7 @@ public: void EnableReducedExtent(bool b); void SetReducedExtent(int * ext); - void ClipDisplayedExtent(int extent[6], int refExtent[6]); + bool ClipDisplayedExtent(int extent[6], int refExtent[6]); int GetOrientation(); int * GetExtent(); @@ -199,6 +206,8 @@ public: } void SetVFColor(double r, double g, double b); + //necessary to flag the secondary sequence + void SetFusionSequenceCode(int code) {mFusionSequenceCode=code;} protected: vvSlicer(); ~vvSlicer(); @@ -211,6 +220,8 @@ protected: vvLandmarks* mLandmarks; + int mFusionSequenceCode; //-1: not involved in a fusion sequence, 0: main sequence (CT), 1: secondary sequence (US) + // __________ Image coordinates accounting for spacing and origin // Λ Λ // | | vvImage.GetTransform() @@ -245,9 +256,10 @@ protected: vtkSmartPointer mVFActor; vtkSmartPointer mLandGlyph; vtkSmartPointer mCross; - vtkSmartPointer mLandClipper; + vtkSmartPointer mLandClipper; vtkSmartPointer mLandMapper; vtkSmartPointer mLandActor; + std::vector > mLandLabelActors; vtkSmartPointer mClipBox; vtkSmartPointer legend; std::vector mSurfaceCutActors; @@ -277,6 +289,14 @@ private: ///Sets the surfaces to be cut on the image slice: update the vtkCutter void SetContourSlice(); - + // Visibility of the different elements that can be set from outside the object. + // Note that vvSlicer also check if the element is to be displayed according to + // the extent of the displayed object. + // These members have been introduced to fix Bug #1883. + bool mImageVisibility; + bool mOverlayVisibility; + bool mFusionVisibility; + bool mVFVisibility; + bool mFirstSetSliceOrientation; }; #endif