X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvSlicer.h;h=7cb4036d97a5a9bcd08b557d803c9edb9017b82a;hb=9ac2232043d7a08735edf00572ccb6565919fd3d;hp=0a0bcca86395deffd27d00230ffbc6e62eeaf2c1;hpb=dd6976090ab45c4ac8e483355851e4d35c828259;p=clitk.git diff --git a/vv/vvSlicer.h b/vv/vvSlicer.h index 0a0bcca..7cb4036 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,15 +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); @@ -142,6 +151,8 @@ public: 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(); @@ -207,23 +218,27 @@ 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() // | | - // GetConcatenatedTransform() | _|___ VV world coordinates (mm) (displayed in VV) + // GetConcatenatedTransform() | _|___ VV world coordinates (mm) (displayed in VV) mCurrentBeforeSlicingTransform // | Λ // | | GetSlicingTransform() // | | - // ___|__|___ VTK world coordinates (mm) (never displayed) + // ___|__|___ VTK world coordinates (mm) (never displayed) mCurrent - vtkSmartPointer mImageReslice; vtkSmartPointer mSlicingTransform; + vtkSmartPointer mImageReslice; vtkSmartPointer mConcatenatedTransform; vtkSmartPointer mOverlayReslice; + vtkSmartPointer mConcatenatedOverlayTransform; vtkSmartPointer mOverlayMapper; vtkSmartPointer mOverlayActor; vtkSmartPointer mFusionReslice; + vtkSmartPointer mConcatenatedFusionTransform; vtkSmartPointer mFusionMapper; vtkSmartPointer mFusionActor; vtkSmartPointer ca; @@ -239,14 +254,17 @@ 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; int mCurrentTSlice; + int mCurrentFusionTSlice; + int mCurrentOverlayTSlice; double mCurrent[3]; double mCurrentBeforeSlicingTransform[3]; double mCursor[4];