00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "wxQuantificationWidget_base.h"
00021 #include "../marDictionary.h"
00022 #include "../wxMaracasMPR.h"
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 long int startTimeCalcule;
00033 long int startTimeRI;
00034
00035
00036
00037
00038
00039
00040 wxPnlModifyContour::wxPnlModifyContour(wxWindow* parent, wxQuantificationWidget_base *quantificationWidget_base)
00041 : wxPanel(parent,-1){
00042
00043 marDictionary marDict;
00044 char tmp[256];
00045
00046 _quantificationWidget_base=quantificationWidget_base;
00047
00048
00049 wxStaticText *title = new wxStaticText(this,-1,wxString(marDict.GetString(803), wxConvUTF8));
00050
00051
00052
00053
00054 strcpy( tmp , marDict.GetString(820) ); strcat( tmp , "\n" ); strcat( tmp , marDict.GetString(825) );
00055 _newContour = new wxButton(this, -1, wxString(tmp, wxConvUTF8) ,wxPoint(0,0),wxSize(80,80));
00056 _fixContour = new wxButton(this, -1, wxString(marDict.GetString(830), wxConvUTF8) ,wxPoint(0,0),wxSize(80,80));
00057
00058
00059
00060
00061 _one = new wxStaticText(this,-1,wxString(marDict.GetString(805), wxConvUTF8) );
00062 _two = new wxStaticText(this,-1,wxString(marDict.GetString(810), wxConvUTF8) );
00063 _three = new wxStaticText(this,-1,wxString(marDict.GetString(815), wxConvUTF8) );
00064
00065 strcpy( tmp , "\n\n" );
00066 strcat( tmp , marDict.GetString(855) );
00067 strcat( tmp , "\n" );
00068 strcat( tmp , marDict.GetString(860) );
00069 _msg = new wxStaticText(this,-1,wxString(tmp, wxConvUTF8) );
00070
00071 wxFont font(12,wxDEFAULT ,wxNORMAL,wxBOLD);
00072 title -> SetFont(font);
00073 _one -> SetFont(font);
00074 _two -> SetFont(font);
00075 _three -> SetFont(font);
00076
00077
00078
00079
00080
00081
00082
00083
00084 _fixContour -> Disable();
00085
00086
00087
00088
00089 _two -> Disable();
00090 _three -> Disable();
00091 _msg -> Disable();
00092
00093
00094 Connect(_newContour->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlModifyContour::OnNewContour );
00095 Connect(_fixContour->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlModifyContour::OnFixContour );
00096
00097
00098
00099
00100
00101
00102 wxFlexGridSizer *sizer = new wxFlexGridSizer(1);
00103 wxFlexGridSizer *sizerAh= new wxFlexGridSizer(6);
00104 wxFlexGridSizer *sizerAv= new wxFlexGridSizer(1);
00105 wxFlexGridSizer *sizerBv= new wxFlexGridSizer(1);
00106
00107
00108
00109
00110
00111 sizerBv->Add(_fixContour , 1, wxALL|wxEXPAND, 6);
00112
00113
00114 sizerAh->Add(new wxStaticText(this,-1,_T(" ")) , 1, wxALL|wxEXPAND, 3);
00115 sizerAh->Add(_one , 1, wxALIGN_CENTER_HORIZONTAL, 3);
00116 sizerAh->Add(new wxStaticText(this,-1,_T(" ")) , 1, wxALL|wxEXPAND, 3);
00117 sizerAh->Add(_two , 1, wxALIGN_CENTER_HORIZONTAL, 3);
00118 sizerAh->Add(new wxStaticText(this,-1,_T(" ")) , 1, wxALL|wxEXPAND, 3);
00119 sizerAh->Add(_three , 1, wxALIGN_CENTER_HORIZONTAL, 3);
00120
00121 sizerAh->Add(new wxStaticText(this,-1,_T(" ")) , 1, wxALL|wxEXPAND, 3);
00122 sizerAh->Add(_newContour , 1, wxALL|wxEXPAND, 3);
00123 sizerAh->Add(new wxStaticText(this,-1,_T(" ")) , 1, wxALL|wxEXPAND, 3);
00124 sizerAh->Add(_msg , 1, wxALL|wxEXPAND, 3);
00125 sizerAh->Add(new wxStaticText(this,-1,_T(" ")) , 1, wxALL|wxEXPAND, 3);
00126 sizerAh->Add(sizerBv , 1, wxALL|wxEXPAND, 3);
00127
00128
00129
00130
00131
00132
00133
00134
00135 sizer->Add(title , 1, wxALL|wxEXPAND, 10);
00136 sizer->Add(sizerAh , 1, wxALL|wxEXPAND, 10);
00137
00138 this->SetSizer(sizer);
00139 this->SetSize(wxSize(400,400));
00140 }
00141
00142
00143 void wxPnlModifyContour::OnFixContour(wxCommandEvent& event){
00144 _fixContour -> Enable(false);
00145 _two -> Enable(false);
00146 _three -> Enable(false);
00147 _msg -> Enable(false);
00148 _quantificationWidget_base->SetManualContour_ReplaceContour();
00149 _quantificationWidget_base->SetManualContour_2DWorld(false);
00150 }
00151
00152 void wxPnlModifyContour::OnNewContour(wxCommandEvent& event){
00153
00154
00155
00156
00157 _fixContour -> Enable(true);
00158
00159 _two -> Enable(true);
00160 _three -> Enable(true);
00161 _msg -> Enable(true);
00162
00163
00164
00165
00166
00167
00168 _quantificationWidget_base->SetManualContour_AddPoint_2DWorld();
00169 _quantificationWidget_base->SetManualContour_2DWorld(false);
00170 _quantificationWidget_base->SetManualContour_2DWorld(true);
00171
00172 }
00173
00174
00175
00176
00177
00178
00179 wxPnlSearchStenosisAutomatic::wxPnlSearchStenosisAutomatic(wxWindow *parent, wxQuantificationWidget_base *quantificationWidget_base)
00180 :wxPanel(parent,-1){
00181 marDictionary marDict;
00182 char tmp[256];
00183
00184 _quantificationWidget_base=quantificationWidget_base;
00185 int wx_border = 5;
00186 wxPanel* _panelAutomatic=this;
00187 wxFlexGridSizer *sizerPanelAutomatic1 = new wxFlexGridSizer(7);
00188
00189
00190
00191
00192 strcpy( tmp , marDict.GetString(275) ); strcat( tmp , "\n" ); strcat( tmp , marDict.GetString(280) );
00193 _st1_text1 = new wxStaticText(_panelAutomatic,-1,wxString(tmp, wxConvUTF8) );
00194 _st1_next1 = new wxStaticText(_panelAutomatic,-1,_T(" "));
00195 _st1_next2 = new wxStaticText(_panelAutomatic,-1,_T(" "));
00196 _st1_next3 = new wxStaticText(_panelAutomatic,-1,_T(" "));
00197 _st1_cero = new wxStaticText(_panelAutomatic,-1,wxString(marDict.GetString(273), wxConvUTF8) );
00198 _st1_one = new wxStaticText(_panelAutomatic,-1,wxString(marDict.GetString(283), wxConvUTF8) );
00199 _st1_two = new wxStaticText(_panelAutomatic,-1,wxString(marDict.GetString(293), wxConvUTF8) );
00200 _st1_three = new wxStaticText(_panelAutomatic,-1,wxString(marDict.GetString(303), wxConvUTF8) );
00201 strcpy( tmp , marDict.GetString(285) ); strcat( tmp , "\n" ); strcat( tmp , marDict.GetString(290) );
00202 _bt1_HealthySlice = new wxButton(_panelAutomatic,-1,wxString(tmp, wxConvUTF8),wxPoint(0,0),wxSize(80,85));
00203 strcpy( tmp , marDict.GetString(295) ); strcat( tmp , "\n" ); strcat( tmp , marDict.GetString(300) );
00204 _bt1_EndRegion = new wxButton(_panelAutomatic,-1,wxString(tmp, wxConvUTF8),wxPoint(0,0),wxSize(80,85));
00205 strcpy( tmp , marDict.GetString(305) ); strcat( tmp , "\n" ); strcat( tmp , marDict.GetString(310) );
00206 _bt1_Start = new wxButton(_panelAutomatic,-1,wxString(tmp, wxConvUTF8),wxPoint(0,0),wxSize(80,85));
00207 wxStaticText *title = new wxStaticText(this,-1,wxString(marDict.GetString(270), wxConvUTF8));
00208
00209
00210 _panelSpecial = new wxPanel(_panelAutomatic,-1,wxDefaultPosition,wxSize(400,200));
00211 _st_BeginRegion = new wxStaticText(_panelSpecial,-1,_T("Begin Region : "));
00212 _st_EndRegion = new wxStaticText(_panelSpecial,-1,_T(" End Region : "));
00213 _sl_BeginRegion = new wxSlider(_panelSpecial, -1, 0, 0, 100, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS );
00214 _sl_EndRegion = new wxSlider(_panelSpecial, -1, 0, 0, 100, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS );
00215 _rb_surface = new wxRadioButton(_panelSpecial, -1, _T("Stenosis by Surface "), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
00216 _rb_diameter = new wxRadioButton(_panelSpecial, -1, _T("Stenosis by Diameter "), wxDefaultPosition, wxDefaultSize );
00217 _bt_MaxSurface = new wxButton(_panelSpecial,-1,_T("Find Max Surface"));
00218 wxButton *bt_AxisMPR = new wxButton(_panelSpecial,-1,_T("Axis MPR"));
00219
00220 _bt_plus = new wxButton(_panelAutomatic,-1,_T("+"),wxPoint(0,0),wxSize(15,15));
00221 _bt_plus->Show(true);
00222
00223
00224 Connect(_bt1_HealthySlice->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlSearchStenosisAutomatic::OnBtHealthySlice );
00225 Connect(_bt1_EndRegion->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlSearchStenosisAutomatic::OnBtEndRegion );
00226 Connect(_bt1_Start->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlSearchStenosisAutomatic::OnBtStart );
00227
00228 Connect(_sl_BeginRegion->GetId() , wxEVT_COMMAND_SLIDER_UPDATED , (wxObjectEventFunction) &wxPnlSearchStenosisAutomatic::OnBeginSlider );
00229 Connect(_sl_EndRegion->GetId() , wxEVT_COMMAND_SLIDER_UPDATED , (wxObjectEventFunction) &wxPnlSearchStenosisAutomatic::OnEndSlider );
00230 Connect(_bt_plus->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlSearchStenosisAutomatic::OnBtPlus );
00231 Connect(_bt_MaxSurface->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlSearchStenosisAutomatic::OnBtMaxSurf );
00232 Connect(bt_AxisMPR->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlSearchStenosisAutomatic::OnBtAxisMPR );
00233
00234 Connect(_rb_surface->GetId() , wxEVT_COMMAND_RADIOBUTTON_SELECTED , (wxObjectEventFunction) &wxPnlSearchStenosisAutomatic::OnRbArea );
00235 Connect(_rb_diameter->GetId() , wxEVT_COMMAND_RADIOBUTTON_SELECTED , (wxObjectEventFunction) &wxPnlSearchStenosisAutomatic::OnRbDiameter );
00236
00237
00238 wxFlexGridSizer *sizerPanelSpecial = new wxFlexGridSizer(1);
00239 wxFlexGridSizer *sizerPanelSpecial1 = new wxFlexGridSizer(2);
00240 wxFlexGridSizer *sizerPanelSpecial2 = new wxFlexGridSizer(2);
00241 wxFlexGridSizer *sizerPanelSpecial3 = new wxFlexGridSizer(3);
00242
00243 wxFlexGridSizer *sizerPanelAutomatic = new wxFlexGridSizer(1);
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260 wxFont font(12,wxDEFAULT ,wxNORMAL,wxBOLD);
00261 title ->SetFont(font);
00262
00263
00264 _st1_cero ->SetFont(font);
00265 _st1_one ->SetFont(font);
00266 _st1_two ->SetFont(font);
00267 _st1_three ->SetFont(font);
00268 _st1_next1 ->SetFont(font);
00269 _st1_next2 ->SetFont(font);
00270 _st1_next3 ->SetFont(font);
00271
00272 _st1_two ->Disable();
00273 _st1_three ->Disable();
00274
00275 _bt1_EndRegion->Disable();
00276 _bt1_Start->Disable();
00277
00278
00279
00280
00281
00282
00283
00284
00285
00286
00287 _sl_BeginRegion ->SetSize(330,30);
00288 _sl_EndRegion ->SetSize(330,30);
00289 _st_BeginRegion ->Disable();
00290 _st_EndRegion ->Disable();
00291 _sl_BeginRegion ->Disable();
00292 _sl_EndRegion ->Disable();
00293 _rb_diameter ->Disable();
00294 _rb_surface ->Disable();
00295 _bt_MaxSurface ->Disable();
00296
00297 _rb_surface->SetValue(true);
00298 _quantificationWidget_base->SetAnalysisTypeStenosis(2);
00299
00300
00301 sizerPanelAutomatic1->Add(new wxStaticText(_panelAutomatic,-1,_T(" ")) , 15, wxALIGN_CENTER_HORIZONTAL, wx_border);
00302 sizerPanelAutomatic1->Add(new wxStaticText(_panelAutomatic,-1,_T(" ")) , 15, wxALIGN_CENTER_HORIZONTAL, wx_border);
00303 sizerPanelAutomatic1->Add(new wxStaticText(_panelAutomatic,-1,_T(" ")) , 15, wxALIGN_CENTER_HORIZONTAL, wx_border);
00304 sizerPanelAutomatic1->Add(new wxStaticText(_panelAutomatic,-1,_T(" ")) , 15, wxALIGN_CENTER_HORIZONTAL, wx_border);
00305 sizerPanelAutomatic1->Add(new wxStaticText(_panelAutomatic,-1,_T(" ")) , 15, wxALIGN_CENTER_HORIZONTAL, wx_border);
00306 sizerPanelAutomatic1->Add(new wxStaticText(_panelAutomatic,-1,_T(" ")) , 15, wxALIGN_CENTER_HORIZONTAL, wx_border);
00307 sizerPanelAutomatic1->Add(new wxStaticText(_panelAutomatic,-1,_T(" ")) , 15, wxALIGN_CENTER_HORIZONTAL, wx_border);
00308
00309
00310 sizerPanelAutomatic1->Add(_st1_cero , 15, wxALIGN_CENTER_HORIZONTAL, wx_border);
00311 sizerPanelAutomatic1->Add(new wxStaticText(_panelAutomatic,-1,_T(" ")) , 15, wxALIGN_CENTER_HORIZONTAL, wx_border);
00312 sizerPanelAutomatic1->Add(_st1_one , 15, wxALIGN_CENTER_HORIZONTAL, wx_border);
00313 sizerPanelAutomatic1->Add(new wxStaticText(_panelAutomatic,-1,_T(" ")) , 15, wxALIGN_CENTER_HORIZONTAL, wx_border);
00314 sizerPanelAutomatic1->Add(_st1_two , 15, wxALIGN_CENTER_HORIZONTAL, wx_border);
00315 sizerPanelAutomatic1->Add(new wxStaticText(_panelAutomatic,-1,_T(" ")) , 15, wxALIGN_CENTER_HORIZONTAL, wx_border);
00316 sizerPanelAutomatic1->Add(_st1_three , 15, wxALIGN_CENTER_HORIZONTAL, wx_border);
00317
00318 sizerPanelAutomatic1->Add(_st1_text1 , 15, wxALIGN_CENTRE_VERTICAL|wxALIGN_CENTER_HORIZONTAL, wx_border);
00319 sizerPanelAutomatic1->Add(_st1_next1 , 15, wxALIGN_CENTRE_VERTICAL|wxALIGN_CENTER_HORIZONTAL, wx_border);
00320 sizerPanelAutomatic1->Add(_bt1_HealthySlice , 15, wxALIGN_CENTRE_VERTICAL|wxALIGN_CENTER_HORIZONTAL, wx_border);
00321 sizerPanelAutomatic1->Add(_st1_next2 , 15, wxALIGN_CENTRE_VERTICAL|wxALIGN_CENTER_HORIZONTAL, wx_border);
00322 sizerPanelAutomatic1->Add(_bt1_EndRegion , 15, wxALIGN_CENTRE_VERTICAL|wxALIGN_CENTER_HORIZONTAL, wx_border);
00323 sizerPanelAutomatic1->Add(_st1_next3 , 15, wxALIGN_CENTRE_VERTICAL|wxALIGN_CENTER_HORIZONTAL, wx_border);
00324 sizerPanelAutomatic1->Add(_bt1_Start , 15, wxALIGN_CENTRE_VERTICAL|wxALIGN_CENTER_HORIZONTAL, wx_border);
00325
00326
00327 sizerPanelSpecial1->Add(_rb_surface ,1 ,wxALL ,0);
00328 sizerPanelSpecial1->Add(_rb_diameter ,1 ,wxALL ,0);
00329 sizerPanelSpecial2->Add(_st_BeginRegion ,1 ,wxALL ,0);
00330 sizerPanelSpecial2->Add(_sl_BeginRegion ,1 ,wxALL|wxGROW ,0);
00331 sizerPanelSpecial2->Add(_st_EndRegion ,1 ,wxALL ,0);
00332 sizerPanelSpecial2->Add(_sl_EndRegion ,1 ,wxALL|wxGROW ,0);
00333 sizerPanelSpecial3->Add(_bt_MaxSurface ,1 ,wxALL ,0);
00334 sizerPanelSpecial3->Add( bt_AxisMPR ,1 ,wxALL ,0);
00335
00336
00337 sizerPanelSpecial2->AddGrowableCol(1);
00338
00339
00340 sizerPanelSpecial->Add(sizerPanelSpecial1 ,1 ,wxALL|wxALIGN_RIGHT , 0 );
00341 sizerPanelSpecial->Add(sizerPanelSpecial2 ,1 ,wxALL|wxGROW , 0 );
00342 sizerPanelSpecial->Add(sizerPanelSpecial3 ,1 ,wxALL , 0 );
00343 _panelSpecial->SetSizer(sizerPanelSpecial);
00344 _panelSpecial->SetAutoLayout(true);
00345 _panelSpecial->SetSize( sizerPanelSpecial->GetMinSize() );
00346
00347 sizerPanelAutomatic->Add(title ,15, wxALL , 10);
00348 sizerPanelAutomatic->Add(sizerPanelAutomatic1 ,15, wxALIGN_CENTRE_VERTICAL|wxALIGN_CENTER_HORIZONTAL , 10);
00349 sizerPanelAutomatic->Add(_bt_plus ,15, wxALL , 0);
00350 sizerPanelAutomatic->Add(_panelSpecial ,15, wxALL|wxGROW , 0);
00351 _panelAutomatic->SetSizer(sizerPanelAutomatic);
00352 _panelAutomatic->SetAutoLayout(true);
00353
00354 _panelSpecial->Show(true);
00355
00356 _panelAutomatic->SetSize(400,270);
00357 _panelAutomatic->SetSize( sizerPanelAutomatic->GetMinSize() );
00358 }
00359
00360
00361
00362 void wxPnlSearchStenosisAutomatic::SetRange(int min, int max)
00363 {
00364 _sl_BeginRegion->SetRange(min,max);
00365 _sl_EndRegion->SetRange(min,max);
00366 }
00367
00368
00369
00370 void wxPnlSearchStenosisAutomatic::OnBtHealthySlice(wxCommandEvent& event){
00371
00372 _st1_two -> Enable();
00373 _bt1_EndRegion -> Enable();
00374 _st_BeginRegion -> Enable();
00375 _sl_BeginRegion -> Enable();
00376 int slice=_quantificationWidget_base->GetActualSlice();
00377 _quantificationWidget_base->SetHealthySlice(slice);
00378
00379 int startSlice,endSlice;
00380 _quantificationWidget_base->GetSliceLimites(0,startSlice,endSlice);
00381 if ((_panelSpecial->IsShown()==false) || (startSlice==-1)){
00382 _quantificationWidget_base->Set3DStartRegionSliceActor( 0, slice );
00383 _quantificationWidget_base->Show3DStartRegionSliceActor(0);
00384 _sl_BeginRegion ->SetValue(slice);
00385 _quantificationWidget_base->RefreshAxis();
00386 }
00387 }
00388
00389 void wxPnlSearchStenosisAutomatic::OnBtEndRegion(wxCommandEvent& event){
00390 _st1_three -> Enable();
00391 _bt1_Start -> Enable();
00392 _st_EndRegion -> Enable();
00393 _sl_EndRegion -> Enable();
00394 _rb_diameter -> Enable();
00395 _rb_surface -> Enable();
00396 _bt_MaxSurface -> Enable();
00397 int slice=_quantificationWidget_base->GetActualSlice();
00398 _quantificationWidget_base->Set3DEndRegionSliceActor( 0, slice );
00399 _quantificationWidget_base->Show3DEndRegionSliceActor(0);
00400 _sl_EndRegion->SetValue(slice);
00401 _quantificationWidget_base->RefreshAxis();
00402 }
00403
00404
00405 void wxPnlSearchStenosisAutomatic::OnBtStart(wxCommandEvent& event)
00406 {
00407 _quantificationWidget_base->DetectHealthySickSlice( true, false );
00408 }
00409
00410
00411
00412
00413 void wxPnlSearchStenosisAutomatic::OnBtAxisMPR(wxCommandEvent& event){
00414 wxBusyCursor wait;
00415 wxFrame *frame = new wxFrame(this,-1,_T("MPR Axe"),wxDefaultPosition,wxDefaultSize,wxDEFAULT_FRAME_STYLE|wxSTAY_ON_TOP);
00416 int wz1 = _sl_BeginRegion->GetValue();
00417 int wz2 = _sl_EndRegion->GetValue();
00418 if (wz2<wz1)
00419 {
00420 int tmp = wz1;
00421 wz1 = wz2;
00422 wz2 = tmp;
00423 }
00424
00425 kVolume *vol = _quantificationWidget_base->GetVolumeAxisExtended(wz1,wz2);
00426
00427
00428 wxMaracasMPR *wxmaracasMPR = new wxMaracasMPR( frame , new marImageData( vol->castVtk() ) , 1);
00429
00430
00431
00432 vtkPlane2DView *planeView = wxmaracasMPR->GetVtkPlane2DView();
00433 planeView->SetImgSize(100);
00434 wxmaracasMPR->ConfigureVTK();
00435 frame->SetSize(600,600);
00436 frame->Show();
00437 }
00438
00439
00440 void wxPnlSearchStenosisAutomatic::OnBtPlus(wxCommandEvent& event){
00441 if (_panelSpecial->IsShown()==true){
00442 _bt_plus->SetLabel(_T("+"));
00443 _panelSpecial->Show(false);
00444 } else {
00445 _bt_plus->SetLabel(_T("-"));
00446
00447 int startSlice,endSlice;
00448 _quantificationWidget_base->GetSliceLimites(0,startSlice,endSlice);
00449 int maxSlices = _quantificationWidget_base->GetMaxActualSlice();
00450 _sl_BeginRegion->SetRange(0,maxSlices);
00451 _sl_BeginRegion->SetValue(startSlice);
00452 _sl_EndRegion->SetRange(0,maxSlices);
00453 _sl_EndRegion->SetValue(endSlice);
00454 _quantificationWidget_base->RefreshAxis();
00455
00456 _panelSpecial->Show(true);
00457 }
00458 }
00459
00460 void wxPnlSearchStenosisAutomatic::OnBeginSlider(wxScrollEvent& event){
00461 _quantificationWidget_base->Set3DStartRegionSliceActor( 0, _sl_BeginRegion->GetValue() );
00462 _quantificationWidget_base->Show3DStartRegionSliceActor( 0 );
00463 _quantificationWidget_base->RefreshAxis();
00464 }
00465
00466 void wxPnlSearchStenosisAutomatic::OnEndSlider(wxScrollEvent& event){
00467 _quantificationWidget_base->Set3DEndRegionSliceActor( 0, _sl_EndRegion->GetValue() );
00468 _quantificationWidget_base->Show3DEndRegionSliceActor( 0 );
00469 _quantificationWidget_base->RefreshAxis();
00470 }
00471
00472 void wxPnlSearchStenosisAutomatic::OnBtMaxSurf(wxCommandEvent& event){
00473 _quantificationWidget_base->DetectHealthySickSlice( false, true );
00474 }
00475
00476 void wxPnlSearchStenosisAutomatic::OnRbArea(wxCommandEvent& event){
00477 _quantificationWidget_base->SetAnalysisTypeStenosis( 2 );
00478 }
00479
00480 void wxPnlSearchStenosisAutomatic::OnRbDiameter(wxCommandEvent& event){
00481 _quantificationWidget_base->SetAnalysisTypeStenosis( 1 );
00482 }
00483
00484
00485
00486
00487
00488
00489
00490
00491
00492
00493
00494 wxPnlSearchStenosisManual::wxPnlSearchStenosisManual(wxWindow *parent, wxQuantificationWidget_base *quantificationWidget_base)
00495 :wxPanel(parent,-1){
00496 marDictionary marDict;
00497 char tmp[256];
00498
00499 _quantificationWidget_base=quantificationWidget_base;
00500 wxPanel* _panelManual=this;
00501 wxFlexGridSizer *sizerPanelManual = new wxFlexGridSizer(1);
00502 wxFlexGridSizer *sizerPanelManual1 = new wxFlexGridSizer(1);
00503 wxFlexGridSizer *sizerPanelManual2 = new wxFlexGridSizer(5);
00504
00505
00506
00507
00508 strcpy( tmp , marDict.GetString(330) ); strcat( tmp , "\n" ); strcat( tmp , marDict.GetString(335) );
00509 _st2_text1 = new wxStaticText(_panelManual,-1,wxString(tmp, wxConvUTF8));
00510 strcpy( tmp , marDict.GetString(340) ); strcat( tmp , "\n" ); strcat( tmp , marDict.GetString(345) );
00511 _st2_text2 = new wxStaticText(_panelManual,-1,wxString(tmp, wxConvUTF8));
00512 _st2_next1 = new wxStaticText(_panelManual,-1,_T(" "));
00513 _st2_next2 = new wxStaticText(_panelManual,-1,_T(" "));
00514 _st2_cero = new wxStaticText(_panelManual,-1, wxString(marDict.GetString(328), wxConvUTF8) );
00515 _st2_one = new wxStaticText(_panelManual,-1, wxString(marDict.GetString(338), wxConvUTF8) );
00516 _st2_two = new wxStaticText(_panelManual,-1, wxString(marDict.GetString(348), wxConvUTF8) );
00517 strcpy( tmp , marDict.GetString(350) ); strcat( tmp , "\n" ); strcat( tmp , marDict.GetString(355) );
00518 _bt2_HealthySlice = new wxButton(_panelManual,-1,wxString(tmp, wxConvUTF8),wxPoint(0,0),wxSize(85,85));
00519 wxStaticText *title = new wxStaticText(this,-1,wxString( marDict.GetString(325) , wxConvUTF8 ));
00520
00521 Connect(_bt2_HealthySlice->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlSearchStenosisManual::OnBtHealthySlice );
00522
00523
00524
00525
00526
00527
00528
00529
00530
00531
00532
00533 wxFont font(12,wxDEFAULT ,wxNORMAL,wxBOLD);
00534 title ->SetFont(font);
00535
00536
00537 _st2_cero ->SetFont(font);
00538 _st2_one ->SetFont(font);
00539 _st2_two ->SetFont(font);
00540 _st2_next1 ->SetFont(font);
00541 _st2_next2 ->SetFont(font);
00542
00543 _st2_two->Disable();
00544 _st2_text2->Disable();
00545
00546 sizerPanelManual1->Add( title, 15, wxALL, 10 );
00547
00548
00549 sizerPanelManual2->Add( new wxStaticText(_panelManual,-1,_T(" ")) , 15, wxALIGN_CENTER_HORIZONTAL, 10);
00550 sizerPanelManual2->Add( new wxStaticText(_panelManual,-1,_T(" ")) , 15, wxALIGN_CENTER_HORIZONTAL, 10);
00551 sizerPanelManual2->Add( new wxStaticText(_panelManual,-1,_T(" ")) , 15, wxALIGN_CENTER_HORIZONTAL, 10);
00552 sizerPanelManual2->Add( new wxStaticText(_panelManual,-1,_T(" ")) , 15, wxALIGN_CENTER_HORIZONTAL, 10);
00553 sizerPanelManual2->Add( new wxStaticText(_panelManual,-1,_T(" ")) , 15, wxALIGN_CENTER_HORIZONTAL, 10);
00554
00555 sizerPanelManual2->Add(_st2_cero , 15, wxALIGN_CENTER_HORIZONTAL, 10);
00556 sizerPanelManual2->Add( new wxStaticText(_panelManual,-1,_T(" ")) , 15, wxALIGN_CENTER_HORIZONTAL, 10);
00557 sizerPanelManual2->Add(_st2_one , 15, wxALIGN_CENTER_HORIZONTAL, 10);
00558 sizerPanelManual2->Add( new wxStaticText(_panelManual,-1,_T(" ")) , 15, wxALIGN_CENTER_HORIZONTAL, 10);
00559 sizerPanelManual2->Add(_st2_two , 15, wxALIGN_CENTER_HORIZONTAL, 10);
00560
00561 sizerPanelManual2->Add(_st2_text1 , 15, wxALIGN_CENTRE_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 10);
00562 sizerPanelManual2->Add(_st2_next1 , 15, wxALIGN_CENTRE_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 10);
00563 sizerPanelManual2->Add(_bt2_HealthySlice, 15, wxALIGN_CENTRE_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 10);
00564 sizerPanelManual2->Add(_st2_next2 , 15, wxALIGN_CENTRE_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 10);
00565 sizerPanelManual2->Add(_st2_text2 , 15, wxALIGN_CENTRE_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 10);
00566
00567 sizerPanelManual->Add(sizerPanelManual1);
00568 sizerPanelManual->Add(sizerPanelManual2);
00569
00570
00571 _panelManual->SetSizer(sizerPanelManual);
00572 _panelManual->SetAutoLayout(true);
00573 _panelManual->SetSize(400,300);
00574 }
00575
00576 void wxPnlSearchStenosisManual::OnBtHealthySlice(wxCommandEvent& event){
00577
00578 _st2_two ->Enable();
00579 _st2_text2 ->Enable();
00580 _quantificationWidget_base->SetHealthySlice();
00581 }
00582
00583
00584
00585
00586
00587
00588 wxPnlSearchStenosis::wxPnlSearchStenosis(wxWindow* parent, wxQuantificationWidget_base *quantificationWidget_base)
00589 : wxPanel(parent,-1){
00590 marDictionary marDict;
00591 _quantificationWidget_base=quantificationWidget_base;
00592
00593
00594
00595 wxFlexGridSizer *axis1 = new wxFlexGridSizer(2);
00596 wxFlexGridSizer *sizer = new wxFlexGridSizer(1);
00597 wxRadioButton *rb_automatique = new wxRadioButton(this,-1,wxString(marDict.GetString(315), wxConvUTF8), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
00598 wxRadioButton *rb_manual = new wxRadioButton(this,-1,wxString(marDict.GetString(320), wxConvUTF8), wxDefaultPosition, wxDefaultSize );
00599
00600 Connect(rb_automatique->GetId() , wxEVT_COMMAND_RADIOBUTTON_SELECTED , (wxObjectEventFunction) &wxPnlSearchStenosis::OnRbAutomatic );
00601 Connect(rb_manual->GetId() , wxEVT_COMMAND_RADIOBUTTON_SELECTED , (wxObjectEventFunction) &wxPnlSearchStenosis::OnRbManual );
00602
00603 rb_automatique->SetValue(true);
00604
00605
00606
00607
00608 wxPanel *panelWork = new wxPanel(this,-1);
00609 _panelAutomatic = new wxPnlSearchStenosisAutomatic(panelWork,_quantificationWidget_base);
00610 _panelManual = new wxPnlSearchStenosisManual(panelWork,_quantificationWidget_base);
00611 panelWork->SetSize(_panelAutomatic->GetSize());
00612
00613 _panelAutomatic->Show(true);
00614 _panelManual->Show(false);
00615
00616 axis1->Add(rb_automatique);
00617 axis1->Add(rb_manual);
00618
00619 sizer->Add(panelWork,1, wxALL|wxEXPAND, 0);
00620 sizer->Add(axis1 ,1, wxALL|wxALIGN_RIGHT , 0);
00621 this->SetSizer(sizer);
00622 this->SetAutoLayout(true);
00623 this->SetSize(wxSize(400,600));
00624 this->SetSize( sizer->GetMinSize() );
00625 }
00626
00627 void wxPnlSearchStenosis::OnRbAutomatic(wxCommandEvent& event){
00628 _panelAutomatic->Show(true);
00629 _panelManual->Show(false);
00630 _quantificationWidget_base->Show3DStartRegionSliceActor( 0 );
00631 _quantificationWidget_base->Show3DEndRegionSliceActor( 0 );
00632 }
00633
00634 void wxPnlSearchStenosis::OnRbManual(wxCommandEvent& event){
00635 _panelAutomatic->Show(false);
00636 _panelManual->Show(true);
00637 _quantificationWidget_base->Hide3DStartRegionSliceActor( 0 );
00638 _quantificationWidget_base->Hide3DEndRegionSliceActor( 0 );
00639 }
00640
00641 wxPnlSearchStenosisAutomatic* wxPnlSearchStenosis::GetPanelAutomatic(){
00642 return _panelAutomatic;
00643 }
00644
00645
00646
00647
00648
00649
00650
00651 wxPanelSizeHealthyRegion::wxPanelSizeHealthyRegion(wxWindow* parent, wxQuantificationWidget_base *quantificationWidget_base)
00652 : wxPanel(parent,-1){
00653 marDictionary marDict;
00654
00655
00656 _quantificationWidget_base = quantificationWidget_base;
00657 int maxSliderSize = 30;
00658 int sizeHealthyRegion = 0;
00659 sizeHealthyRegion = _quantificationWidget_base->GetSizeHealthyRegion();
00660
00661 wxFlexGridSizer *sizer = new wxFlexGridSizer(1);
00662 wxFlexGridSizer *sizer1 = new wxFlexGridSizer(1);
00663 wxFlexGridSizer *sizer2 = new wxFlexGridSizer(2);
00664
00665
00666
00667
00668 wxStaticText *st_Title = new wxStaticText( this, -1,wxString(marDict.GetString(370), wxConvUTF8),wxPoint(0,0));
00669 wxStaticText *st_Size = new wxStaticText( this, -1, wxString(marDict.GetString(373), wxConvUTF8) );
00670 _sl_Size = new wxSlider( this, -1, sizeHealthyRegion, 0, maxSliderSize, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS );
00671 wxButton *buttonRefresh = new wxButton( this, -1, wxString(marDict.GetString(375), wxConvUTF8));
00672 wxStaticText *title = new wxStaticText( this, -1,wxString(marDict.GetString(365), wxConvUTF8));
00673
00674
00675 wxFont font(12,wxDEFAULT ,wxNORMAL,wxBOLD);
00676 title ->SetFont(font);
00677
00678
00679
00680 Connect(buttonRefresh->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPanelSizeHealthyRegion::OnButtonRefresh );
00681 sizer1->Add( title, 15, wxALL, 10 );
00682
00683 sizer2->Add( new wxStaticText( this, -1,_T(" "),wxPoint(0,0)) );
00684 sizer2->Add( st_Title );
00685
00686 sizer2->Add( new wxStaticText( this, -1,_T(" "),wxPoint(0,0)) );
00687 sizer2->Add( new wxStaticText( this, -1,_T(" "),wxPoint(0,0)) );
00688
00689 sizer2->Add( st_Size );
00690 sizer2->Add( _sl_Size ,1,wxALL|wxGROW);
00691
00692 sizer2->AddGrowableCol(1);
00693
00694 sizer2->Add( new wxStaticText( this, -1,_T(" "),wxPoint(0,0)) );
00695 sizer2->Add( new wxStaticText( this, -1,_T(" "),wxPoint(0,0)) );
00696
00697 sizer2->Add( new wxStaticText( this, -1,_T(" "),wxPoint(0,0)) );
00698 sizer2->Add( buttonRefresh );
00699
00700 sizer->Add( sizer1 );
00701 sizer->Add( sizer2 );
00702
00703 this->SetSizer(sizer);
00704 this->SetAutoLayout(true);
00705 this->SetSize(200,400);
00706 }
00707
00708 void wxPanelSizeHealthyRegion::OnButtonRefresh(wxScrollEvent& event){
00709 _quantificationWidget_base->SetSizeHealthyRegion( _sl_Size->GetValue() );
00710 int healthySlice=_quantificationWidget_base->GetHealthySlice();
00711 if (healthySlice!=-1) {
00712 _quantificationWidget_base->SetHealthySlice( healthySlice );
00713 }
00714 }
00715
00716
00717
00718
00719
00720
00721 wxPanelControlsHealthySickSlice2::wxPanelControlsHealthySickSlice2(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base)
00722 : wxPanel(parent,-1){
00723 marDictionary marDict;
00724
00725
00726
00727
00728
00729
00730 wxNotebook *wxnotbook = new wxNotebook(this, -1);
00731
00732
00733
00734 wxpnlsearchstenosis = new wxPnlSearchStenosis( wxnotbook , quantificationWidget_base);
00735 wxPanelSizeHealthyRegion *page2 = new wxPanelSizeHealthyRegion (wxnotbook , quantificationWidget_base);
00736 wxPnlModifyContour *page3 = new wxPnlModifyContour( wxnotbook , quantificationWidget_base);
00737 wxnotbook->AddPage(wxpnlsearchstenosis, wxString(marDict.GetString(265), wxConvUTF8) );
00738 wxnotbook->AddPage(page2, wxString(marDict.GetString(360), wxConvUTF8) );
00739 wxnotbook->AddPage(page3, wxString(marDict.GetString(800), wxConvUTF8) );
00740 wxnotbook->SetSize(400,315);
00741
00742
00743
00744
00745 wxFlexGridSizer *sizer = new wxFlexGridSizer(1);
00746 sizer->Add(wxnotbook, 1, wxALL|wxEXPAND, 0);
00747 this->SetSizer(sizer);
00748 this->SetAutoLayout(true);
00749 this->Layout();
00750 this->SetSize(400,315);
00751
00752
00753 }
00754
00755
00756 wxPnlSearchStenosis *wxPanelControlsHealthySickSlice2::GetPnlSearStenosis()
00757 {
00758 return wxpnlsearchstenosis;
00759 }
00760
00761
00762
00763
00764 wxPnlContourControl::wxPnlContourControl(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base)
00765 :wxPanel(parent,-1){
00766
00767 marDictionary marDict;
00768
00769 _quantificationWidget_base=quantificationWidget_base;
00770
00771
00772
00773 wxStaticText *title = new wxStaticText(this,-1,wxString(marDict.GetString(940), wxConvUTF8));
00774
00775
00776
00777
00778
00779
00780 wxFont font(12,wxDEFAULT ,wxNORMAL,wxBOLD);
00781 title -> SetFont(font);
00782
00783 _sl_Discontinuity = new wxSlider(this, -1, 10, 0, 20, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS);
00784 _sl_LumenPercentage = new wxSlider(this, -1, 86, 0, 100, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS);
00785 _sl_CalcPercentage = new wxSlider(this, -1, 90, 0, 100, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS);
00786
00787
00788
00789
00790
00791
00792 _sl_Discontinuity->SetSize(300,16);
00793 _sl_LumenPercentage->SetSize(300,16);
00794 _sl_CalcPercentage->SetSize(300,16);
00795
00796 _st_Discontinuity = new wxStaticText(this, -1, wxString(marDict.GetString(925), wxConvUTF8) );
00797 _st_LumenPercentage = new wxStaticText(this, -1, wxString(marDict.GetString(930), wxConvUTF8) );
00798 _st_CalcPercentage = new wxStaticText(this, -1, wxString(marDict.GetString(935), wxConvUTF8) );
00799
00800
00801 btnCalibration = new wxButton( this, -1, _T("Calibrate"),wxPoint(0,0),wxSize(92,20));
00802 btnFile = new wxButton( this, -1, _T("Generate File"),wxPoint(0,0),wxSize(92,20));
00803
00804
00805
00806
00807
00808
00809
00810 Connect(_sl_Discontinuity->GetId() , wxEVT_SCROLL_THUMBRELEASE , (wxObjectEventFunction) &wxPnlContourControl::OnSliderDiscontinuityScroll );
00811 Connect(_sl_LumenPercentage->GetId() , wxEVT_SCROLL_THUMBRELEASE , (wxObjectEventFunction) &wxPnlContourControl::OnSliderLumenPercentageScroll );
00812 Connect(_sl_CalcPercentage->GetId() , wxEVT_SCROLL_THUMBRELEASE , (wxObjectEventFunction) &wxPnlContourControl::OnSliderCalcPercentageScroll );
00813 Connect(btnCalibration->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlContourControl::OnCalibration );
00814 Connect(btnFile->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlContourControl::OnFile );
00815
00816 wxFlexGridSizer *sizer = new wxFlexGridSizer(1);
00817
00818 wxFlexGridSizer *axe1 = new wxFlexGridSizer(2);
00819 wxFlexGridSizer *axe2 = new wxFlexGridSizer(2);
00820 wxFlexGridSizer *axe3 = new wxFlexGridSizer(2);
00821
00822
00823 axe1->Add(_st_Discontinuity , 1, wxALL|wxEXPAND, 0);
00824 axe1->Add(_sl_Discontinuity , 1, wxALL|wxEXPAND, 0);
00825
00826 axe2->Add(_st_LumenPercentage , 1, wxALL|wxEXPAND, 0);
00827 axe2->Add(_sl_LumenPercentage , 1, wxALL|wxEXPAND, 0);
00828
00829 axe3->Add(_st_CalcPercentage , 1, wxALL|wxEXPAND, 0);
00830 axe3->Add(_sl_CalcPercentage , 1, wxALL|wxEXPAND, 0);
00831
00832 sizer->Add(title , 1, wxALL|wxEXPAND, 10);
00833 sizer->Add(axe1, 2, wxALL|wxEXPAND, 10);
00834 sizer->Add(axe2, 2, wxALL|wxEXPAND, 10);
00835 sizer->Add(axe3, 2, wxALL|wxEXPAND, 10);
00836 sizer->Add(btnCalibration, 2, wxALL|wxEXPAND, 10);
00837 sizer->Add(btnFile, 2, wxALL|wxEXPAND, 10);
00838
00839 this->SetSizer(sizer);
00840 this->SetSize(wxSize(400,400));
00841
00842 }
00843
00844 void wxPnlContourControl::OnSliderDiscontinuityScroll(wxScrollEvent& event)
00845 {
00846
00847 _quantificationWidget_base->OnSliderDiscontinuityScroll(event.GetPosition());
00848
00849 }
00850
00851 void wxPnlContourControl::OnSliderLumenPercentageScroll(wxScrollEvent& event)
00852 {
00853
00854 _quantificationWidget_base->OnSliderLumenPercentageScroll(event.GetPosition());
00855
00856 }
00857
00858 void wxPnlContourControl::OnSliderCalcPercentageScroll(wxScrollEvent& event)
00859 {
00860 _quantificationWidget_base->OnSliderCalcPercentageScroll(event.GetPosition());
00861 }
00862
00863
00864 void wxPnlContourControl::OnCalibration(wxScrollEvent& event)
00865 {
00866 _quantificationWidget_base->OnCalibration();
00867 }
00868
00869
00870 void wxPnlContourControl::OnFile(wxScrollEvent& event)
00871 {
00872 _quantificationWidget_base->OnFile();
00873 }
00874
00875
00876
00877
00878 wxPnlManualContour::wxPnlManualContour(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base)
00879 :wxPanel(parent,-1){
00880
00881 marDictionary marDict;
00882 _quantificationWidget_base=quantificationWidget_base;
00883
00884
00885
00886
00887 wxStaticText *title = new wxStaticText(this,-1,wxString(marDict.GetString(803), wxConvUTF8));
00888
00889
00890
00891 wxFont font(12,wxDEFAULT ,wxNORMAL,wxBOLD);
00892 title -> SetFont(font);
00893
00894
00895
00896
00897
00898
00899 btnContourWall = new wxButton( this, -1, _T("External wall \ncontour"),wxPoint(0,0),wxSize(92,40));
00900 btnContourLumen = new wxButton( this, -1, _T("Lumen contours"),wxPoint(0,0),wxSize(92,40));
00901 btnContourCalc = new wxButton( this, -1, _T("Calcification \ncontours"),wxPoint(0,0),wxSize(92,40));
00902 btnContourHypo = new wxButton( this, -1, _T("Hipodense \ncontours"),wxPoint(0,0),wxSize(92,40));
00903
00904
00905
00906 fixContourWall = new wxButton(this, -1, _T("Replace \nExternal wall") ,wxPoint(0,0),wxSize(92,40));
00907 fixContourLumen = new wxButton(this, -1, _T("Replace \nLumen") ,wxPoint(0,0),wxSize(92,40));
00908 fixContourCalc = new wxButton(this, -1, _T("Replace \nCalcifications") ,wxPoint(0,0),wxSize(92,40));
00909 fixContourHypo = new wxButton(this, -1, _T("Replace \nHipodense") ,wxPoint(0,0),wxSize(92,40));
00910
00911 cbShowAllManual = new wxCheckBox(this,-1,_T("Show All"));
00912 cbShowWall = new wxCheckBox(this,-1,_T("Show Wall"));
00913 cbShowLumen = new wxCheckBox(this,-1,_T("Show Lumen"));
00914 cbShowCalc = new wxCheckBox(this,-1,_T("Show Calcifications"));
00915 cbShowHypo = new wxCheckBox(this,-1,_T("Show Hypodense"));
00916
00917 cbShowAllManual->SetValue(true);
00918 cbShowWall->SetValue(true);
00919 cbShowLumen->SetValue(true);
00920 cbShowCalc->SetValue(true);
00921 cbShowHypo->SetValue(true);
00922
00923
00924 wxFlexGridSizer *sizer = new wxFlexGridSizer(1);
00925
00926 wxFlexGridSizer *conts = new wxFlexGridSizer(4);
00927 wxFlexGridSizer *replace = new wxFlexGridSizer(4);
00928 wxFlexGridSizer *options = new wxFlexGridSizer(5);
00929
00930
00931 conts->Add(btnContourWall , 1, wxALL|wxEXPAND, 0);
00932 conts->Add(btnContourLumen , 1, wxALL|wxEXPAND, 0);
00933 conts->Add(btnContourCalc , 1, wxALL|wxEXPAND, 0);
00934 conts->Add(btnContourHypo , 1, wxALL|wxEXPAND, 0);
00935
00936
00937 replace->Add(fixContourWall , 1, wxALL|wxEXPAND, 0);
00938 replace->Add(fixContourLumen , 1, wxALL|wxEXPAND, 0);
00939 replace->Add(fixContourCalc , 1, wxALL|wxEXPAND, 0);
00940 replace->Add(fixContourHypo , 1, wxALL|wxEXPAND, 0);
00941
00942
00943 options->Add(cbShowAllManual , 1, wxALL|wxEXPAND, 0);
00944 options->Add(cbShowWall , 1, wxALL|wxEXPAND, 0);
00945 options->Add(cbShowLumen , 1, wxALL|wxEXPAND, 0);
00946 options->Add(cbShowCalc , 1, wxALL|wxEXPAND, 0);
00947 options->Add(cbShowHypo , 1, wxALL|wxEXPAND, 0);
00948
00949 sizer->Add(title , 1, wxALL|wxEXPAND, 10);
00950 sizer->Add(conts , 2, wxALL|wxEXPAND, 10);
00951 sizer->Add(replace , 2, wxALL|wxEXPAND, 10);
00952 sizer->Add(options , 2, wxALL|wxEXPAND, 10);
00953
00954 this->SetSizer(sizer);
00955 this->SetSize(wxSize(400,400));
00956
00957 Connect(btnContourWall->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlManualContour::OnContourWall );
00958 Connect(btnContourLumen->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlManualContour::OnContourLumen );
00959 Connect(btnContourCalc->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlManualContour::OnContourCalc );
00960 Connect(btnContourHypo->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlManualContour::OnContourHypo );
00961
00962 Connect(fixContourWall->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlManualContour::OnReplaceContourWall );
00963 Connect(fixContourLumen->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlManualContour::OnReplaceContourLumen );
00964 Connect(fixContourCalc->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlManualContour::OnReplaceContourCalc );
00965 Connect(fixContourHypo->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxPnlManualContour::OnReplaceContourHypo );
00966
00967 Connect(cbShowAllManual->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxPnlManualContour::OnShowAll );
00968 Connect(cbShowWall->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxPnlManualContour::OnShowWall );
00969 Connect(cbShowLumen->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxPnlManualContour::OnShowLumen );
00970 Connect(cbShowCalc->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxPnlManualContour::OnShowCalc );
00971 Connect(cbShowHypo->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxPnlManualContour::OnShowHypo );
00972
00973
00974 }
00975
00976
00977 void wxPnlManualContour::OnContourWall(wxCommandEvent& event)
00978 {
00979 _quantificationWidget_base->OnContourWall();
00980 }
00981
00982 void wxPnlManualContour::OnContourLumen(wxCommandEvent& event)
00983 {
00984 _quantificationWidget_base->OnContourLumen();
00985 }
00986
00987 void wxPnlManualContour::OnContourHypo(wxCommandEvent& event)
00988 {
00989 _quantificationWidget_base->OnContourHypo();
00990 }
00991
00992 void wxPnlManualContour::OnContourCalc(wxCommandEvent& event)
00993 {
00994 _quantificationWidget_base->OnContourCalc();
00995 }
00996
00997
00998 void wxPnlManualContour::OnReplaceContourWall(wxCommandEvent& event)
00999 {
01000 _quantificationWidget_base->OnReplaceContourWall();
01001 }
01002
01003 void wxPnlManualContour::OnReplaceContourLumen(wxCommandEvent& event)
01004 {
01005 _quantificationWidget_base->OnReplaceContourLumen();
01006 }
01007
01008 void wxPnlManualContour::OnReplaceContourHypo(wxCommandEvent& event)
01009 {
01010 _quantificationWidget_base->OnReplaceContourHypo();
01011 }
01012
01013
01014 void wxPnlManualContour::OnReplaceContourCalc(wxCommandEvent& event)
01015 {
01016 _quantificationWidget_base->OnReplaceContourCalc();
01017 }
01018
01019
01020 void wxPnlManualContour::OnShowAll(wxCommandEvent& event)
01021 {
01022 cbShowCalc->SetValue(cbShowAllManual->GetValue());
01023 cbShowHypo->SetValue(cbShowAllManual->GetValue());
01024 cbShowLumen->SetValue(cbShowAllManual->GetValue());
01025 cbShowWall->SetValue(cbShowAllManual->GetValue());
01026 _quantificationWidget_base->OnShowAll(cbShowAllManual->GetValue());
01027
01028 }
01029
01030
01031 void wxPnlManualContour::OnShowWall(wxCommandEvent& event)
01032 {
01033 _quantificationWidget_base->OnShowWall(cbShowWall->GetValue());
01034 }
01035
01036 void wxPnlManualContour::OnShowLumen(wxCommandEvent& event)
01037 {
01038 _quantificationWidget_base->OnShowLumen(cbShowLumen->GetValue());
01039 }
01040
01041
01042 void wxPnlManualContour::OnShowCalc(wxCommandEvent& event)
01043 {
01044 _quantificationWidget_base->OnShowCalc(cbShowCalc->GetValue());
01045 }
01046
01047
01048 void wxPnlManualContour::OnShowHypo(wxCommandEvent& event)
01049 {
01050 _quantificationWidget_base->OnShowHypo(cbShowHypo->GetValue());
01051 }
01052
01053
01054
01055
01056
01057 wxPanelControlsHealthySickSliceCT::wxPanelControlsHealthySickSliceCT(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base)
01058 : wxPanel(parent,-1)
01059 {
01060 marDictionary marDict;
01061
01062
01063
01064
01065
01066
01067 wxNotebook *wxnotbook = new wxNotebook(this, -1);
01068
01069
01070
01071 wxPnlSearchStenosis *page1 = new wxPnlSearchStenosis( wxnotbook , quantificationWidget_base);
01072 wxPanelSizeHealthyRegion *page2 = new wxPanelSizeHealthyRegion (wxnotbook , quantificationWidget_base);
01073 wxPnlManualContour *page3 = new wxPnlManualContour( wxnotbook , quantificationWidget_base);
01074 wxPnlContourControl *page4 = new wxPnlContourControl( wxnotbook , quantificationWidget_base);
01075 wxnotbook->AddPage(page1, wxString(marDict.GetString(265), wxConvUTF8) );
01076 wxnotbook->AddPage(page2, wxString(marDict.GetString(360), wxConvUTF8) );
01077 wxnotbook->AddPage(page3, wxString(marDict.GetString(800), wxConvUTF8) );
01078 wxnotbook->AddPage(page4, wxString(marDict.GetString(940), wxConvUTF8) );
01079 wxnotbook->SetSize(400,315);
01080
01081 wxFlexGridSizer *sizer = new wxFlexGridSizer(1);
01082 sizer->Add(wxnotbook, 1, wxTOP|wxLEFT|wxRIGHT, 5);
01083 this->SetSizer(sizer);
01084 this->SetAutoLayout(true);
01085 this->Layout();
01086 this->SetSize(400,400);
01087
01088 }
01089
01090
01091
01092
01093
01094
01095
01096
01097
01098
01099
01100
01101
01102
01103
01104
01105
01106
01107
01108
01109
01110
01111
01112
01113
01114
01115
01116
01117
01118
01119
01120
01121
01122
01123 wxQuantificationWidget_base::wxQuantificationWidget_base(wxWindow* parent, wxWindowID id,
01124 const wxPoint& pos, const wxSize& size, long style,
01125 const wxString& name)
01126 : wxPanel( parent, id, pos, size, style, name )
01127 {
01128 }
01129
01130
01131
01132
01133
01134 wxQuantificationWidget_base::~wxQuantificationWidget_base()
01135 {
01136 }
01137
01138
01139
01140 void wxQuantificationWidget_base::SetManualContour_ReplaceContour()
01141 {
01142 }
01143
01144
01145 void wxQuantificationWidget_base::SetManualContour_2DWorld(bool ok)
01146 {
01147 }
01148
01149
01150
01151 void wxQuantificationWidget_base::SetManualContour_AddPoint_2DWorld()
01152 {
01153 }
01154
01155
01156 void wxQuantificationWidget_base::SetAnalysisTypeStenosis(int analysisTypeStenosis)
01157 {
01158 }
01159
01160
01161
01162 int wxQuantificationWidget_base::GetActualSlice()
01163 {
01164 return 0;
01165 }
01166
01167
01168 void wxQuantificationWidget_base::SetHealthySlice(int healthySlice)
01169 {
01170 }
01171
01172
01173 void wxQuantificationWidget_base::GetSliceLimites(int type, int &sliceStart,int &sliceEnd)
01174 {
01175 }
01176
01177
01178 void wxQuantificationWidget_base::Set3DStartRegionSliceActor( int type, int k )
01179 {
01180 }
01181
01182
01183 void wxQuantificationWidget_base::RefreshAxis( )
01184 {
01185 }
01186
01187
01188 void wxQuantificationWidget_base::OnContourWall()
01189 {
01190 }
01191
01192
01193 void wxQuantificationWidget_base::OnContourLumen()
01194 {
01195 }
01196
01197
01198 void wxQuantificationWidget_base::OnContourHypo()
01199 {
01200 }
01201
01202
01203 void wxQuantificationWidget_base::OnContourCalc()
01204 {
01205 }
01206
01207
01208 void wxQuantificationWidget_base::OnReplaceContourWall()
01209 {
01210 }
01211
01212 void wxQuantificationWidget_base::OnReplaceContourLumen()
01213 {
01214 }
01215
01216 void wxQuantificationWidget_base::OnReplaceContourHypo()
01217 {
01218 }
01219
01220
01221 void wxQuantificationWidget_base::OnReplaceContourCalc()
01222 {
01223 }
01224
01225
01226 void wxQuantificationWidget_base::OnSliderDiscontinuityScroll(int percentage)
01227 {
01228 }
01229
01230
01231 void wxQuantificationWidget_base::OnSliderLumenPercentageScroll(int percentage)
01232 {
01233 }
01234
01235
01236 void wxQuantificationWidget_base::OnSliderCalcPercentageScroll(int percentage)
01237 {
01238 }
01239
01240
01241 void wxQuantificationWidget_base::OnCalibration()
01242 {
01243 }
01244
01245
01246 void wxQuantificationWidget_base::OnFile()
01247 {
01248 }
01249
01250
01251
01252 kVolume *wxQuantificationWidget_base::GetVolumeAxisExtended(int wz1,int wz2)
01253 {
01254 return NULL;
01255 }
01256
01257
01258 int wxQuantificationWidget_base::GetMaxActualSlice()
01259 {
01260 return 0;
01261 }
01262
01263
01264 void wxQuantificationWidget_base::Set3DRegionSliceActor( int type, int k1,int k2 )
01265 {
01266 }
01267
01268
01269 void wxQuantificationWidget_base::DetectHealthySickSlice( bool minSurf , bool maxSurf )
01270 {
01271 }
01272
01273
01274 void wxQuantificationWidget_base::Show3DStartRegionSliceActor(int type )
01275 {
01276 }
01277
01278
01279
01280 void wxQuantificationWidget_base::Set3DEndRegionSliceActor( int type, int k )
01281 {
01282 }
01283
01284
01285 void wxQuantificationWidget_base::Show3DEndRegionSliceActor(int type )
01286 {
01287 }
01288
01289
01290
01291 void wxQuantificationWidget_base::Hide3DStartRegionSliceActor(int type )
01292 {
01293 }
01294
01295
01296 void wxQuantificationWidget_base::Hide3DEndRegionSliceActor(int type )
01297 {
01298 }
01299
01300
01301 int wxQuantificationWidget_base::GetSizeHealthyRegion()
01302 {
01303 return 0;
01304 }
01305
01306
01307 void wxQuantificationWidget_base::SetSizeHealthyRegion(int size)
01308 {
01309 }
01310
01311 int wxQuantificationWidget_base::GetHealthySlice()
01312 {
01313 return 0;
01314 }
01315
01316
01317 void wxQuantificationWidget_base::OnShowAll(bool value)
01318 {
01319
01320 }
01321
01322
01323 void wxQuantificationWidget_base::OnShowWall(bool value)
01324 {
01325 }
01326
01327 void wxQuantificationWidget_base::OnShowLumen(bool value)
01328 {
01329 }
01330
01331
01332 void wxQuantificationWidget_base::OnShowCalc(bool value)
01333 {
01334 }
01335
01336
01337 void wxQuantificationWidget_base::OnShowHypo(bool value)
01338 {
01339 }