]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx
#3109 creaMaracasVisu Bug New Normal - branch vtk7itk4 compilation with vtk7
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxVtkMPR2DView.cxx
index b9bc3ac4551796029d358a8e0ad36b3156f69ecf..87b4fa3d909c507d49fb273a68eb6e5db4f79b17 100644 (file)
@@ -28,6 +28,8 @@
 #include "vtkInteractorStyleBaseView.h"
 
 #include "vtkCellArray.h"
+#include "vtkImageActor.h"
+
 #ifdef WIN32
 #include <mathdefs.h>
 using namespace gtm;
@@ -54,14 +56,14 @@ wxVtkMPR2DView::wxVtkMPR2DView( wxWindow *parent, int direction)
 //-------------------------------------------------------------------
 wxVtkMPR2DView::~wxVtkMPR2DView()
 {
-       if (_ptsA!=NULL)            { _ptsA                 -> Delete(); }
-       if (_lineAActor!=NULL)  { _lineAActor   -> Delete(); }
-       if (_lineAMapper!=NULL) { _lineAMapper  -> Delete(); }
-       if (_pdA!=NULL)             { _pdA                  -> Delete(); }
-       if (_ptsB!=NULL)            { _ptsB                 -> Delete(); }
-       if (_lineBActor!=NULL)  { _lineBActor   -> Delete(); }
-       if (_lineBMapper!=NULL) { _lineBMapper  -> Delete(); }
-       if (_pdB!=NULL)             { _pdB                  -> Delete(); }
+       if (_ptsA!=NULL)            { _ptsA->Delete();                  }
+       if (_lineAActor!=NULL)  { _lineAActor->Delete();        }
+       if (_lineAMapper!=NULL) { _lineAMapper->Delete();       }
+       if (_pdA!=NULL)             { _pdA->Delete();                   }
+       if (_ptsB!=NULL)            { _ptsB->Delete();                  }
+       if (_lineBActor!=NULL)  { _lineBActor->Delete();        }
+       if (_lineBMapper!=NULL) { _lineBMapper->Delete();       }
+       if (_pdB!=NULL)             { _pdB->Delete();                   }
 }
 //-------------------------------------------------------------------
 vtkMPRBaseData *wxVtkMPR2DView::GetVtkmprbasedata()
@@ -95,11 +97,9 @@ void wxVtkMPR2DView::Configure()
                x1 = (int)(x1*spc[0]);
                y1 = (int)(y1*spc[1]);
                z1 = (int)(z1*spc[2]);
-
                x2 = (int)(x2*spc[0]);
                y2 = (int)(y2*spc[1]);
                z2 = (int)(z2*spc[2]);
-
                _visibleAxis = true;
        }
 
@@ -115,7 +115,14 @@ void wxVtkMPR2DView::Configure()
                _ptsA->SetPoint(1,  1000        ,  1000 ,  1000 );
                _pdA = vtkPolyData::New();
                _lineAMapper = vtkPolyDataMapper::New();
+
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
                _lineAMapper->SetInput(_pdA);
+#else
+               _lineAMapper->SetInputData(_pdA);
+#endif
+
                _lineAMapper->ImmediateModeRenderingOn();
                _lineAActor->SetMapper(_lineAMapper);
        }
@@ -153,7 +160,14 @@ void wxVtkMPR2DView::Configure()
        _pdB->SetPoints( _ptsB );
        _pdB->SetLines( linesB );
        linesB->Delete();  //do not delete lines ??
+
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
        _lineBMapper->SetInput(_pdB);
+#else
+       _lineBMapper->SetInputData(_pdB);
+#endif
+
        _lineBMapper->ImmediateModeRenderingOn();
        if(_imageViewer2XYZ){
                _imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->AddActor( _lineAActor );
@@ -236,7 +250,11 @@ void wxVtkMPR2DView::Refresh()
 {
        //wxVtk2DBaseView::Refresh();
        int x1 = 0,x2 = 0,y1 = 0,y2 = 0,z1 = 0,z2 = 0;
-       int x = 0, y = 0, z = 0;
+
+//EED 02/08/2013
+//     int x = 0, y = 0, z = 0;
+       double x = 0, y = 0, z = 0;
+
        int xx = 0, yy = 0, zz = 0;
        double *spc     = 0;
        double *origin  = 0;
@@ -244,7 +262,8 @@ void wxVtkMPR2DView::Refresh()
        double xx1,yy1,zz1,xx2,yy2,zz2;
        
        vtkImageData* img = GetVtkmprbasedata()->GetImageData();
-       if(img!=NULL){
+       if(img!=NULL)
+       {
                origin = img->GetOrigin();
                img->GetExtent(x1,x2,y1,y2,z1,z2);
                spc = img->GetSpacing();
@@ -275,11 +294,17 @@ void wxVtkMPR2DView::Refresh()
                yy = (int)(GetVtkmprbasedata()->GetY());
                zz = (int)(GetVtkmprbasedata()->GetZ());
 
-               x =  round(xx*spc[0]);
-               y =  round(yy*spc[1]);
-               z =  round(zz*spc[2]);
-               
-               if ((xx!=_backX) || (yy!=_backY) || (zz!=_backZ)) {
+//EED 02/08/2013
+//             x =  round(xx*spc[0]);
+//             y =  round(yy*spc[1]);
+//             z =  round(zz*spc[2]);
+
+               x =  xx*spc[0];
+               y =  yy*spc[1];
+               z =  zz*spc[2];
+
+               if ((xx!=_backX) || (yy!=_backY) || (zz!=_backZ)) 
+               {
 
                        if (_direction==0) {    // YZ
                                if(_imageViewer2XYZ)
@@ -334,17 +359,30 @@ void wxVtkMPR2DView::Refresh()
                                _ptsB->SetPoint(1, x   , yy2, z1 );
                                
                                
-                       }
+                       } // if back
+
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+                               // ..
+#else
+                               _ptsA->Modified();
+                               _ptsB->Modified();
+#endif
+
                        _backX=xx;
                        _backY=yy;
                        _backZ=zz;
-               }
+               } // if image
 
+//EED 2016/02/19
+       vtkImageActor *imageactor = _imageViewer2XYZ->GetVtkImageViewer2()->GetImageActor();
+       imageactor->SetInterpolate( GetVtkBaseData()->GetInterpolate() );
 //EED 01nov2012
                UpdateColorWindowLevel();
                wxVtkBaseView::Refresh();
        }
 }
+
 //-------------------------------------------------------------------
 int wxVtkMPR2DView::GetActualSlice()   // virtual
 {