]> Creatis software - bbtk.git/blobdiff - packages/wxvtk/src/bbwxvtkViewer2D.cxx
#3107 BBTK Bug New Normal - branch vtk7itk4 compilation with vtk7
[bbtk.git] / packages / wxvtk / src / bbwxvtkViewer2D.cxx
index 1a1d93f91c60667dc995c8bde1fa03f8fe718c17..0ab9c25b1bb5231c6a80a8ff6694e21bd7e51227 100644 (file)
@@ -1,18 +1,37 @@
+/*
+ # ---------------------------------------------------------------------
+ #
+ # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+ #                        pour la SantÈ)
+ # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+ # Previous Authors : Laurent Guigues, Jean-Pierre Roux
+ # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+ #
+ #  This software is governed by the CeCILL-B license under French law and
+ #  abiding by the rules of distribution of free software. You can  use,
+ #  modify and/ or redistribute the software under the terms of the CeCILL-B
+ #  license as circulated by CEA, CNRS and INRIA at the following URL
+ #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ #  or in the file LICENSE.txt.
+ #
+ #  As a counterpart to the access to the source code and  rights to copy,
+ #  modify and redistribute granted by the license, users are provided only
+ #  with a limited warranty  and the software's author,  the holder of the
+ #  economic rights,  and the successive licensors  have only  limited
+ #  liability.
+ #
+ #  The fact that you are presently reading this means that you have had
+ #  knowledge of the CeCILL-B license and that you accept its terms.
+ # ------------------------------------------------------------------------ */
+
+
 /*=========================================================================
                                                                                 
   Program:   bbtk
   Module:    $RCSfile: bbwxvtkViewer2D.cxx,v $
   Language:  C++
-  Date:      $Date: 2009/05/15 14:58:07 $
-  Version:   $Revision: 1.35 $
-                                                                                
-  Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
-  l'Image). All rights reserved. See Doc/License.txt or
-  http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details.
-                                                                                
-     This software is distributed WITHOUT ANY WARRANTY; without even
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-     PURPOSE.  See the above copyright notices for more information.
+  Date:      $Date: 2012/11/16 08:52:36 $
+  Version:   $Revision: 1.39 $
                                                                                 
 =========================================================================*/
 /**
@@ -33,7 +52,7 @@
 #include "vtkRenderer.h"
 #include <vtkInteractorStyleImage.h>
 #include <vtkCommand.h>
-
+#include <vtkImageActor.h>
 namespace bbwxvtk
 {
   //--------------------------------------------------------------------------
@@ -44,7 +63,7 @@ namespace bbwxvtk
     ~Viewer2DWidget();
     void UpdateView();
     vtkRenderer                *GetRenderer();
-    
+    vtkImageActor       *GetImageActor();
   private:
     bool                        mFirstTime;
     Viewer2D                    *mBox;
@@ -80,10 +99,16 @@ namespace bbwxvtk
     mDefaultImage->SetDimensions ( dim );
     mDefaultImage->SetSpacing(1,1,1);
     mDefaultImage->SetExtent(0,dim[0]-1,0,dim[1]-1,0,dim[2]-1);
-    mDefaultImage->SetWholeExtent(0,dim[0]-1,0,dim[1]-1,0,dim[2]-1);
 
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+    mDefaultImage->SetWholeExtent(0,dim[0]-1,0,dim[1]-1,0,dim[2]-1);
     mDefaultImage->SetScalarTypeToUnsignedChar();
-    mDefaultImage->AllocateScalars();    
+    mDefaultImage->AllocateScalars();   
+#else
+    mDefaultImage->AllocateScalars(VTK_UNSIGNED_CHAR,1);   
+#endif
     for (int i=0;i<dim[0];i++) 
       for (int j=0;j<dim[1];j++) 
         for (int k=0;k<dim[2];k++) 
@@ -176,7 +201,12 @@ namespace bbwxvtk
        if (backImageData != mBox->bbGetInputIn()) // Don't update if just Slice changed
          {
          backImageData = mBox->bbGetInputIn();
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
          backImageData->Update();
+#else
+       // ..
+#endif
          imageViewer->SetInput( backImageData );
          mUpdateCamera = true;
          }
@@ -226,16 +256,24 @@ namespace bbwxvtk
                      << std::endl;
         */
     }
-  
+
     //  std::cout << "OW = "<< mBox->bbGetWindow() << std::endl;
     //  std::cout << "CW = "<< mBox->bbGetContainingWindow() << std::endl;
     //  std::cout << "Sh = "<< mBox->bbIsShown() << std::endl;
+
+    bool interp = mBox->bbGetInputInterpolate();
+    if ( interp )
+       imageViewer->GetImageActor()->InterpolateOn();
+    else
+       imageViewer->GetImageActor()->InterpolateOff();
+       
     
     int orientation = mBox->bbGetInputOrientation();
     if (orientation<0 || orientation>2) {
        bbtkMessage("Output", 2, "Viewer2D : Orientation was not 0< <2 "<<std::endl);
        orientation=2; // Why not?      
     }
+
     // mBox->bbIsShown() is necessary to be sure that the wxWindow is already 
     // created and displayed. 
     // Else when slice != 0 we get an X Window System error with wxGTK
@@ -244,9 +282,15 @@ namespace bbwxvtk
        (mBox->bbIsShown()))
     {
                int z = mBox->bbGetInputSlice();
-               //      std::cout << "slice = "<<z<<std::endl;
                int ext[6];
+
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
                backImageData->GetWholeExtent(ext);
+#else
+               backImageData->GetExtent(ext);
+#endif
+
                /*
                std::cout << "ext = "<<ext[0]<<" - "<<ext[1]<<" ; "
                          <<ext[2]<<" - "<<ext[3]<<" ; "
@@ -305,6 +349,7 @@ namespace bbwxvtk
        void Viewer2D::bbUserSetDefaultValues()
        {
                bbSetInputIn(NULL);
+               bbSetInputInterpolate(true);  // JP
                bbSetInputSlice(0);
                bbSetOutputWidget(0);
                bbSetOutputRenderer(0);