1 #include "vtkmyPWCallback_3DPointWidget.h"
2 #include "vtkInteractorStyleBaseView.h"
4 //-------------------------------------------------------------------
5 //-------------------------------------------------------------------
6 //-------------------------------------------------------------------
7 void vtkmyPWCallback_3DPointWidget::Execute(vtkObject *caller, unsigned long, void*)
11 double delta = 0.000000001;
13 vtkInteractorStyleBaseView *isbv = (vtkInteractorStyleBaseView*)_wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetInteractorStyleBaseView();
15 if (caller==_pointWidget)
17 _pointWidget->GetPosition(p);
19 if (caller==_planeWidget)
21 _planeWidget->GetCenter(p);
22 _planeWidget->GetNormal(n);
23 _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetNormal(n[0],n[1],n[2]);
27 _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData()->GetSpacing(spc);
33 if ( (fabs(n[0]-_backNormal[0])>delta) || (fabs(n[1]-_backNormal[1])>delta) || (fabs(n[2]-_backNormal[2])>delta) )
35 _backNormal[0] = n[0];
36 _backNormal[1] = n[1];
37 _backNormal[2] = n[2];
38 isbv->SetParent_refresh_waiting();
43 double tx = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetX();
44 double ty = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetY();
45 double tz = _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetZ();
48 if ( (fabs(tx-p[0])>delta) || (fabs(ty-p[1])>delta) || (fabs(tz-p[2])>delta) )
50 _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetX( p[0] );
51 _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetY( p[1] );
52 _wxvtkmpr3Dview->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->SetZ( p[2] );
53 vtkInteractorStyleBaseView *isbv = (vtkInteractorStyleBaseView*)_wxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetInteractorStyleBaseView();
55 isbv->vtkInteractorStyleBaseView::OnLeftButtonDown();
56 isbv->SetParent_refresh_waiting();
57 isbv->vtkInteractorStyleBaseView::OnMouseMove();
58 isbv->UnBlockRefresh();
60 isbv->EvaluateToRefresh();
62 //-------------------------------------------------------------------
63 void vtkmyPWCallback_3DPointWidget::SetWxVtkMPR3DView( wxVtkMPR3DView *wxvtkmpr3Dview )
65 _wxvtkmpr3Dview=wxvtkmpr3Dview;
67 //-------------------------------------------------------------------
68 void vtkmyPWCallback_3DPointWidget::SetVtkPointWidget( vtkPointWidget *pointWidget )
70 _pointWidget=pointWidget;
72 //-------------------------------------------------------------------
73 void vtkmyPWCallback_3DPointWidget::SetVtkPlaneWidget( vtkPlaneWidget *planeWidget )
75 _planeWidget=planeWidget;