X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxVtkBaseView.cxx;h=00cfbdc7d2a6234530e8b69dbda8653005014ba5;hb=5a27c495a6c3899102f76eb029b6aadcee4121c1;hp=564f6594cc4e136f1b0a5d68599b68627a30802a;hpb=a4ee3758aa0477f677fb981e2c4d6e29995e8db8;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkBaseView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkBaseView.cxx index 564f659..00cfbdc 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkBaseView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkBaseView.cxx @@ -24,15 +24,13 @@ wxVtkBaseView::wxVtkBaseView(wxWindow *parent) // _iren->UseCaptureMouseOn(); // _iren = new wxVTKRenderWindowInteractor(_parent,-1); _interactorStyle = NULL; - - } //------------------------------------------------------------------- wxVtkBaseView::~wxVtkBaseView() { - // _iren -> Delete(); - _iren=NULL; + _iren -> Delete(); + //_iren=NULL; } //------------------------------------------------------------------- wxVTKRenderWindowInteractor* wxVtkBaseView::GetWxVTKRenderWindowInteractor() throw (char*) @@ -91,8 +89,8 @@ vtkRenderWindow* wxVtkBaseView::GetRenWin() // virtual //---------------------------------------------------------------------------- -void wxVtkBaseView::TransfromeCoordScreenToWorld(double &X, double &Y, double &Z, int type) // virtual -{ +void wxVtkBaseView::TransCoordScreenToWorld(double &X, double &Y, double &Z, int type) +{ GetRenderer()->SetDisplayPoint((int)X, (int)Y, (int)Z); GetRenderer()->DisplayToWorld(); double fP[4]; @@ -103,10 +101,44 @@ void wxVtkBaseView::TransfromeCoordScreenToWorld(double &X, double &Y, double &Z fP[2] /= fP[3]; } + if (type!=0) + { + X=fP[0]; + } + if (type!=1) + { + Y=fP[1]; + } + if (type!=2) + { + Z=fP[2]; + } +} +//---------------------------------------------------------------------------- + +void wxVtkBaseView::TransFromCoordScreenToWorld(double &X, double &Y, double &Z, bool keepNormalDirection, int type) //virtual //keepNormalDirection=false, type=2 +{ + double xx = X; + double yy = Y; + double zz = Z; + + //RaC 03-2010 + TransCoordScreenToWorld(xx,yy,zz,type); + + X = xx; + Y = yy; + Z=zz; + // EEDx5 //JCP 13/05/2009 vtkInteractorStyleBaseView* interactorstyle = (vtkInteractorStyleBaseView*)this->GetInteractorStyleBaseView(); - wxVtk2DBaseView* baseview = (wxVtk2DBaseView*)interactorstyle->GetWxVtk2DBaseView(); + wxVtk2DBaseView* baseview = (wxVtk2DBaseView*)interactorstyle->GetWxVtk2DBaseView(); + + double fP[3]; + fP[0] = X; + fP[1] = Y; + fP[2] = Z; + baseview->TransformCoordinate_spacing_ViewToModel( fP[0] , fP[1] , fP[2] ); //JCP 13/05/2009 @@ -136,7 +168,6 @@ vtkInteractorStyleImage* wxVtkBaseView::GetInteractorStyleBaseView() return _interactorStyle; } - //--------------------------------------------------------------------------- void wxVtkBaseView::SetInteractorStyleBaseView( vtkInteractorStyleImage* interactorStyle) @@ -153,8 +184,6 @@ void wxVtkBaseView::GetSpacing(double spc[3]) // virtual spc[2]=1; } - - //------------------------------------------------------------------- //------------------------------------------------------------------- //-------------------------------------------------------------------