]> Creatis software - clitk.git/blobdiff - vv/vvSlicer.h
Fixed linked navigation with mouse wheel
[clitk.git] / vv / vvSlicer.h
index c2efcd805a0ca4c964c96df3e200bd96b81931ca..3ccf8effcdb4e49206e577620255b4361ef2e0b5 100644 (file)
@@ -1,29 +1,22 @@
 /*=========================================================================
+  Program:   vv                     http://www.creatis.insa-lyon.fr/rio/vv
 
- Program:   vv
- Language:  C++
- Author :   Pierre Seroul (pierre.seroul@gmail.com)
+  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
 
-Copyright (C) 2008
-Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
-CREATIS-LRMN 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.
 
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, version 3 of the License.
+  It is distributed under dual licence
 
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-=========================================================================*/
+  - 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>
 #include <vector>
 
@@ -41,6 +34,7 @@ class vtkPolyDataMapper2D;
 class vtkProperty2D;
 class vtkClipPolyData;
 class vtkImageActor;
+class vvBlendImageActor;
 class vtkBox;
 class vtkCornerAnnotation;
 class vtkExtractVOI;
@@ -53,7 +47,8 @@ class vtkCursor3D;
 class vtkCutter;
 class vtkAssignAttribute;
 class vtkScalarBarActor;
-
+class vtkTransform;
+class vtkImageReslice;
 
 class vvSlicer: public vtkImageViewer2
 {
@@ -73,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;
@@ -119,6 +114,7 @@ public:
         return mSubSampling;
     }
     void SetVFScale(int scale);
+    void SetVFWidth(int width);
     int GetVFScale() {
         return mScale;
     }
@@ -167,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();
@@ -180,7 +180,7 @@ protected:
     vvLandmarks* mLandmarks;
 
     vtkSmartPointer<vtkImageMapToWindowLevelColors> mOverlayMapper;
-    vtkSmartPointer<vtkImageActor> mOverlayActor;
+    vtkSmartPointer<vvBlendImageActor> mOverlayActor;
     vtkSmartPointer<vtkImageMapToWindowLevelColors> mFusionMapper;
     vtkSmartPointer<vtkImageActor> mFusionActor;
     vtkSmartPointer<vtkCornerAnnotation> ca;
@@ -200,7 +200,6 @@ protected:
     vtkSmartPointer<vtkActor> mLandActor;
     vtkSmartPointer<vtkBox> mClipBox;
     vtkSmartPointer<vtkScalarBarActor> legend;
-
     std::vector<vvMeshActor*> mSurfaceCutActors;
 
     int mCurrentTSlice;
@@ -209,6 +208,7 @@ protected:
     int mSubSampling;
     int mScale;
     int mVFLog;
+    int mVFWidth;
     bool mUseReducedExtent;
     int * mReducedExtent;
     int * mInitialExtent;
@@ -219,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();