X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvSlicer.h;h=9a750e14d69a6db41596d143e4d3ff30c33b9fae;hb=48549835a461e0fd831a1e2f43f0e70a3077c5ef;hp=0536bc1e7ef38995f20918af8d53d9b0c73b93be;hpb=f4836557301d6fafe12dd9f767f911796992f855;p=clitk.git diff --git a/vv/vvSlicer.h b/vv/vvSlicer.h index 0536bc1..9a750e1 100644 --- a/vv/vvSlicer.h +++ b/vv/vvSlicer.h @@ -80,6 +80,7 @@ public: vvImage::Pointer GetFusion() { return mFusion; } + void ShowFusionLegend(bool show) { showFusionLegend = show; } /**Get/Set an actor's visibility ("overlay, fusion, vf, contour...") Overlay index is the index of the overlay by type, eg. if there are @@ -98,11 +99,12 @@ public: 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); @@ -139,10 +141,13 @@ public: return mCursor; } + vtkTransform * GetSlicingTransform() { return mSlicingTransform; } + vtkTransform * GetConcatenatedTransform() { return mConcatenatedTransform; } + vtkTransform * GetConcatenatedFusionTransform() { return mConcatenatedFusionTransform; } + vtkTransform * GetConcatenatedOverlayTransform() { return mConcatenatedOverlayTransform; } + void SetCurrentPosition(double x, double y, double z, int t); - double* GetCurrentPosition() { - return mCurrent; - } + double* GetCurrentPosition(); void UpdateCursorPosition(); void SetCursorVisibility(bool s); @@ -153,7 +158,7 @@ public: void SetCornerAnnotationVisibility(bool s); bool GetCornerAnnotationVisibility(); - void GetExtremasAroundMousePointer(double & min, double & max); + void GetExtremasAroundMousePointer(double & min, double & max, vtkImageData *image, vtkTransform *transform); void UpdateLandmarks(); void ForceUpdateDisplayExtent(); @@ -168,6 +173,14 @@ public: virtual void SetColorWindow(double s); virtual void SetColorLevel(double s); + double GetOverlayColorWindow(); + double GetOverlayColorLevel(); + bool GetLinkOverlayWindowLevel() { return mLinkOverlayWindowLevel; } + + void SetOverlayColorWindow(double s); + void SetOverlayColorLevel(double s); + void SetLinkOverlayWindowLevel(bool b) { mLinkOverlayWindowLevel = b; } + /** * When it is enabled, beware of a call to GetExtent. * we must have setted mReducedExtent otherwhise random values @@ -197,11 +210,25 @@ protected: vvLandmarks* mLandmarks; + // __________ Image coordinates accounting for spacing and origin + // Λ Λ + // | | vvImage.GetTransform() + // | | + // GetConcatenatedTransform() | _|___ VV world coordinates (mm) (displayed in VV) mCurrentBeforeSlicingTransform + // | Λ + // | | GetSlicingTransform() + // | | + // ___|__|___ VTK world coordinates (mm) (never displayed) mCurrent + + vtkSmartPointer mSlicingTransform; vtkSmartPointer mImageReslice; + vtkSmartPointer mConcatenatedTransform; vtkSmartPointer mOverlayReslice; + vtkSmartPointer mConcatenatedOverlayTransform; vtkSmartPointer mOverlayMapper; vtkSmartPointer mOverlayActor; vtkSmartPointer mFusionReslice; + vtkSmartPointer mConcatenatedFusionTransform; vtkSmartPointer mFusionMapper; vtkSmartPointer mFusionActor; vtkSmartPointer ca; @@ -225,7 +252,10 @@ protected: std::vector mSurfaceCutActors; int mCurrentTSlice; + int mCurrentFusionTSlice; + int mCurrentOverlayTSlice; double mCurrent[3]; + double mCurrentBeforeSlicingTransform[3]; double mCursor[4]; int mSubSampling; int mScale; @@ -235,6 +265,8 @@ protected: bool mUseReducedExtent; int * mReducedExtent; int * mInitialExtent; + bool mLinkOverlayWindowLevel; + bool showFusionLegend; private: void UpdateOrientation();