]> Creatis software - clitk.git/blobdiff - vv/vvSlicer.h
Problem with slot in previous commit. Corrected based on overlay example
[clitk.git] / vv / vvSlicer.h
index feb5f2dbfe55f1d65f7c06d579f6d52f510f41e0..3ccf8effcdb4e49206e577620255b4361ef2e0b5 100644 (file)
@@ -1,3 +1,20 @@
+/*=========================================================================
+  Program:   vv                     http://www.creatis.insa-lyon.fr/rio/vv
+
+  Authors belong to: 
+  - University of LYON              http://www.universite-lyon.fr/
+  - Léon Bérard cancer center       http://oncora1.lyon.fnclcc.fr
+  - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
+
+  This software is distributed WITHOUT ANY WARRANTY; without even
+  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+  PURPOSE.  See the copyright notices for more information.
+
+  It is distributed under dual licence
+
+  - BSD        See included LICENSE.txt file
+  - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+======================================================================-====*/
 #ifndef __vvSlicer_h
 #define __vvSlicer_h
 #include <iostream>
@@ -17,6 +34,7 @@ class vtkPolyDataMapper2D;
 class vtkProperty2D;
 class vtkClipPolyData;
 class vtkImageActor;
+class vvBlendImageActor;
 class vtkBox;
 class vtkCornerAnnotation;
 class vtkExtractVOI;
@@ -29,7 +47,8 @@ class vtkCursor3D;
 class vtkCutter;
 class vtkAssignAttribute;
 class vtkScalarBarActor;
-
+class vtkTransform;
+class vtkImageReslice;
 
 class vvSlicer: public vtkImageViewer2
 {
@@ -49,12 +68,12 @@ public:
     }
 
     vtkImageMapToWindowLevelColors* GetOverlayMapper(); 
-    vtkImageActor* GetOverlayActor() ;
+    vvBlendImageActor* GetOverlayActor() ;
     vtkImageMapToWindowLevelColors* GetFusionMapper() ;
     vtkImageActor* GetFusionActor() ;
     vtkActor* GetVFActor() ;
-    vtkCornerAnnotation* GetAnnotation() ;
-
+    vtkCornerAnnotation* GetAnnotation();
+    
     void SetFusion(vvImage::Pointer inputFusion);
     vvImage::Pointer GetFusion() {
         return mFusion;
@@ -95,6 +114,7 @@ public:
         return mSubSampling;
     }
     void SetVFScale(int scale);
+    void SetVFWidth(int width);
     int GetVFScale() {
         return mScale;
     }
@@ -143,6 +163,10 @@ public:
     void EnableReducedExtent(bool b);
     void SetReducedExtent(int * ext);
 
+    void ClipDisplayedExtent(int extent[6], int refExtent[6]);
+    int GetOrientation();
+    int * GetExtent();
+
 protected:
     vvSlicer();
     ~vvSlicer();
@@ -156,7 +180,7 @@ protected:
     vvLandmarks* mLandmarks;
 
     vtkSmartPointer<vtkImageMapToWindowLevelColors> mOverlayMapper;
-    vtkSmartPointer<vtkImageActor> mOverlayActor;
+    vtkSmartPointer<vvBlendImageActor> mOverlayActor;
     vtkSmartPointer<vtkImageMapToWindowLevelColors> mFusionMapper;
     vtkSmartPointer<vtkImageActor> mFusionActor;
     vtkSmartPointer<vtkCornerAnnotation> ca;
@@ -176,7 +200,6 @@ protected:
     vtkSmartPointer<vtkActor> mLandActor;
     vtkSmartPointer<vtkBox> mClipBox;
     vtkSmartPointer<vtkScalarBarActor> legend;
-
     std::vector<vvMeshActor*> mSurfaceCutActors;
 
     int mCurrentTSlice;
@@ -185,6 +208,7 @@ protected:
     int mSubSampling;
     int mScale;
     int mVFLog;
+    int mVFWidth;
     bool mUseReducedExtent;
     int * mReducedExtent;
     int * mInitialExtent;
@@ -195,7 +219,6 @@ private:
     void ComputeVFDisplayedExtent(int x1,int x2,int y1,int y2,int z1,int z2,int extent[6]);
     void ComputeOverlayDisplayedExtent(int x1,int x2,int y1,int y2,int z1,int z2,int overExtent[6]);
     void ComputeFusionDisplayedExtent(int x1,int x2,int y1,int y2,int z1,int z2,int overExtent[6]);
-    void ClipDisplayedExtent(int extent[6], int refExtent[6]);
     ///Sets the surfaces to be cut on the image slice: update the vtkCutter
     void SetContourSlice();