vtkmyPWCallback_3DPointWidget.cxx

Go to the documentation of this file.
00001 #include "vtkmyPWCallback_3DPointWidget.h"
00002 #include "vtkInteractorStyleBaseView.h"
00003 
00004 //-------------------------------------------------------------------
00005 //-------------------------------------------------------------------
00006 //-------------------------------------------------------------------
00007 void vtkmyPWCallback_3DPointWidget::Execute(vtkObject *caller, unsigned long, void*)
00008 {
00009         double n[3];
00010         double p[3];
00011         double delta = 0.000000001;
00012 
00013         vtkInteractorStyleBaseView *isbv = (vtkInteractorStyleBaseView*)_wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetInteractorStyleBaseView();
00014 
00015         if (caller==_pointWidget)
00016         {
00017                 _pointWidget->GetPosition(p);
00018         }
00019         if (caller==_planeWidget)
00020         {
00021                 _planeWidget->GetCenter(p);
00022                 _planeWidget->GetNormal(n);
00023                 _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetNormal(n[0],n[1],n[2]);
00024         }
00025 
00026         double spc[3];
00027         _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData()->GetSpacing(spc);
00028         p[0]=p[0]/spc[0];
00029         p[1]=p[1]/spc[1];
00030         p[2]=p[2]/spc[2];
00031 
00032         // Orientation change
00033         if ( (fabs(n[0]-_backNormal[0])>delta) || (fabs(n[1]-_backNormal[1])>delta) || (fabs(n[2]-_backNormal[2])>delta) )
00034         {
00035                 _backNormal[0] = n[0];
00036                 _backNormal[1] = n[1];
00037                 _backNormal[2] = n[2];
00038                 isbv->SetParent_refresh_waiting();
00039         }
00040 
00041         // ----------
00042 
00043         double tx = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetX();
00044         double ty = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetY();
00045         double tz = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetZ();
00046 
00047         // Position Change
00048         if ( (fabs(tx-p[0])>delta) || (fabs(ty-p[1])>delta) || (fabs(tz-p[2])>delta) )
00049         {
00050                 _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetX( p[0] );
00051                 _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetY( p[1] );
00052                 _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetZ( p[2] );
00053                 vtkInteractorStyleBaseView *isbv = (vtkInteractorStyleBaseView*)_wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetInteractorStyleBaseView();
00054                 isbv->BlockRefresh();
00055                 isbv->vtkInteractorStyleBaseView::OnLeftButtonDown();
00056                 isbv->SetParent_refresh_waiting();
00057                 isbv->vtkInteractorStyleBaseView::OnMouseMove();
00058                 isbv->UnBlockRefresh();
00059         } 
00060         isbv->EvaluateToRefresh();
00061 }
00062 //-------------------------------------------------------------------
00063 void vtkmyPWCallback_3DPointWidget::SetWxVtkMPR3DView( wxVtkMPR3DView *wxvtkmpr3Dview )
00064 {
00065         _wxvtkmpr3Dview=wxvtkmpr3Dview;
00066 }
00067 //-------------------------------------------------------------------
00068 void vtkmyPWCallback_3DPointWidget::SetVtkPointWidget( vtkPointWidget *pointWidget )
00069 {
00070         _pointWidget=pointWidget;
00071 }
00072 //-------------------------------------------------------------------
00073 void vtkmyPWCallback_3DPointWidget::SetVtkPlaneWidget( vtkPlaneWidget *planeWidget )
00074 {
00075         _planeWidget=planeWidget;
00076 }
00077 

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1