X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxVtkMPR2DView.cxx;h=87b4fa3d909c507d49fb273a68eb6e5db4f79b17;hb=04daf8279bb4bd4219f2903e7352e36db8d88866;hp=0bd418b97977409f6bca5000cdc194fb7bc1fb46;hpb=40dfa1616e1203ecccb8163e7722c76769eddfe3;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx index 0bd418b..87b4fa3 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx @@ -1,8 +1,35 @@ +/*# --------------------------------------------------------------------- +# +# 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. +# ------------------------------------------------------------------------ */ + #include "wxVtkMPR2DView.h" #include "vtkInteractorStyleBaseView.h" #include "vtkCellArray.h" +#include "vtkImageActor.h" + #ifdef WIN32 #include using namespace gtm; @@ -29,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() @@ -46,14 +73,9 @@ vtkMPRBaseData *wxVtkMPR2DView::GetVtkmprbasedata() //------------------------------------------------------------------- void wxVtkMPR2DView::Configure() { - printf("EED wxVtkMPR2DView::Configure"); - wxVtk2DBaseView::Configure(); - - int x1,x2,y1,y2,z1,z2; GetVtkmprbasedata() -> GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2); - double spc[3]; vtkImageData* img = GetVtkmprbasedata()->GetImageData(); if(_interactorstylemprview==NULL) @@ -75,15 +97,10 @@ 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; - - - } // Axe A @@ -96,12 +113,16 @@ void wxVtkMPR2DView::Configure() _ptsA->SetNumberOfPoints(2); _ptsA->SetPoint(0, -1000 , -1000 , -1000 ); _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); } @@ -123,12 +144,10 @@ void wxVtkMPR2DView::Configure() _lineBActor->GetProperty()->SetLineWidth(0.5); _lineBMapper = vtkPolyDataMapper::New(); _lineBActor->SetMapper(_lineBMapper); - _ptsB = vtkPoints::New(); _ptsB->SetNumberOfPoints(2); _ptsB->SetPoint(0, -1000 , -1000 , -1000 ); _ptsB->SetPoint(1, 1000 , 1000 , 1000 ); - // _lineBActor->GetProperty()->BackfaceCullingOn(); } @@ -142,11 +161,14 @@ void wxVtkMPR2DView::Configure() _pdB->SetLines( linesB ); linesB->Delete(); //do not delete lines ?? - +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 _lineBMapper->SetInput(_pdB); - _lineBMapper->ImmediateModeRenderingOn(); - +#else + _lineBMapper->SetInputData(_pdB); +#endif + _lineBMapper->ImmediateModeRenderingOn(); if(_imageViewer2XYZ){ _imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->AddActor( _lineAActor ); _imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->AddActor( _lineBActor ); @@ -202,7 +224,6 @@ void wxVtkMPR2DView::Configure() // _imageViewer2XYZ->GetVtkImageViewer2()->SetColorWindow (160); // _imageViewer2XYZ->GetVtkImageViewer2()->SetColorLevel (800); } - } void wxVtkMPR2DView::SetVisibleAxis(bool ok) @@ -227,30 +248,22 @@ void wxVtkMPR2DView::SetVisibleAxis(bool ok) //------------------------------------------------------------------- void wxVtkMPR2DView::Refresh() { - - printf("wxVtkMPR2DView::Refresh start\n"); - //wxVtk2DBaseView::Refresh(); + int x1 = 0,x2 = 0,y1 = 0,y2 = 0,z1 = 0,z2 = 0; +//EED 02/08/2013 +// int x = 0, y = 0, z = 0; + double x = 0, y = 0, z = 0; - //vtkImageViewer2 *IV2=_imageViewer2XYZ->GetVtkImageViewer2(); // JPRx - //vtkCamera *camera = IV2->GetRenderer()->GetActiveCamera(); // JPRx - - - int x1 = 0,x2 = 0,y1 = 0,y2 = 0,z1 = 0,z2 = 0; - int x = 0, y = 0, z = 0; int xx = 0, yy = 0, zz = 0; double *spc = 0; double *origin = 0; double xx1,yy1,zz1,xx2,yy2,zz2; - - //GetVtkmprbasedata()->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2); - - vtkImageData* img = GetVtkmprbasedata()->GetImageData(); - if(img!=NULL){ + if(img!=NULL) + { origin = img->GetOrigin(); img->GetExtent(x1,x2,y1,y2,z1,z2); spc = img->GetSpacing(); @@ -281,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) @@ -340,21 +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; - } - -//EED 24oct2010 -_imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel()->Modified(); + } // if image +//EED 2016/02/19 + vtkImageActor *imageactor = _imageViewer2XYZ->GetVtkImageViewer2()->GetImageActor(); + imageactor->SetInterpolate( GetVtkBaseData()->GetInterpolate() ); +//EED 01nov2012 + UpdateColorWindowLevel(); wxVtkBaseView::Refresh(); - - printf("wxVtkMPR2DView::Refresh end\n"); - } } + //------------------------------------------------------------------- int wxVtkMPR2DView::GetActualSlice() // virtual {