]> Creatis software - clitk.git/blobdiff - vv/vvSlicer.h
Merge branch 'master' of git.creatis.insa-lyon.fr:clitk
[clitk.git] / vv / vvSlicer.h
index a5156f28bc92e4f3c08e49db2c30b74c46d44ff9..0a0bcca86395deffd27d00230ffbc6e62eeaf2c1 100644 (file)
@@ -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
@@ -139,10 +140,11 @@ public:
     return mCursor;
   }
 
+  vtkTransform * GetSlicingTransform() { return mSlicingTransform; }
+  vtkTransform * GetConcatenatedTransform() { return mConcatenatedTransform; }
+
   void SetCurrentPosition(double x, double y, double z, int t);
-  double* GetCurrentPosition() {
-    return mCurrent;
-  }
+  double* GetCurrentPosition();
 
   void UpdateCursorPosition();
   void SetCursorVisibility(bool s);
@@ -153,7 +155,7 @@ public:
   void SetCornerAnnotationVisibility(bool s);
   bool GetCornerAnnotationVisibility();
 
-  void GetExtremasAroundMousePointer(double & min, double & max, vtkImageData *image);
+  void GetExtremasAroundMousePointer(double & min, double & max, vtkImageData *image, vtkTransform *transform);
 
   void UpdateLandmarks();
   void ForceUpdateDisplayExtent();
@@ -205,7 +207,19 @@ protected:
 
   vvLandmarks* mLandmarks;
 
+  //                         __________ Image coordinates accounting for spacing and origin
+  //                            Λ  Λ
+  //                            |  | vvImage.GetTransform()
+  //                            |  |
+  // GetConcatenatedTransform() | _|___ VV world coordinates (mm) (displayed in VV)
+  //                            |  Λ
+  //                            |  | GetSlicingTransform()
+  //                            |  |
+  //                         ___|__|___ VTK world coordinates (mm) (never displayed)
+
   vtkSmartPointer<vtkImageReslice> mImageReslice;
+  vtkSmartPointer<vtkTransform> mSlicingTransform;
+  vtkSmartPointer<vtkTransform> mConcatenatedTransform;
   vtkSmartPointer<vtkImageReslice> mOverlayReslice;
   vtkSmartPointer<vtkImageMapToWindowLevelColors> mOverlayMapper;
   vtkSmartPointer<vvBlendImageActor> mOverlayActor;
@@ -234,6 +248,7 @@ protected:
 
   int mCurrentTSlice;
   double mCurrent[3];
+  double mCurrentBeforeSlicingTransform[3];
   double mCursor[4];
   int mSubSampling;
   int mScale;
@@ -244,6 +259,7 @@ protected:
   int * mReducedExtent;
   int * mInitialExtent;
   bool mLinkOverlayWindowLevel;
+  bool showFusionLegend;
 
 private:
   void UpdateOrientation();