X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxVtkMPR2DView.cxx;h=803bea180e9eed803882a9e249172eab98dd2b58;hb=f658da98570615a244656fc122d935b6fc9a3c65;hp=0ec8f0dc196e5a1c1b4b7d6c9a12adb0d32a7d4b;hpb=885faee171b5cdcbcbbcb6cc83e6d196544e005c;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx index 0ec8f0d..803bea1 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx @@ -1,8 +1,39 @@ +/*# --------------------------------------------------------------------- +# +# 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; +#endif wxVtkMPR2DView::wxVtkMPR2DView( wxWindow *parent, int direction) :wxVtk2DBaseView(parent) @@ -19,19 +50,20 @@ wxVtkMPR2DView::wxVtkMPR2DView( wxWindow *parent, int direction) _lineBActor = NULL; _lineBMapper = NULL; _pdB = NULL; + _interactorstylemprview = NULL; } //------------------------------------------------------------------- wxVtkMPR2DView::~wxVtkMPR2DView() { - if (_ptsA!=NULL) { _ptsA -> 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 (_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 (_pdB!=NULL) { _pdB -> Delete(); } } //------------------------------------------------------------------- vtkMPRBaseData *wxVtkMPR2DView::GetVtkmprbasedata() @@ -39,132 +71,145 @@ vtkMPRBaseData *wxVtkMPR2DView::GetVtkmprbasedata() return (vtkMPRBaseData*)GetVtkBaseData(); } //------------------------------------------------------------------- -void wxVtkMPR2DView::Configure(){ +void wxVtkMPR2DView::Configure() +{ wxVtk2DBaseView::Configure(); - - _interactorstylemprview = new vtkInteractorStyleMPRView(); - ((vtkInteractorStyleBaseView*)GetInteractorStyleBaseView())->AddInteractorStyleMaracas( _interactorstylemprview ); - 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) + { + _interactorstylemprview = new vtkInteractorStyleMPRView(); + ((vtkInteractorStyleBaseView*)GetInteractorStyleBaseView())->AddInteractorStyleMaracas( _interactorstylemprview ); + } + if(img!=NULL){ + double* origin = img->GetOrigin(); + img->GetExtent(x1,x2,y1,y2,z1,z2); img->GetSpacing(spc); + x1 += origin[0]; + x2 += origin[0]; + y1 += origin[1]; + y2 += origin[1]; + z1 += origin[2]; + z2 += origin[2]; 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 + if(_lineAActor==NULL){ + _lineAActor = vtkActor::New(); + _lineAActor->GetProperty()->SetDiffuseColor(1,0,0); + _lineAActor->GetProperty()->SetLineWidth(0.5); + _ptsA = vtkPoints::New(); _ptsA->SetNumberOfPoints(2); _ptsA->SetPoint(0, -1000 , -1000 , -1000 ); _ptsA->SetPoint(1, 1000 , 1000 , 1000 ); - vtkCellArray *linesA; - linesA = vtkCellArray::New(); - linesA->InsertNextCell(2); - linesA->InsertCellPoint(0); - linesA->InsertCellPoint(1); _pdA = vtkPolyData::New(); - _pdA->SetPoints( _ptsA ); - _pdA->SetLines( linesA ); - linesA->Delete(); //do not delete lines ?? - _lineAActor = vtkActor::New(); - _lineAMapper = vtkPolyDataMapper::New(); + _lineAMapper = vtkPolyDataMapper::New(); _lineAMapper->SetInput(_pdA); _lineAMapper->ImmediateModeRenderingOn(); _lineAActor->SetMapper(_lineAMapper); + } + + vtkCellArray *linesA = vtkCellArray::New(); + linesA->InsertNextCell(2); + linesA->InsertCellPoint(0); + linesA->InsertCellPoint(1); + _pdA->SetPoints( _ptsA ); + _pdA->SetLines( linesA ); + linesA->Delete(); //do not delete lines ?? // _lineAActor->GetProperty()->BackfaceCullingOn(); - _lineAActor->GetProperty()->SetDiffuseColor(1,0,0); - _lineAActor->GetProperty()->SetLineWidth(2); - _imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->AddActor( _lineAActor ); - // Axe B + +// Axe B + if(_lineBActor==NULL){ + _lineBActor = vtkActor::New(); + _lineBActor->GetProperty()->SetDiffuseColor(1,0,0); + _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 ); - vtkCellArray *linesB; - linesB = vtkCellArray::New(); - linesB->InsertNextCell(2); - linesB->InsertCellPoint(0); - linesB->InsertCellPoint(1); - _pdB = vtkPolyData::New(); - _pdB->SetPoints( _ptsB ); - _pdB->SetLines( linesB ); - linesB->Delete(); //do not delete lines ?? - _lineBActor = vtkActor::New(); - _lineBMapper = vtkPolyDataMapper::New(); - _lineBMapper->SetInput(_pdB); - _lineBMapper->ImmediateModeRenderingOn(); - _lineBActor->SetMapper(_lineBMapper); // _lineBActor->GetProperty()->BackfaceCullingOn(); - _lineBActor->GetProperty()->SetDiffuseColor(1,0,0); - _lineBActor->GetProperty()->SetLineWidth(2); - _imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->AddActor( _lineBActor ); + } - + vtkCellArray *linesB; + linesB = vtkCellArray::New(); + linesB->InsertNextCell(2); + linesB->InsertCellPoint(0); + linesB->InsertCellPoint(1); + _pdB = vtkPolyData::New(); + _pdB->SetPoints( _ptsB ); + _pdB->SetLines( linesB ); + linesB->Delete(); //do not delete lines ?? + _lineBMapper->SetInput(_pdB); + _lineBMapper->ImmediateModeRenderingOn(); + if(_imageViewer2XYZ){ + _imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->AddActor( _lineAActor ); + _imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->AddActor( _lineBActor ); vtkCamera *camera =_imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->GetActiveCamera(); - -//EED 17Avril2009 -/* - if (_direction==0) { - camera->SetViewUp ( 0 , -1 , 0 ); - camera->SetPosition ( -10000,(y1+y2)/2 , (z1+z2)/2 ); + + //EED 17Avril2009 + //EED 21 mars 2012 FLIP problem ..PLOP.. + + if (_direction==0) { // YZ + camera->SetViewUp ( 0 , 0 , 1 ); + camera->SetPosition ( 10000,(y1+y2)/2 , (z1+z2)/2 ); camera->SetFocalPoint ( 0 , (y1+y2)/2 , (z1+z2)/2 ); camera->SetParallelScale( (z2-z1)/3.0 ); } - if (_direction==1) { - camera->SetViewUp ( 0 , 0 , -1 ); - camera->SetPosition ((x1+x2)/2 , 10000 , (z1+z2)/2 ); + if (_direction==1) { // XZ + camera->SetViewUp ( 0 , 0 , 1 ); + camera->SetPosition ((x1+x2)/2 , -10000 , (z1+z2)/2 ); camera->SetFocalPoint ((x1+x2)/2 , 0 , (z1+z2)/2 ); camera->SetParallelScale( (x2-x1)/3.0 ); } - if (_direction==2) { + if (_direction==2) { // XY camera->SetViewUp ( 0 , -1 , 0 ); - camera->SetPosition ((x1+x2)/2 , (y1+y2)/2 , -10000); - camera->SetFocalPoint ((x1+x2)/2 , (y1+y2)/2 , 0 ); + camera->SetPosition ((x1+x2)/2 , (y1+y2)/2 , -10000); + camera->SetFocalPoint ((x1+x2)/2 , (y1+y2)/2 , 0 ); camera->SetParallelScale( (x2-x1)/3.0 ); } - */ +/* if (_direction==0) { // YZ camera->SetViewUp ( 0 , 1 , 0 ); - camera->SetPosition ( 10000,(y1+y2)/2 , (z1+z2)/2 ); + camera->SetPosition ( 10000,(y1+y2)/2 , (z1+z2)/2 ); camera->SetFocalPoint ( 0 , (y1+y2)/2 , (z1+z2)/2 ); camera->SetParallelScale( (z2-z1)/3.0 ); } - + if (_direction==1) { // XZ camera->SetViewUp ( 0 , 0 , -1 ); - camera->SetPosition ((x1+x2)/2 , 10000 , (z1+z2)/2 ); + camera->SetPosition ((x1+x2)/2 , 10000 , (z1+z2)/2 ); camera->SetFocalPoint ((x1+x2)/2 , 0 , (z1+z2)/2 ); camera->SetParallelScale( (x2-x1)/3.0 ); } - + if (_direction==2) { // XY camera->SetViewUp ( 0 , 1 , 0 ); - camera->SetPosition ((x1+x2)/2 , (y1+y2)/2 , 10000); - camera->SetFocalPoint ((x1+x2)/2 , (y1+y2)/2 , 0 ); + camera->SetPosition ((x1+x2)/2 , (y1+y2)/2 , 10000); + camera->SetFocalPoint ((x1+x2)/2 , (y1+y2)/2 , 0 ); camera->SetParallelScale( (x2-x1)/3.0 ); } - - - - } - -// _imageViewer2XYZ->GetVtkImageViewer2()->SetColorWindow (160); -// _imageViewer2XYZ->GetVtkImageViewer2()->SetColorLevel (800); +*/ + // _imageViewer2XYZ->GetVtkImageViewer2()->SetColorWindow (160); + // _imageViewer2XYZ->GetVtkImageViewer2()->SetColorLevel (800); + } } void wxVtkMPR2DView::SetVisibleAxis(bool ok) @@ -187,89 +232,148 @@ void wxVtkMPR2DView::SetVisibleAxis(bool ok) } //------------------------------------------------------------------- -void wxVtkMPR2DView::Refresh() +void wxVtkMPR2DView::Refresh() { //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 xx = 0, yy = 0, zz = 0; + double *spc = 0; + double *origin = 0; + + double xx1,yy1,zz1,xx2,yy2,zz2; + + vtkImageData* img = GetVtkmprbasedata()->GetImageData(); + if(img!=NULL) + { + origin = img->GetOrigin(); + img->GetExtent(x1,x2,y1,y2,z1,z2); + spc = img->GetSpacing(); + x1 += origin[0]; + x2 += origin[0]; + y1 += origin[1]; + y2 += origin[1]; + z1 += origin[2]; + z2 += origin[2]; + + xx1 = x1*spc[0]; + yy1 = y1*spc[1]; + zz1 = z1*spc[2]; + + xx2 = x2*spc[0]; + yy2 = y2*spc[1]; + zz2 = z2*spc[2]; + + 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]); + xx = (int)(GetVtkmprbasedata()->GetX()); + yy = (int)(GetVtkmprbasedata()->GetY()); + zz = (int)(GetVtkmprbasedata()->GetZ()); +//EED 02/08/2013 +// x = round(xx*spc[0]); +// y = round(yy*spc[1]); +// z = round(zz*spc[2]); - int x1,x2,y1,y2,z1,z2; - GetVtkmprbasedata()->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2); - double spc[3]; - - vtkImageData* img = GetVtkmprbasedata()->GetImageData(); - if(img!=NULL){ - img->GetSpacing(spc); - 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]); - - int x = (int)(GetVtkmprbasedata()->GetX()); - int y = (int)(GetVtkmprbasedata()->GetY()); - int z = (int)(GetVtkmprbasedata()->GetZ()); - - x = (int)(x*spc[0]); - y = (int)(y*spc[1]); - z = (int)(z*spc[2]); - - if ((x!=_backX) || (y!=_backY) || (z!=_backZ)) { - - if (_direction==0) { // YZ - _imageViewer2XYZ->SetXSlice( (int)(GetVtkmprbasedata()->GetX()) ); - _ptsA->SetPoint(0, x2, y1 , z ); - _ptsA->SetPoint(1, x2, y2 , z ); - _ptsB->SetPoint(0, x2, y , z1); - _ptsB->SetPoint(1, x2, y , z2); + 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) + { + _imageViewer2XYZ->SetXSlice( (int)(GetVtkmprbasedata()->GetX()) ); + } +//EED 21 mars 2012 FLIP probleme ..PLOP.. + //_ptsA->SetPoint(0, x2, y1 , z ); + //_ptsA->SetPoint(1, x2, y2 , z ); + //_ptsB->SetPoint(0, x2, y , z1); + //_ptsB->SetPoint(1, x2, y , z2); + _ptsA->SetPoint(0, xx2, yy1 , z ); + _ptsA->SetPoint(1, xx2, yy2 , z ); + _ptsB->SetPoint(0, xx2, y , zz1); + _ptsB->SetPoint(1, xx2, y , zz2); } if (_direction==1) { // XZ - _imageViewer2XYZ->SetYSlice( (int)(GetVtkmprbasedata()->GetY()) ); - _ptsA->SetPoint(0, x1 , y2 , z ); - _ptsA->SetPoint(1, x2 , y2 , z ); - _ptsB->SetPoint(0, x , y2 , z1); - _ptsB->SetPoint(1, x , y2 , z2); + if(_imageViewer2XYZ) + { + _imageViewer2XYZ->SetYSlice( (int)(GetVtkmprbasedata()->GetY()) ); + } +//EED 21 mars 2012 FLIP probleme ..PLOP.. + //_ptsA->SetPoint(0, x1 , y2 , z ); + //_ptsA->SetPoint(1, x2 , y2 , z ); + //_ptsB->SetPoint(0, x , y2 , z1); + //_ptsB->SetPoint(1, x , y2 , z2); + _ptsA->SetPoint(0, xx1 , y1 , z ); + _ptsA->SetPoint(1, xx2 , y1 , z ); + _ptsB->SetPoint(0, x , y1 , zz1); + _ptsB->SetPoint(1, x , y1 , zz2); } if (_direction==2) { // XY - _imageViewer2XYZ->SetZSlice( (int)(GetVtkmprbasedata()->GetZ()) ); - _imageViewer2XYZ->SetZSlice( (int)(GetVtkmprbasedata()->GetZ()) ); + if(_imageViewer2XYZ) + { + _imageViewer2XYZ->SetZSlice( (int)(GetVtkmprbasedata()->GetZ()) ); + } // _ptsA->SetPoint(0, x1 , y , -z2 ); // _ptsA->SetPoint(1, x2 , y , -z2 ); // _ptsB->SetPoint(0, x , y1, -z2 ); // _ptsB->SetPoint(1, x , y2, -z2 ); + - _ptsA->SetPoint(0, x1 , y , z2 ); - _ptsA->SetPoint(1, x2 , y , z2 ); - _ptsB->SetPoint(0, x , y1, z2 ); - _ptsB->SetPoint(1, x , y2, z2 ); - } - _backX=x; - _backY=y; - _backZ=z; - } +//EED 21 mars 2012 FLIP probleme ..PLOP.. + //_ptsA->SetPoint(0, x1 , y , z2 ); + //_ptsA->SetPoint(1, x2 , y , z2 ); + //_ptsB->SetPoint(0, x , y1, z2 ); + //_ptsB->SetPoint(1, x , y2, z2 ); + + _ptsA->SetPoint(0, xx1 , y , z1 ); + _ptsA->SetPoint(1, xx2 , y , z1 ); + _ptsB->SetPoint(0, x , yy1, z1 ); + _ptsB->SetPoint(1, x , yy2, z1 ); + + + } // if back + _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 { int result; - if (_direction==0) - { + if (_direction==0) + { result = (int)(GetVtkmprbasedata()->GetX()); } - if (_direction==1) - { + if (_direction==1) + { result = (int)(GetVtkmprbasedata()->GetY()); } - if (_direction==2) - { + if (_direction==2) + { result = (int)(GetVtkmprbasedata()->GetZ()); } return result; @@ -277,16 +381,16 @@ int wxVtkMPR2DView::GetActualSlice() // virtual //------------------------------------------------------------------- void wxVtkMPR2DView::SetActualSlice(int slice) // virtual { - if (_direction==0) - { + if (_direction==0) + { GetVtkmprbasedata()->SetX(slice); } - if (_direction==1) - { + if (_direction==1) + { GetVtkmprbasedata()->SetY(slice); } - if (_direction==2) - { + if (_direction==2) + { GetVtkmprbasedata()->SetZ(slice); } } @@ -295,18 +399,18 @@ bool wxVtkMPR2DView::IfMouseTouchX(double x, double y, double z) { double delta=5; bool result=false; - if (_direction==0) - { + if (_direction==0) + { } - if (_direction==1) - { + if (_direction==1) + { if (( xGetX()+delta ) && ( x>GetVtkmprbasedata()->GetX()-delta )) { result = true; } } - if (_direction==2) - { + if (_direction==2) + { if (( xGetX()+delta ) && ( x>GetVtkmprbasedata()->GetX()-delta )) { result = true; @@ -319,18 +423,18 @@ bool wxVtkMPR2DView::IfMouseTouchY(double x, double y, double z) { double delta=5; bool result=false; - if (_direction==0) - { + if (_direction==0) + { if (( yGetY()+delta ) && ( y>GetVtkmprbasedata()->GetY()-delta )) { result = true; } } - if (_direction==1) - { + if (_direction==1) + { } - if (_direction==2) - { + if (_direction==2) + { if (( yGetY()+delta ) && ( y>GetVtkmprbasedata()->GetY()-delta )) { result = true; @@ -343,68 +447,68 @@ bool wxVtkMPR2DView::IfMouseTouchZ(double x, double y, double z) { double delta=5; bool result=false; - if (_direction==0) - { + if (_direction==0) + { if (( zGetZ()+delta ) && ( z>GetVtkmprbasedata()->GetZ()-delta )) { result = true; } } - if (_direction==1) - { + if (_direction==1) + { if (( zGetZ()+delta ) && ( z>GetVtkmprbasedata()->GetZ()-delta )) { result = true; } } - if (_direction==2) - { + if (_direction==2) + { } return result; } //------------------------------------------------------------------- void wxVtkMPR2DView::MoveX(double x, double y, double z) { - if (_direction==0) - { + if (_direction==0) + { } - if (_direction==1) - { + if (_direction==1) + { GetVtkmprbasedata()->SetX(x); } - if (_direction==2) - { + if (_direction==2) + { GetVtkmprbasedata()->SetX(x); } } //------------------------------------------------------------------- void wxVtkMPR2DView::MoveY(double x, double y, double z) { - if (_direction==0) - { + if (_direction==0) + { GetVtkmprbasedata()->SetY(y); } - if (_direction==1) - { + if (_direction==1) + { } - if (_direction==2) - { + if (_direction==2) + { GetVtkmprbasedata()->SetY(y); } } //------------------------------------------------------------------- void wxVtkMPR2DView::MoveZ(double x, double y, double z) { - if (_direction==0) - { + if (_direction==0) + { GetVtkmprbasedata()->SetZ(z); } - if (_direction==1) - { + if (_direction==1) + { GetVtkmprbasedata()->SetZ(z); } - if (_direction==2) - { + if (_direction==2) + { } } //------------------------------------------------------------------- @@ -413,8 +517,8 @@ void wxVtkMPR2DView::ChangeAxisColor(double x, double y, double z) double c1r=1,c1g=1,c1b=0; double c2r=1,c2g=0,c2b=0; - if (_direction==0) - { + if (_direction==0) + { if (IfMouseTouchY(x,y,z)==true) { _lineBActor->GetProperty()->SetDiffuseColor(c1r,c1g,c1b); @@ -429,8 +533,8 @@ void wxVtkMPR2DView::ChangeAxisColor(double x, double y, double z) } } - if (_direction==1) - { + if (_direction==1) + { if (IfMouseTouchX(x,y,z)==true) { _lineBActor->GetProperty()->SetDiffuseColor(c1r,c1g,c1b); @@ -445,8 +549,8 @@ void wxVtkMPR2DView::ChangeAxisColor(double x, double y, double z) } } - if (_direction==2) - { + if (_direction==2) + { if (IfMouseTouchX(x,y,z)==true) { _lineBActor->GetProperty()->SetDiffuseColor(c1r,c1g,c1b); @@ -465,27 +569,33 @@ void wxVtkMPR2DView::ChangeAxisColor(double x, double y, double z) //EED 5 juin 2009 -//void wxVtkMPR2DView::TransfromCoordViewWorld(double &X, double &Y, double &Z, int type) // virtual +//void wxVtkMPR2DView::TransfromCoordViewWorld(double &X, double &Y, double &Z, int type) // virtual void wxVtkMPR2DView::TransFromCoordScreenToWorld(double &X, double &Y, double &Z, bool keepNormalDirection, int type) //virtual //keepNormalDirection=false, type=2 { - + wxVtkBaseView::TransFromCoordScreenToWorld(X,Y,Z,keepNormalDirection,_direction); if ((_direction==0) && (keepNormalDirection==true) ) { X = ((vtkMPRBaseData*)GetVtkBaseData())->GetX(); } - + if ((_direction==1) && (keepNormalDirection==true) ) { Y = ((vtkMPRBaseData*)GetVtkBaseData())->GetY(); } - + if ((_direction==2) && (keepNormalDirection==true) ) { Z = ((vtkMPRBaseData*)GetVtkBaseData())->GetZ(); } - + +} + +//------------------------------------------------------------------- +int wxVtkMPR2DView::GetDirection() // virtual +{ + return _direction; }