]> Creatis software - clitk.git/blobdiff - vv/vvSlicer.h
Account for reslicing transform in overlay and fusion (contours and vf
[clitk.git] / vv / vvSlicer.h
index 44e1a2cdde7ef23c7baa53c68651fadd497db516..71f7ece7e4ecbe22e75fab3406a143d11d8ad5b6 100644 (file)
@@ -99,6 +99,8 @@ public:
   void SetSliceOrientation(int orientation);
   void AdjustResliceToSliceOrientation(vtkImageReslice *reslice);
   int GetTSlice();
+  int GetFusionTSlice();
+  int GetOverlayTSlice();
   ///Reimplemented from vtkImageViewer2 to add polydata support
   void SetSlice(int s);
   int GetTMax() {
@@ -142,6 +144,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,13 +211,25 @@ protected:
 
   vvLandmarks* mLandmarks;
 
-  vtkSmartPointer<vtkImageReslice> mImageReslice;
+  //                         __________ 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<vtkTransform> mSlicingTransform;
+  vtkSmartPointer<vtkImageReslice> mImageReslice;
   vtkSmartPointer<vtkTransform> mConcatenatedTransform;
   vtkSmartPointer<vtkImageReslice> mOverlayReslice;
+  vtkSmartPointer<vtkTransform> mConcatenatedOverlayTransform;
   vtkSmartPointer<vtkImageMapToWindowLevelColors> mOverlayMapper;
   vtkSmartPointer<vvBlendImageActor> mOverlayActor;
   vtkSmartPointer<vtkImageReslice> mFusionReslice;
+  vtkSmartPointer<vtkTransform> mConcatenatedFusionTransform;
   vtkSmartPointer<vtkImageMapToColors> mFusionMapper;
   vtkSmartPointer<vtkImageActor> mFusionActor;
   vtkSmartPointer<vtkCornerAnnotation> ca;
@@ -237,6 +253,8 @@ protected:
   std::vector<vvMeshActor*> mSurfaceCutActors;
 
   int mCurrentTSlice;
+  int mCurrentFusionTSlice;
+  int mCurrentOverlayTSlice;
   double mCurrent[3];
   double mCurrentBeforeSlicingTransform[3];
   double mCursor[4];