X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxVtkMPR2DView.cxx;h=849a6e7889d9586f4eb7e9f04d86b72d74432f35;hb=5380f9e66daf440f27f33bb060e5ae1a646612cd;hp=06d455d83220874460bca3fd7e9537758d396f68;hpb=1875ac5ea44f35fb7259e847f628bb840e3964a8;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx index 06d455d..849a6e7 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx @@ -3,6 +3,10 @@ #include "vtkInteractorStyleBaseView.h" #include "vtkCellArray.h" +#ifdef WIN32 +#include +using namespace gtm; +#endif wxVtkMPR2DView::wxVtkMPR2DView( wxWindow *parent, int direction) :wxVtk2DBaseView(parent) @@ -83,7 +87,7 @@ void wxVtkMPR2DView::Configure(){ if(_lineAActor==NULL){ _lineAActor = vtkActor::New(); _lineAActor->GetProperty()->SetDiffuseColor(1,0,0); - _lineAActor->GetProperty()->SetLineWidth(2); + _lineAActor->GetProperty()->SetLineWidth(0.5); _ptsA = vtkPoints::New(); _ptsA->SetNumberOfPoints(2); @@ -113,7 +117,7 @@ void wxVtkMPR2DView::Configure(){ if(_lineBActor==NULL){ _lineBActor = vtkActor::New(); _lineBActor->GetProperty()->SetDiffuseColor(1,0,0); - _lineBActor->GetProperty()->SetLineWidth(2); + _lineBActor->GetProperty()->SetLineWidth(0.5); _lineBMapper = vtkPolyDataMapper::New(); _lineBActor->SetMapper(_lineBMapper); @@ -146,29 +150,30 @@ void wxVtkMPR2DView::Configure(){ 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 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->SetParallelScale( (x2-x1)/3.0 ); } - */ +/* if (_direction==0) { // YZ camera->SetViewUp ( 0 , 1 , 0 ); camera->SetPosition ( 10000,(y1+y2)/2 , (z1+z2)/2 ); @@ -189,7 +194,7 @@ void wxVtkMPR2DView::Configure(){ camera->SetFocalPoint ((x1+x2)/2 , (y1+y2)/2 , 0 ); camera->SetParallelScale( (x2-x1)/3.0 ); } - +*/ // _imageViewer2XYZ->GetVtkImageViewer2()->SetColorWindow (160); // _imageViewer2XYZ->GetVtkImageViewer2()->SetColorLevel (800); @@ -233,7 +238,9 @@ void wxVtkMPR2DView::Refresh() 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); @@ -249,13 +256,22 @@ void wxVtkMPR2DView::Refresh() 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]); + + x2 = (int)(x2*spc[0]); + y2 = (int)(y2*spc[1]); + z2 = (int)(z2*spc[2]); xx = (int)(GetVtkmprbasedata()->GetX()); yy = (int)(GetVtkmprbasedata()->GetY()); @@ -264,37 +280,62 @@ void wxVtkMPR2DView::Refresh() x = round(xx*spc[0]); y = round(yy*spc[1]); z = round(zz*spc[2]); - + if ((xx!=_backX) || (yy!=_backY) || (zz!=_backZ)) { if (_direction==0) { // YZ if(_imageViewer2XYZ) + { _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); + } +//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 if(_imageViewer2XYZ) + { _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); + } +//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 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 ); + +//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 ); + + } _backX=xx; _backY=yy; @@ -539,6 +580,12 @@ void wxVtkMPR2DView::TransFromCoordScreenToWorld(double &X, double &Y, double &Z } +//------------------------------------------------------------------- +int wxVtkMPR2DView::GetDirection() // virtual +{ + return _direction; +} + //------------------------------------------------------------------- //-------------------------------------------------------------------