#include <wxManualRegistration3D.h>
Definition at line 59 of file wxManualRegistration3D.h.
wxManualRegistration3D::wxManualRegistration3D | ( | wxWindow * | parent, | |
marImageData * | marimageData | |||
) |
Definition at line 38 of file wxManualRegistration3D.cxx.
00040 : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL) 00041 { 00042 00043 _marimageData = marimageData; 00044 00045 _vtkmprbasedata_A = new vtkMPRBaseData(); 00046 _vtkmprbasedata_A->SetMarImageData(_marimageData); 00047 00048 _wxvtk3Dbaseview_Clipping3D = NULL; 00049 _wxvtkmpr3Dview_A = NULL; 00050 _wxvtkclipping3Dview_A = NULL; 00051 00052 _wxvtkmpr3Dview_B = NULL; 00053 _wxvtkclipping3Dview_B = NULL; 00054 00055 _panelCutting = NULL; 00056 00057 wxSplitterWindow *pnlSplitter = new wxSplitterWindow( this , -1); 00058 00059 // EED borrame 00060 // int ww,hh; 00061 00062 wxPanel * view3Dpanel = Create3DView( pnlSplitter , _vtkmprbasedata_A ); 00063 wxPanel * registrationControl = CreateRegistration3DControl( pnlSplitter ,_vtkmprbasedata_A); 00064 00065 // this->GetSize(&ww,&hh); 00066 00067 pnlSplitter -> SplitVertically( view3Dpanel, registrationControl , 700); 00068 wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL ); 00069 sizer -> Add( pnlSplitter ,1,wxGROW ,0); 00070 pnlSplitter -> SetMinimumPaneSize( 25 ); 00071 this -> SetSizer(sizer); 00072 00073 00074 _transform = vtkTransform::New(); 00075 _transformBak = vtkTransform::New(); 00076 _transformBak->Identity(); 00077 xBak=0; 00078 yBak=0; 00079 zBak=0; 00080 }
wxManualRegistration3D::~wxManualRegistration3D | ( | ) |
Definition at line 84 of file wxManualRegistration3D.cxx.
References _wxvtk3Dbaseview_Clipping3D, _wxvtkclipping3Dview_A, _wxvtkclipping3Dview_B, _wxvtkmpr3Dview_A, and _wxvtkmpr3Dview_B.
00085 { 00086 if (_wxvtk3Dbaseview_Clipping3D != NULL) { delete _wxvtk3Dbaseview_Clipping3D; } 00087 if (_wxvtkmpr3Dview_A != NULL) { delete _wxvtkmpr3Dview_A; } 00088 if (_wxvtkclipping3Dview_A != NULL) { delete _wxvtkclipping3Dview_A; } 00089 00090 if (_wxvtkmpr3Dview_B != NULL) { delete _wxvtkmpr3Dview_B; } 00091 if (_wxvtkclipping3Dview_B != NULL) { delete _wxvtkclipping3Dview_B; } 00092 }
void wxManualRegistration3D::AddPanelControl_B | ( | wxWindow * | parent, | |
marImageData * | marimagedata | |||
) |
Definition at line 425 of file wxManualRegistration3D.cxx.
References _panelControl_B, _wxvtk3Dbaseview_Clipping3D, _wxvtkclipping3Dview_B, _wxvtkmpr3Dview_B, vtkMPR3DDataViewer::Configure(), vtkClipping3DDataViewer::Configure(), wxVtkMPR3DView::CreateControlPanel(), vtkBaseData::SetMarImageData(), wxVtkClipping3DView::SetVtkClipping3DDataViewer(), wxVtkMPR3DView::SetVtkMPR3DDataViewer(), vtkMPR3DDataViewer::SetVtkMPRBaseData(), and vtkClipping3DDataViewer::SetVtkMPRBaseData().
Referenced by AddSecondVolume().
00426 { 00427 00428 // _imageData_B=marimagedata->GetImageData(); 00429 00430 vtkMPRBaseData* vtkmprbasedata = new vtkMPRBaseData(); 00431 vtkmprbasedata->SetMarImageData(marimagedata); 00432 00433 _wxvtkclipping3Dview_B = new wxVtkClipping3DView(_wxvtk3Dbaseview_Clipping3D); 00434 vtkClipping3DDataViewer *vtkclipping3Ddataviewer_B = new vtkClipping3DDataViewer(); 00435 vtkclipping3Ddataviewer_B->SetVtkMPRBaseData(vtkmprbasedata); 00436 vtkclipping3Ddataviewer_B->Configure(); 00437 _wxvtkclipping3Dview_B->SetVtkClipping3DDataViewer(vtkclipping3Ddataviewer_B); 00438 00439 _wxvtkmpr3Dview_B = new wxVtkMPR3DView( _wxvtk3Dbaseview_Clipping3D ); 00440 vtkMPR3DDataViewer *vtkmpr3Ddataviewer_B = new vtkMPR3DDataViewer(); 00441 vtkmpr3Ddataviewer_B->SetVtkMPRBaseData(vtkmprbasedata); 00442 vtkmpr3Ddataviewer_B->Configure(); 00443 _wxvtkmpr3Dview_B->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer_B); 00444 00445 // 00446 wxPanel *controlPanelMPR3D_B = _wxvtkmpr3Dview_B->CreateControlPanel(_panelControl_B); 00447 wxPanel *controlPanelClipping3D_B = _wxvtkclipping3Dview_B->CreateControlPanel(_panelControl_B); 00448 00449 // wxBoxSizer *sizerCtrol_B = new wxBoxSizer(wxVERTICAL); 00450 wxFlexGridSizer *sizerCtrol_B = new wxFlexGridSizer(1); 00451 00452 sizerCtrol_B->Add(controlPanelMPR3D_B , 1, wxALL|wxEXPAND, 2); 00453 sizerCtrol_B->Add(controlPanelClipping3D_B , 1, wxALL|wxEXPAND, 2); 00454 00455 _panelControl_B->SetAutoLayout(true); 00456 _panelControl_B->SetSizer(sizerCtrol_B); 00457 _panelControl_B->SetSize(400,350); 00458 _panelControl_B->Layout(); 00459 }
void wxManualRegistration3D::AddSecondVolume | ( | marImageData * | marimagedata | ) |
Definition at line 462 of file wxManualRegistration3D.cxx.
References _panelControl_B, AddPanelControl_B(), ConfigureVTK_B(), and RefreshView().
00463 { 00464 AddPanelControl_B(_panelControl_B,marimagedata); 00465 ConfigureVTK_B(); 00466 RefreshView(); 00467 }
void wxManualRegistration3D::ConfigureVTK | ( | ) |
Definition at line 97 of file wxManualRegistration3D.cxx.
References _wxvtk3Dbaseview_Clipping3D, _wxvtkclipping3Dview_A, _wxvtkmpr3Dview_A, wxVtkBaseView::GetInteractorStyleBaseView(), vtkInteractorStyle3DView::SetWxVtkClipping3DView(), and vtkInteractorStyle3DView::SetWxVtkMPR3DView().
00098 { 00099 _wxvtk3Dbaseview_Clipping3D -> Configure(); 00100 // 00101 _wxvtkmpr3Dview_A -> Configure(); 00102 _wxvtkclipping3Dview_A -> Configure(); 00103 vtkInteractorStyle3DView *vtkinteractorstyle3Dview_A = new vtkInteractorStyle3DView(); 00104 vtkinteractorstyle3Dview_A->SetWxVtkMPR3DView(_wxvtkmpr3Dview_A); 00105 vtkinteractorstyle3Dview_A->SetWxVtkClipping3DView(_wxvtkclipping3Dview_A); 00106 _wxvtk3Dbaseview_Clipping3D->GetInteractorStyleBaseView()->AddInteractorStyleMaracas( vtkinteractorstyle3Dview_A ); 00107 // 00108 }
void wxManualRegistration3D::ConfigureVTK_B | ( | ) |
Definition at line 111 of file wxManualRegistration3D.cxx.
References _wxvtk3Dbaseview_Clipping3D, _wxvtkclipping3Dview_B, _wxvtkmpr3Dview_B, wxVtkBaseView::GetInteractorStyleBaseView(), vtkInteractorStyle3DView::SetWxVtkClipping3DView(), and vtkInteractorStyle3DView::SetWxVtkMPR3DView().
Referenced by AddSecondVolume().
00112 { 00113 _wxvtkmpr3Dview_B -> Configure(); 00114 _wxvtkclipping3Dview_B -> Configure(); 00115 vtkInteractorStyle3DView *vtkinteractorstyle3Dview_B = new vtkInteractorStyle3DView(); 00116 vtkinteractorstyle3Dview_B->SetWxVtkMPR3DView(_wxvtkmpr3Dview_B); 00117 vtkinteractorstyle3Dview_B->SetWxVtkClipping3DView(_wxvtkclipping3Dview_B); 00118 _wxvtk3Dbaseview_Clipping3D->GetInteractorStyleBaseView()->AddInteractorStyleMaracas( vtkinteractorstyle3Dview_B ); 00119 }
wxPanel * wxManualRegistration3D::Create3DView | ( | wxWindow * | parent, | |
vtkMPRBaseData * | vtkmprbasedata | |||
) | [private] |
Definition at line 336 of file wxManualRegistration3D.cxx.
References _btnCutImageData, _panelControl_B, _wxvtk3Dbaseview_Clipping3D, _wxvtkclipping3Dview_A, _wxvtkmpr3Dview_A, vtkMPR3DDataViewer::Configure(), vtkClipping3DDataViewer::Configure(), wxVtkMPR3DView::CreateControlPanel(), wxVtkBaseView::GetWxVTKRenderWindowInteractor(), OnCutImagaData(), wxVtkClipping3DView::SetVtkClipping3DDataViewer(), wxVtkMPR3DView::SetVtkMPR3DDataViewer(), vtkMPR3DDataViewer::SetVtkMPRBaseData(), and vtkClipping3DDataViewer::SetVtkMPRBaseData().
00337 { 00338 wxWindow *wxwindow; 00339 wxPanel *panel=new wxPanel(parent,-1); 00340 // 00341 wxSplitterWindow *panelClipping3D = new wxSplitterWindow( panel , -1); 00342 _wxvtk3Dbaseview_Clipping3D = new wxVtk3DBaseView( panelClipping3D ); 00343 // 00344 _wxvtkclipping3Dview_A = new wxVtkClipping3DView(_wxvtk3Dbaseview_Clipping3D); 00345 vtkClipping3DDataViewer *vtkclipping3Ddataviewer_A = new vtkClipping3DDataViewer(); 00346 vtkclipping3Ddataviewer_A->SetVtkMPRBaseData(vtkmprbasedata); 00347 vtkclipping3Ddataviewer_A->Configure(); 00348 _wxvtkclipping3Dview_A->SetVtkClipping3DDataViewer(vtkclipping3Ddataviewer_A); 00349 00350 _wxvtkmpr3Dview_A = new wxVtkMPR3DView( _wxvtk3Dbaseview_Clipping3D ); 00351 vtkMPR3DDataViewer *vtkmpr3Ddataviewer_A = new vtkMPR3DDataViewer(); 00352 vtkmpr3Ddataviewer_A->SetVtkMPRBaseData(vtkmprbasedata); 00353 vtkmpr3Ddataviewer_A->Configure(); 00354 _wxvtkmpr3Dview_A->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer_A); 00355 00356 //-- 00357 00358 wxWindow *window3D = _wxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor(); 00359 wxSplitterWindow *panelControlSplit = new wxSplitterWindow(panelClipping3D,-1); 00360 00361 // 00362 wxPanel *panelControl_A = new wxPanel(panelControlSplit,-1,wxDefaultPosition,wxSize(800,800)); 00363 00364 wxPanel *controlPanelMPR3D_A = _wxvtkmpr3Dview_A->CreateControlPanel(panelControl_A); 00365 wxPanel *controlPanelClipping3D_A = _wxvtkclipping3Dview_A->CreateControlPanel(panelControl_A); 00366 00367 _btnCutImageData = new wxCheckBox(panelControl_A,-1,_T("Cut Module")); 00368 Connect(_btnCutImageData->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxManualRegistration3D::OnCutImagaData ); 00369 00370 00371 // wxBoxSizer *sizerCtrol_A = new wxBoxSizer(wxVERTICAL); 00372 wxFlexGridSizer *sizerCtrol_A = new wxFlexGridSizer(1); 00373 00374 sizerCtrol_A->Add(controlPanelMPR3D_A , 1, wxALL|wxEXPAND, 2); 00375 sizerCtrol_A->Add(controlPanelClipping3D_A , 1, wxALL|wxEXPAND, 2); 00376 sizerCtrol_A->Add( _btnCutImageData , 1, wxALL, 2); 00377 00378 00379 panelControl_A->SetAutoLayout(true); 00380 panelControl_A->SetSizer(sizerCtrol_A); 00381 panelControl_A->SetSize(400,350); 00382 panelControl_A->Layout(); 00383 00384 00385 // 00386 _panelControl_B = new wxPanel(panelControlSplit,-1,wxDefaultPosition,wxSize(800,800)); 00387 00388 00389 panelControlSplit->SplitVertically(panelControl_A, _panelControl_B); 00390 panelControlSplit->SetMinimumPaneSize( 20 ); 00391 00392 wxBoxSizer *sizerCtrol = new wxBoxSizer(wxHORIZONTAL); 00393 sizerCtrol->Add(panelControlSplit , 1, wxALL|wxEXPAND, 2); 00394 00395 panelControlSplit->SetAutoLayout(true); 00396 panelControlSplit->SetSizer(sizerCtrol); 00397 // panelControlSplit->SetSize(400,350); 00398 panelControlSplit->Layout(); 00399 00400 int ww,hh; 00401 wxWindow *pp=this; 00402 while (pp->GetParent()!=NULL) pp=pp->GetParent(); 00403 pp->GetSize(&ww,&hh); 00404 00405 //EEDxx2.4 00406 // panelClipping3D -> SetMinimumPaneSize( -50 ); 00407 panelClipping3D -> SplitHorizontally( panelControlSplit,window3D/*, (int)(hh*0.20)*/ ); 00408 panelClipping3D -> SetMinimumPaneSize( 20 ); 00409 wxwindow=panelClipping3D; 00410 00411 wxBoxSizer *sizerH1 = new wxBoxSizer(wxHORIZONTAL); 00412 sizerH1->Add(wxwindow , 1, wxALL|wxEXPAND, 0); 00413 panel->SetAutoLayout(true); 00414 panel->SetSizer(sizerH1); 00415 panel->SetSize(400,400); 00416 panel->Layout(); 00417 00418 //EEDxx2.4 00419 // panel->FitInside(); 00420 // FitInside(); 00421 00422 return panel; 00423 }
wxPanel * wxManualRegistration3D::CreateRegistration3DControl | ( | wxWindow * | parent, | |
vtkMPRBaseData * | vtkmprbasedata | |||
) | [private] |
Definition at line 242 of file wxManualRegistration3D.cxx.
References _angAlfa, _angBeta, _angGama, _btnTrack, _posX, _posY, _posZ, _scaleX, _scaleY, _scaleZ, vtkMPRBaseData::GetMaxPositionX(), vtkMPRBaseData::GetMaxPositionY(), vtkMPRBaseData::GetMaxPositionZ(), OnPositionRotation(), and OnTracking().
00243 { 00244 wxPanel *panel = new wxPanel(parent,-1); 00245 00246 int maxX = vtkmprbasedata->GetMaxPositionX(); 00247 int maxY = vtkmprbasedata->GetMaxPositionY(); 00248 int maxZ = vtkmprbasedata->GetMaxPositionZ(); 00249 maxX=100; 00250 maxY=100; 00251 maxZ=100; 00252 00253 _posX = new wxSlider( panel, -1,0 , -maxX*2, maxX*2, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_AUTOTICKS |wxSL_LABELS ); 00254 _posY = new wxSlider( panel, -1,0 , -maxY*2, maxY*2, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_AUTOTICKS |wxSL_LABELS ); 00255 _posZ = new wxSlider( panel, -1,0 , -maxZ*2, maxZ*2, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_AUTOTICKS |wxSL_LABELS ); 00256 00257 _scaleX = new wxSlider( panel, -1,100 , 0, 200, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_AUTOTICKS |wxSL_LABELS ); 00258 _scaleY = new wxSlider( panel, -1,100 , 0, 200, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_AUTOTICKS |wxSL_LABELS ); 00259 _scaleZ = new wxSlider( panel, -1,100 , 0, 200, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_AUTOTICKS |wxSL_LABELS ); 00260 00261 00262 _angAlfa = new wxSlider( panel, -1,0 , -100, 100, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_AUTOTICKS |wxSL_LABELS ); 00263 _angBeta = new wxSlider( panel, -1,0 , -100, 100, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_AUTOTICKS |wxSL_LABELS ); 00264 _angGama = new wxSlider( panel, -1,0 , -100, 100, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_AUTOTICKS |wxSL_LABELS ); 00265 00266 00267 _btnTrack = new wxCheckBox(panel, -1,_T("Tracking")); 00268 00269 _posX->SetTickFreq( 10, 0 ); 00270 _posY->SetTickFreq( 10, 0 ); 00271 _posZ->SetTickFreq( 10, 0 ); 00272 00273 _angAlfa->SetTickFreq( 30, 0 ); 00274 _angBeta->SetTickFreq( 30, 0 ); 00275 _angGama->SetTickFreq( 30, 0 ); 00276 00277 00278 00279 00280 Connect(_posX->GetId() , wxEVT_COMMAND_SLIDER_UPDATED , (wxObjectEventFunction) &wxManualRegistration3D::OnPositionRotation ); 00281 Connect(_posY->GetId() , wxEVT_COMMAND_SLIDER_UPDATED , (wxObjectEventFunction) &wxManualRegistration3D::OnPositionRotation ); 00282 Connect(_posZ->GetId() , wxEVT_COMMAND_SLIDER_UPDATED , (wxObjectEventFunction) &wxManualRegistration3D::OnPositionRotation ); 00283 00284 Connect(_scaleX->GetId() , wxEVT_COMMAND_SLIDER_UPDATED , (wxObjectEventFunction) &wxManualRegistration3D::OnPositionRotation ); 00285 Connect(_scaleY->GetId() , wxEVT_COMMAND_SLIDER_UPDATED , (wxObjectEventFunction) &wxManualRegistration3D::OnPositionRotation ); 00286 Connect(_scaleZ->GetId() , wxEVT_COMMAND_SLIDER_UPDATED , (wxObjectEventFunction) &wxManualRegistration3D::OnPositionRotation ); 00287 00288 Connect(_angAlfa->GetId() , wxEVT_COMMAND_SLIDER_UPDATED , (wxObjectEventFunction) &wxManualRegistration3D::OnPositionRotation ); 00289 Connect(_angBeta->GetId() , wxEVT_COMMAND_SLIDER_UPDATED , (wxObjectEventFunction) &wxManualRegistration3D::OnPositionRotation ); 00290 Connect(_angGama->GetId() , wxEVT_COMMAND_SLIDER_UPDATED , (wxObjectEventFunction) &wxManualRegistration3D::OnPositionRotation ); 00291 00292 Connect(_btnTrack->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxManualRegistration3D::OnTracking ); 00293 00294 00295 wxBoxSizer *sizerH1 = new wxBoxSizer(wxHORIZONTAL); 00296 sizerH1->Add( _posX, 1, wxALL|wxEXPAND, 5); 00297 sizerH1->Add( _posY, 1, wxALL|wxEXPAND, 5); 00298 sizerH1->Add( _posZ, 1, wxALL|wxEXPAND, 5); 00299 00300 00301 wxBoxSizer *sizerH2 = new wxBoxSizer(wxHORIZONTAL); 00302 sizerH2->Add( _scaleX, 1, wxALL|wxEXPAND, 5); 00303 sizerH2->Add( _scaleY, 1, wxALL|wxEXPAND, 5); 00304 sizerH2->Add( _scaleZ, 1, wxALL|wxEXPAND, 5); 00305 00306 wxBoxSizer *sizerH3 = new wxBoxSizer(wxHORIZONTAL); 00307 sizerH3->Add( _angAlfa, 1, wxALL|wxEXPAND, 5); 00308 sizerH3->Add( _angBeta, 1, wxALL|wxEXPAND, 5); 00309 sizerH3->Add( _angGama, 1, wxALL|wxEXPAND, 5); 00310 00311 00312 wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); 00313 sizer->Add( sizerH1 , 1, wxALL|wxEXPAND, 0); 00314 sizer->Add( sizerH2 , 1, wxALL|wxEXPAND, 0); 00315 sizer->Add( sizerH3 , 1, wxALL|wxEXPAND, 0); 00316 sizer->Add( _btnTrack , 1, wxALL|wxEXPAND, 10); 00317 sizer->Add( new wxPanel(panel,-1) , 1, wxALL|wxEXPAND, 0); 00318 sizer->Add( new wxPanel(panel,-1) , 1, wxALL|wxEXPAND, 0); 00319 sizer->Add( new wxPanel(panel,-1) , 1, wxALL|wxEXPAND, 0); 00320 00321 panel->SetAutoLayout(true); 00322 panel->SetSizer(sizer); 00323 panel->SetSize(400,400); 00324 panel->Layout(); 00325 00326 return panel; 00327 }
wxManualRegistration3D::DECLARE_EVENT_TABLE | ( | ) | [private] |
bool wxManualRegistration3D::GetIfSecondVolumeExist | ( | ) |
Definition at line 469 of file wxManualRegistration3D.cxx.
References _wxvtkmpr3Dview_B.
00470 { 00471 bool result=false; 00472 if (_wxvtkmpr3Dview_B!=NULL) 00473 { 00474 result=true; 00475 } 00476 return result; 00477 }
void wxManualRegistration3D::OnCutImagaData | ( | wxCommandEvent & | event | ) |
Definition at line 479 of file wxManualRegistration3D.cxx.
References _btnCutImageData, _framePanelCutting, _panelCutting, _vtkmprbasedata_A, _wxvtk3Dbaseview_Clipping3D, wxPanelCuttingImageData::Configure(), RefreshView(), wxPanelCuttingImageData::RemoveActors(), wxPanelCuttingImageData::SetVtkMPRBaseData(), and wxPanelCuttingImageData::SetWxVtk3DBaseView().
Referenced by Create3DView().
00480 { 00481 if (_btnCutImageData->GetValue()==true){ 00482 _framePanelCutting = new wxFrame(this,-1,_T("Cutting Module"),wxDefaultPosition,wxDefaultSize,wxCAPTION|wxSTAY_ON_TOP| wxRESIZE_BORDER ); 00483 _framePanelCutting->SetSize(550,400); 00484 _panelCutting = new wxPanelCuttingImageData(_framePanelCutting); 00485 _panelCutting->SetWxVtk3DBaseView( _wxvtk3Dbaseview_Clipping3D ); 00486 _panelCutting->SetVtkMPRBaseData( _vtkmprbasedata_A ); 00487 _panelCutting->Configure( ); 00488 _framePanelCutting->Show(); 00489 // _panelCutting->RefreshView(); 00490 RefreshView(); 00491 } else { 00492 if (_framePanelCutting!=NULL){ 00493 _panelCutting->RemoveActors(); 00494 _framePanelCutting->Close(); 00495 _framePanelCutting = NULL; 00496 _panelCutting = NULL; 00497 } 00498 } 00499 }
void wxManualRegistration3D::OnPositionRotation | ( | wxScrollEvent & | event | ) |
Definition at line 329 of file wxManualRegistration3D.cxx.
References RefreshView().
Referenced by CreateRegistration3DControl().
00330 { 00331 00332 RefreshView(); 00333 }
void wxManualRegistration3D::OnRefreshView | ( | wxCommandEvent & | event | ) |
Definition at line 122 of file wxManualRegistration3D.cxx.
References RefreshView().
00123 { 00124 RefreshView(); 00125 }
void wxManualRegistration3D::OnTracking | ( | wxCommandEvent & | event | ) |
Definition at line 128 of file wxManualRegistration3D.cxx.
References _marimageData, _transform, _transformBak, _wxvtkmpr3Dview_A, _wxvtkmpr3Dview_B, marImageData::GetImageData(), wxVtkMPR3DView::GetVtkMPR3DDataViewer(), vtkMPR3DDataViewer::GetVtkMPRBaseData(), vtkMPRBaseData::GetX(), vtkMPRBaseData::GetY(), vtkBaseData::GetZ(), wxVtkMPR3DView::InitOrientationPointWidget(), wxVtkMPR3DView::TestLoic1(), xBak, yBak, and zBak.
Referenced by CreateRegistration3DControl().
00129 { 00130 if (_wxvtkmpr3Dview_B!=NULL){ 00131 _wxvtkmpr3Dview_B->InitOrientationPointWidget(); 00132 00133 double spc[3]; 00134 00135 this->_marimageData->GetImageData()->GetSpacing(spc); //image t=0 00136 00137 00138 xBak = spc[0] * this->_wxvtkmpr3Dview_B->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetX(); 00139 yBak = spc[1] * this->_wxvtkmpr3Dview_B->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetY(); 00140 zBak = spc[2] * this->_wxvtkmpr3Dview_B->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetZ(); 00141 00142 double mat[16]; 00143 mat[0]=_transform->GetMatrix()->GetElement(0,0); 00144 mat[1]=_transform->GetMatrix()->GetElement(0,1); 00145 mat[2]=_transform->GetMatrix()->GetElement(0,2); 00146 mat[3]=_transform->GetMatrix()->GetElement(0,3); 00147 00148 mat[4]=_transform->GetMatrix()->GetElement(1,0); 00149 mat[5]=_transform->GetMatrix()->GetElement(1,1); 00150 mat[6]=_transform->GetMatrix()->GetElement(1,2); 00151 mat[7]=_transform->GetMatrix()->GetElement(1,3); 00152 00153 mat[8]=_transform->GetMatrix()->GetElement(2,0); 00154 mat[9]=_transform->GetMatrix()->GetElement(2,1); 00155 mat[10]=_transform->GetMatrix()->GetElement(2,2); 00156 mat[11]=_transform->GetMatrix()->GetElement(2,3); 00157 00158 mat[12]=_transform->GetMatrix()->GetElement(3,0); 00159 mat[13]=_transform->GetMatrix()->GetElement(3,1); 00160 mat[14]=_transform->GetMatrix()->GetElement(3,2); 00161 mat[15]=_transform->GetMatrix()->GetElement(3,3); 00162 00163 _transformBak->SetMatrix(mat); 00164 } 00165 00166 // EED 25 Janvier 2005 TestLoic 00167 this->_wxvtkmpr3Dview_A->TestLoic1(); 00168 00169 00170 }
void wxManualRegistration3D::RefreshView | ( | ) |
Definition at line 174 of file wxManualRegistration3D.cxx.
References _angAlfa, _angBeta, _angGama, _btnTrack, _marimageData, _panelCutting, _posX, _posY, _posZ, _scaleX, _scaleY, _scaleZ, _transform, _transformBak, _wxvtk3Dbaseview_Clipping3D, _wxvtkclipping3Dview_A, _wxvtkclipping3Dview_B, _wxvtkmpr3Dview_A, _wxvtkmpr3Dview_B, marImageData::GetImageData(), vtkClipping3DDataViewer::GetTissueActor(), vtkMPRBaseData::GetTransformOrientation(), wxVtkClipping3DView::GetVtkClipping3DDataViewer(), wxVtkMPR3DView::GetVtkMPR3DDataViewer(), vtkMPR3DDataViewer::GetVtkMPRBaseData(), vtkMPRBaseData::GetX(), vtkMPRBaseData::GetY(), vtkBaseData::GetZ(), wxPanelCuttingImageData::RefreshView(), xBak, yBak, and zBak.
Referenced by AddSecondVolume(), OnCutImagaData(), OnPositionRotation(), and OnRefreshView().
00175 { 00176 double spc[3]; 00177 00178 if ( _wxvtkmpr3Dview_B!=NULL ) 00179 { 00180 if (_btnTrack->GetValue()==true) 00181 { 00182 00183 this->_marimageData->GetImageData()->GetSpacing(spc); // image t=0 00184 vtkTransform *m = this->_wxvtkmpr3Dview_B->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetTransformOrientation(); 00185 double x = spc[0] * this->_wxvtkmpr3Dview_B->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetX(); 00186 double y = spc[1] * this->_wxvtkmpr3Dview_B->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetY(); 00187 double z = spc[2] * this->_wxvtkmpr3Dview_B->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetZ(); 00188 double xx=this->_posX->GetValue()/30.0; 00189 double yy=this->_posY->GetValue()/30.0; 00190 double zz=this->_posZ->GetValue()/30.0; 00191 double sx=this->_scaleX->GetValue()/100.0; 00192 double sy=this->_scaleY->GetValue()/100.0; 00193 double sz=this->_scaleZ->GetValue()/100.0; 00194 _transform->Identity(); 00195 // _transform->Translate(x,y,z); 00196 00197 00198 00199 // _transform->Translate((x-xBak),(y-yBak),(z-zBak) ); 00200 // _transform->Translate( xBak , yBak , zBak ); 00201 _transform->Translate( xx , yy , zz ); 00202 _transform->Translate( x , y , z ); 00203 _transform->Concatenate( m->GetMatrix() ); 00204 _transform->RotateX( _angAlfa->GetValue()/30.0 ); 00205 _transform->RotateY( _angBeta->GetValue()/30.0 ); 00206 _transform->RotateZ( _angGama->GetValue()/30.0 ); 00207 _transform->Scale( sx,sy,sz ); 00208 _transform->Translate(-(xBak),-(yBak),-(zBak) ); 00209 00210 _transform->Concatenate( _transformBak->GetMatrix() ); 00211 00212 } 00213 00214 00215 00216 vtkClipping3DDataViewer *vtkclipping3Ddataviewer = _wxvtkclipping3Dview_B->GetVtkClipping3DDataViewer(); 00217 vtkActor *vtkactor; 00218 int i; 00219 for (i=0;i<4;i++) 00220 { 00221 vtkactor = vtkclipping3Ddataviewer->GetTissueActor(i); 00222 vtkactor->SetUserTransform( _transform ); 00223 } 00224 _wxvtkmpr3Dview_B -> RefreshView(); 00225 _wxvtkclipping3Dview_B -> Refresh(); 00226 } 00227 00228 _wxvtkmpr3Dview_A -> RefreshView(); 00229 _wxvtkclipping3Dview_A -> Refresh(); 00230 _wxvtk3Dbaseview_Clipping3D -> Refresh(); 00231 00232 if (_panelCutting!=NULL) 00233 { 00234 _panelCutting->RefreshView(); 00235 } 00236 00237 }
wxSlider* wxManualRegistration3D::_angAlfa [private] |
Definition at line 99 of file wxManualRegistration3D.h.
Referenced by CreateRegistration3DControl(), and RefreshView().
wxSlider* wxManualRegistration3D::_angBeta [private] |
Definition at line 100 of file wxManualRegistration3D.h.
Referenced by CreateRegistration3DControl(), and RefreshView().
wxSlider* wxManualRegistration3D::_angGama [private] |
Definition at line 101 of file wxManualRegistration3D.h.
Referenced by CreateRegistration3DControl(), and RefreshView().
wxCheckBox* wxManualRegistration3D::_btnCutImageData [private] |
Definition at line 87 of file wxManualRegistration3D.h.
Referenced by Create3DView(), and OnCutImagaData().
wxCheckBox* wxManualRegistration3D::_btnTrack [private] |
Definition at line 102 of file wxManualRegistration3D.h.
Referenced by CreateRegistration3DControl(), and RefreshView().
wxFrame* wxManualRegistration3D::_framePanelCutting [private] |
Definition at line 88 of file wxManualRegistration3D.h.
Referenced by OnCutImagaData().
Definition at line 104 of file wxManualRegistration3D.h.
Referenced by OnTracking(), and RefreshView().
wxPanel* wxManualRegistration3D::_panelControl_B [private] |
Definition at line 103 of file wxManualRegistration3D.h.
Referenced by AddPanelControl_B(), AddSecondVolume(), and Create3DView().
Definition at line 86 of file wxManualRegistration3D.h.
Referenced by OnCutImagaData(), and RefreshView().
wxSlider* wxManualRegistration3D::_posX [private] |
Definition at line 93 of file wxManualRegistration3D.h.
Referenced by CreateRegistration3DControl(), and RefreshView().
wxSlider* wxManualRegistration3D::_posY [private] |
Definition at line 94 of file wxManualRegistration3D.h.
Referenced by CreateRegistration3DControl(), and RefreshView().
wxSlider* wxManualRegistration3D::_posZ [private] |
Definition at line 95 of file wxManualRegistration3D.h.
Referenced by CreateRegistration3DControl(), and RefreshView().
wxSlider* wxManualRegistration3D::_scaleX [private] |
Definition at line 96 of file wxManualRegistration3D.h.
Referenced by CreateRegistration3DControl(), and RefreshView().
wxSlider* wxManualRegistration3D::_scaleY [private] |
Definition at line 97 of file wxManualRegistration3D.h.
Referenced by CreateRegistration3DControl(), and RefreshView().
wxSlider* wxManualRegistration3D::_scaleZ [private] |
Definition at line 98 of file wxManualRegistration3D.h.
Referenced by CreateRegistration3DControl(), and RefreshView().
vtkTransform* wxManualRegistration3D::_transform [private] |
Definition at line 83 of file wxManualRegistration3D.h.
Referenced by OnTracking(), and RefreshView().
vtkTransform* wxManualRegistration3D::_transformBak [private] |
Definition at line 84 of file wxManualRegistration3D.h.
Referenced by OnTracking(), and RefreshView().
Definition at line 81 of file wxManualRegistration3D.h.
Referenced by OnCutImagaData().
Definition at line 106 of file wxManualRegistration3D.h.
Referenced by AddPanelControl_B(), ConfigureVTK(), ConfigureVTK_B(), Create3DView(), OnCutImagaData(), RefreshView(), and ~wxManualRegistration3D().
Definition at line 108 of file wxManualRegistration3D.h.
Referenced by ConfigureVTK(), Create3DView(), RefreshView(), and ~wxManualRegistration3D().
Definition at line 110 of file wxManualRegistration3D.h.
Referenced by AddPanelControl_B(), ConfigureVTK_B(), RefreshView(), and ~wxManualRegistration3D().
Definition at line 107 of file wxManualRegistration3D.h.
Referenced by ConfigureVTK(), Create3DView(), OnTracking(), RefreshView(), and ~wxManualRegistration3D().
Definition at line 109 of file wxManualRegistration3D.h.
Referenced by AddPanelControl_B(), ConfigureVTK_B(), GetIfSecondVolumeExist(), OnTracking(), RefreshView(), and ~wxManualRegistration3D().
double wxManualRegistration3D::xBak [private] |
Definition at line 90 of file wxManualRegistration3D.h.
Referenced by OnTracking(), and RefreshView().
double wxManualRegistration3D::yBak [private] |
Definition at line 91 of file wxManualRegistration3D.h.
Referenced by OnTracking(), and RefreshView().
double wxManualRegistration3D::zBak [private] |
Definition at line 92 of file wxManualRegistration3D.h.
Referenced by OnTracking(), and RefreshView().