From: Ricardo Corredor Date: Mon, 12 Apr 2010 09:14:17 +0000 (+0000) Subject: Change in the method to transformCoordinates. It was changed from a method to a new... X-Git-Tag: CREATOOLS.2-0-3~38 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=401bb9b06310683e21d0a7676ef543fb9255f1f9;p=creaMaracasVisu.git Change in the method to transformCoordinates. It was changed from a method to a new parameter in the existing method. I don't know why that was happening but the idea is to change that method to use it in a 3D interaction. --- diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkBaseView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkBaseView.cxx index c2be591..65a1fdc 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkBaseView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkBaseView.cxx @@ -90,9 +90,9 @@ vtkRenderWindow* wxVtkBaseView::GetRenWin() // virtual } //---------------------------------------------------------------------------- - -void wxVtkBaseView::TransCoordScreenToWorld(double &X, double &Y, double &Z) -{ + +void wxVtkBaseView::TransFromCoordScreenToWorld(double &X, double &Y, double &Z, bool is3D, bool keepNormalDirection, int type) //virtual //is3d=false keepNormalDirection=false, type=2 +{ GetRenderer()->SetDisplayPoint((int)X, (int)Y, (int)Z); GetRenderer()->DisplayToWorld(); double fP[4]; @@ -103,43 +103,34 @@ void wxVtkBaseView::TransCoordScreenToWorld(double &X, double &Y, double &Z) fP[2] /= fP[3]; } - X = fP[0]; - Y = fP[1]; - Z = fP[2]; -} -//---------------------------------------------------------------------------- - -void wxVtkBaseView::TransFromCoordScreenToWorld(double &X, double &Y, double &Z, bool keepNormalDirection, int type) //virtual //keepNormalDirection=false, type=2 -{ - - //RaC 03-2010 - TransCoordScreenToWorld(X,Y,Z); - -// EEDx5 - //JCP 13/05/2009 - vtkInteractorStyleBaseView* interactorstyle = (vtkInteractorStyleBaseView*)this->GetInteractorStyleBaseView(); - 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 - - if (type!=0) + if(is3D) { X=fP[0]; - } - if (type!=1) - { Y=fP[1]; + Z=fP[2]; } - if (type!=2) + else { - Z=fP[2]; - } + // EEDx5 + //JCP 13/05/2009 + vtkInteractorStyleBaseView* interactorstyle = (vtkInteractorStyleBaseView*)this->GetInteractorStyleBaseView(); + wxVtk2DBaseView* baseview = (wxVtk2DBaseView*)interactorstyle->GetWxVtk2DBaseView(); + baseview->TransformCoordinate_spacing_ViewToModel( fP[0] , fP[1] , fP[2] ); + //JCP 13/05/2009 + + if (type!=0) + { + X=fP[0]; + } + if (type!=1) + { + Y=fP[1]; + } + if (type!=2) + { + Z=fP[2]; + } + } } //--------------------------------------------------------------------------- diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkBaseView.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkBaseView.h index 50d62ac..60fafc9 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkBaseView.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkBaseView.h @@ -52,11 +52,7 @@ public: virtual void RefreshView(); virtual vtkRenderer* GetRenderer(); virtual vtkRenderWindow* GetRenWin(); - virtual void TransFromCoordScreenToWorld(double &X, double &Y, double &Z, bool keepNormalDirection=false,int type=2); - - //RaC 03-2010 Method used by TransFromCoordScreenToWorld - void TransCoordScreenToWorld(double &X, double &Y, double &Z); - + virtual void TransFromCoordScreenToWorld(double &X, double &Y, double &Z, bool is3D=false,bool keepNormalDirection=false,int type=2); /* JCP 04/05/09 void SetInteractorStyleBaseView( vtkInteractorStyleBaseView* interactorStyle); */