00001 #include "wxMaracasRenderTabbedPanel.h"
00002
00003 #include "HistogramDialogComboBox.h"
00004 #include "wxMaracasMultipleVolumeRendererPanel.h"
00005 #include "wxMaracasSurfaceRenderingPanel.h"
00006 #include "wxMaracasSurfaceRenderingProp3DMHD.h"
00007 #include "wxMaracasMultipleVolumeRendererManagerData.h"
00008 #include "wxMaracasDialog_NViewers.h"
00009 #include "wxVtkMPR3DViewCntrlPanel.h"
00010
00011 #include <wx/colordlg.h>
00012 #include <wx/button.h>
00013 #include <vtkProp3D.h>
00014 #include <OpenImage.xpm>
00015
00016 #include "Color.xpm"
00017
00018
00019 #include "creaWx.h"
00020
00021 BEGIN_EVENT_TABLE( wxMaracasRenderTabbedPanel, wxPanel )
00022 EVT_MENU( 12121, wxMaracasRenderTabbedPanel::OnRefreshView )
00023
00024 END_EVENT_TABLE( );
00025
00029 wxMaracasRenderTabbedPanel::wxMaracasRenderTabbedPanel(wxWindow* parent, int id, wxVtk3DBaseView* _baseView)
00030 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize)
00031 {
00032 _id = id;
00033 baseView = _baseView;
00034 dialog = NULL;
00035
00036 volmanager = new wxMaracasMultipleVolumeRendererManager();
00037 surrendmanager1 = new wxMaracasSurfaceRenderingManager();
00038 surrendmanager2 = new wxMaracasSurfaceRenderingManager();
00039 surrendmanager3 = new wxMaracasSurfaceRenderingManager();
00040 }
00041
00045 wxMaracasRenderTabbedPanel::~wxMaracasRenderTabbedPanel()
00046 {
00047
00048
00049
00050
00051 addRemoveActorMPR(false);
00052 if( vtkmpr3Ddataviewer ) { delete vtkmpr3Ddataviewer; }
00053 if( mwxvtkmpr3Dview ) { delete mwxvtkmpr3Dview; }
00054
00055 this->deleteVolume(_id);
00056 delete dialog;
00057 delete wxtabs;
00058 }
00059
00063 void wxMaracasRenderTabbedPanel::createControls(vtkImageData* inImg, std::string pathfile, std::string filename)
00064 {
00065 wxFlexGridSizer* sizerrenderprop = new wxFlexGridSizer(1);
00066
00067 wxFlexGridSizer* sizercheck = new wxFlexGridSizer(3);
00068 checkboxVol = new wxCheckBox(this,-1,wxString(_T("Volume Rendering")));
00069 Connect(checkboxVol->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxVChange);
00070 checkboxVol->SetValue(false);
00071 sizercheck->Add(checkboxVol, wxFIXED_MINSIZE);
00072
00073 checkboxSA = new wxCheckBox(this,-1,wxString(_T("Surface Rendering A")));
00074 Connect(checkboxSA->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSAChange);
00075 checkboxSA->SetValue(false);
00076 sizercheck->Add(checkboxSA, wxFIXED_MINSIZE);
00077
00078 checkboxViewer = new wxCheckBox(this,-1,wxString(_T("MPR")));
00079 Connect(checkboxViewer->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onMPROptions);
00080 checkboxViewer->SetValue(true);
00081 sizercheck->Add(checkboxViewer, wxFIXED_MINSIZE);
00082
00083 checkboxSB = new wxCheckBox(this,-1,wxString(_T("Surface Rendering B")));
00084 Connect(checkboxSB->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSBChange);
00085 checkboxSB->SetValue(false);
00086 sizercheck->Add(checkboxSB, wxFIXED_MINSIZE);
00087
00088 checkboxSC = new wxCheckBox(this,-1,wxString(_T("Surface Rendering C")));
00089 Connect(checkboxSC->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSCChange);
00090 checkboxSC->SetValue(false);
00091 sizercheck->Add(checkboxSC, wxFIXED_MINSIZE);
00092
00093 sizercheck->Add(new wxStaticText(this, -1,_T("")), wxFIXED_MINSIZE);
00094
00095 wxButton* _openParameters = new wxButton(this, -1, wxString(_T("Apply Transformation")));
00096 Connect(_openParameters->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onOpenParameters);
00097 sizercheck->Add(_openParameters,wxFIXED_MINSIZE);
00098
00099 wxButton* _openCutter = new wxButton(this, -1, wxString(_T("Open Cutter View")));
00100 Connect(_openCutter->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onOpenCutter);
00101 sizercheck->Add(_openCutter,wxFIXED_MINSIZE);
00102 sizerrenderprop->Add(sizercheck, wxFIXED_MINSIZE);
00103
00104 wxtabs = new wxNotebook(this, -1);
00105
00106 if(inImg == NULL)
00107 {
00108 vtkImageData* img = volmanager->getImageData(pathfile);
00109
00110
00111
00112 if(img!=NULL )
00113 {
00114 addVolume(img, filename);
00115 addSurface1(img, filename);
00116 addSurface2(img, filename);
00117 addSurface3(img, filename);
00118 addMPROptions();
00119 volname = crea::std2wx(filename);
00120 wxtabs->Refresh();
00121 }
00122 }
00123 else
00124 {
00125 addVolume(inImg, filename);
00126 addSurface1(inImg, filename);
00127 addSurface2(inImg, filename);
00128 addSurface3(inImg, filename);
00129 wxtabs->Refresh();
00130 }
00131
00132 sizerrenderprop->Add(wxtabs, wxSizerFlags().Expand().Center());
00133
00134 this->SetSizer(sizerrenderprop, true);
00135 this->SetAutoLayout( true );
00136 }
00137
00138
00142 void wxMaracasRenderTabbedPanel::setRenderer(vtkRenderer* renderer)
00143 {
00144 volmanager->setRenderer(renderer);
00145 surrendmanager1->setRenderer(renderer);
00146 surrendmanager2->setRenderer(renderer);
00147 surrendmanager3->setRenderer(renderer);
00148 }
00149
00153 void wxMaracasRenderTabbedPanel::addVolume(vtkImageData* img, std::string dataname)
00154 {
00155 try
00156 {
00157 int _propidV = volmanager->addVolume(_id, img, dataname);
00158 if(_propidV!=-1)
00159 {
00160 wxMaracasMultipleVolumeRendererPanel* controlpanV = new wxMaracasMultipleVolumeRendererPanel(wxtabs, _propidV, img, true);
00161 wxtabs->AddPage(controlpanV, _T("Vol Rendering"), true);
00162 controlpanV->updateVolume();
00163 wxtabs->GetPage(0)->Disable();
00164
00165 volmanager->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
00166 }
00167 }
00168 catch(char* str)
00169 {
00170 std::cout << "Exception : " << str << '\n';
00171 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00172 diag->ShowModal();
00173 delete diag;
00174 }
00175 }
00176
00180 void wxMaracasRenderTabbedPanel::addSurface1(vtkImageData* img, std::string dataname)
00181 {
00182 try
00183 {
00184 int _propidSA = surrendmanager1->addPropMHD(_id, img, dataname);
00185
00186 if(_propidSA!=-1)
00187 {
00188 wxMaracasSurfaceRenderingPanel* controlpanSA = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSA, true, 1);
00189 int maxiso = surrendmanager1->getMaxIsoValue(_propidSA);
00190 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSA)->createControls(maxiso);
00191 wxtabs->AddPage(controlpanSA, _T("SR A"));
00192 wxtabs->GetPage(1)->Disable();
00193
00194 surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
00195 }
00196 }
00197 catch(char* str)
00198 {
00199 std::cout << "Exception : " << str << '\n';
00200 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00201 diag->ShowModal();
00202 delete diag;
00203 }
00204 }
00205
00209 void wxMaracasRenderTabbedPanel::addSurface2(vtkImageData* img, std::string dataname)
00210 {
00211 try
00212 {
00213 int _propidSB = surrendmanager2->addPropMHD(_id, img, dataname);
00214 if(_propidSB!=-1)
00215 {
00216 wxMaracasSurfaceRenderingPanel* controlpanSB = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSB, true, 2);
00217 int maxiso = surrendmanager2->getMaxIsoValue(_propidSB);
00218 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSB)->createControls(maxiso);
00219 wxtabs->AddPage(controlpanSB, _T("SR B"));
00220 wxtabs->GetPage(2)->Disable();
00221
00222 surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
00223
00224 }
00225 }
00226 catch(char* str)
00227 {
00228 std::cout << "Exception : " << str << '\n';
00229 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00230 diag->ShowModal();
00231 delete diag;
00232 }
00233 }
00234
00238 void wxMaracasRenderTabbedPanel::addSurface3(vtkImageData* img, std::string dataname)
00239 {
00240 try
00241 {
00242 int _propidSC = surrendmanager3->addPropMHD(_id, img, dataname);
00243
00244 if(_propidSC!=-1)
00245 {
00246 wxMaracasSurfaceRenderingPanel* controlpanSC = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSC, true, 3);
00247 int maxiso = surrendmanager3->getMaxIsoValue(_propidSC);
00248 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSC)->createControls(maxiso);
00249 wxtabs->AddPage(controlpanSC, _T("SR C"));
00250 wxtabs->GetPage(3)->Disable();
00251
00252 surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
00253 }
00254 }
00255 catch(char* str)
00256 {
00257 std::cout << "Exception : " << str << '\n';
00258 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00259 diag->ShowModal();
00260 delete diag;
00261 }
00262 }
00263
00267 void wxMaracasRenderTabbedPanel::addMPROptions()
00268 {
00269
00270 vtkMPRBaseData* mvtkmprbasedata = new vtkMPRBaseData();
00271 marImageData* marimagedata = new marImageData( getVolImage() );
00272 mvtkmprbasedata ->SetMarImageData(marimagedata);
00273
00274 mwxvtkmpr3Dview = new wxVtkMPR3DView( baseView );
00275
00276 vtkmpr3Ddataviewer = new vtkMPR3DDataViewer();
00277
00278 wxPanel *panelControl = new wxPanel(wxtabs,-1);
00279 controlPanelMPR3D = mwxvtkmpr3Dview->CreateControlPanel(panelControl, true);
00280
00281 wxFlexGridSizer *sizerCtrol = new wxFlexGridSizer(1);
00282 sizerCtrol ->Add(controlPanelMPR3D, 1, wxALL|wxEXPAND, 2);
00283
00284 panelControl->SetAutoLayout(true);
00285 panelControl->SetSizer(sizerCtrol);
00286 panelControl->SetSize(400,350);
00287 panelControl->Layout();
00288
00289
00290 int x = 0,y = 0,z = 0;
00291 int ext[6];
00292 ext[0] = 0;
00293 ext[1] = 0;
00294 ext[2] = 0;
00295 ext[3] = 0;
00296 ext[4] = 0;
00297 ext[5] = 0;
00298
00299 double org[3],spc[3];
00300 org[0] = 0;
00301 org[1] = 0;
00302 org[2] = 0;
00303 spc[0] = 0;
00304 spc[1] = 0;
00305 spc[2] = 0;
00306
00307 if (mvtkmprbasedata!=NULL)
00308 {
00309 mvtkmprbasedata->Configure();
00310
00311
00312
00313
00314 if(mvtkmprbasedata->GetImageData() != NULL)
00315 {
00316 mvtkmprbasedata->GetImageData()->GetExtent(ext);
00317 mvtkmprbasedata->GetImageData()->GetOrigin(org);
00318 mvtkmprbasedata->GetImageData()->GetSpacing(spc);
00319
00320 x = (ext[0]+ext[1])/2;
00321 y = (ext[2]+ext[3])/2;
00322 z = (ext[4]+ext[5])/2;
00323
00324 mvtkmprbasedata->SetX( x );
00325 mvtkmprbasedata->SetY( y );
00326 mvtkmprbasedata->SetZ( z );
00327 }
00328 else
00329 {
00330 mvtkmprbasedata->SetX( 0 );
00331 mvtkmprbasedata->SetY( 0 );
00332 mvtkmprbasedata->SetZ( 0 );
00333 }
00334 }
00335
00336 if (baseView!=NULL)
00337 {
00338 baseView ->Configure();
00339 }
00340
00341 if (vtkmpr3Ddataviewer !=NULL)
00342 {
00343 vtkmpr3Ddataviewer ->SetVtkMPRBaseData(mvtkmprbasedata);
00344 vtkmpr3Ddataviewer ->Configure();
00345 }
00346 if (mwxvtkmpr3Dview !=NULL)
00347 {
00348 mwxvtkmpr3Dview ->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
00349 mwxvtkmpr3Dview ->Configure();
00350 mwxvtkmpr3Dview ->ResetCamera(ext,org,spc);
00351 vtkInteractorStyleBaseView* vtkInteractorBV = (vtkInteractorStyleBaseView*)mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetInteractorStyleBaseView();
00352 vtkInteractorBV->AddParentToReport(this);
00353 }
00354
00355 int id = 4;
00356 wxtabs->AddPage(panelControl, _T("MPR"));
00357 wxtabs->GetPage(id)->Enable();
00358 wxtabs->SetSelection(id);
00359
00360 ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleZ(true);
00361 ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleXYZ(true);
00362 mwxvtkmpr3Dview->showOutlineActor(true);
00363 mwxvtkmpr3Dview->Refresh();
00364
00365 }
00366
00370 void wxMaracasRenderTabbedPanel::deleteVolume(int volid)
00371 {
00372 try
00373 {
00374 volmanager->deleteActor(volid);
00375 surrendmanager1->deleteActor(volid);
00376 surrendmanager2->deleteActor(volid);
00377 surrendmanager3->deleteActor(volid);
00378 }
00379 catch(char* str)
00380 {
00381 std::cout << "Exception : " << str << '\n';
00382 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00383 diag->ShowModal();
00384 delete diag;
00385 }
00386 }
00387
00391 void wxMaracasRenderTabbedPanel::addRemoveActorV(int id, bool addremove)
00392 {
00393 try{
00394 volmanager->addRemoveActor(id, addremove);
00395
00396 }
00397 catch(char* str){
00398 std::cout << "Exception : " << str << '\n';
00399 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00400 diag->ShowModal();
00401 delete diag;
00402 }
00403 }
00404
00408 void wxMaracasRenderTabbedPanel::addRemoveActorSA(int id, bool addremove)
00409 {
00410 try{
00411 surrendmanager1->addRemoveActor(id, addremove);
00412 }
00413 catch(char* str){
00414 std::cout << "Exception : " << str << '\n';
00415 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00416 diag->ShowModal();
00417 delete diag;
00418 }
00419 }
00420
00424 void wxMaracasRenderTabbedPanel::addRemoveActorSB(int id, bool addremove)
00425 {
00426 try{
00427 surrendmanager2->addRemoveActor(id, addremove);
00428 }
00429 catch(char* str){
00430 std::cout << "Exception : " << str << '\n';
00431 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00432 diag->ShowModal();
00433 delete diag;
00434 }
00435 }
00436
00440 void wxMaracasRenderTabbedPanel::addRemoveActorSC(int id, bool addremove)
00441 {
00442 try{
00443 surrendmanager3->addRemoveActor(id, addremove);
00444 }
00445 catch(char* str){
00446 std::cout << "Exception : " << str << '\n';
00447 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00448 diag->ShowModal();
00449 delete diag;
00450 }
00451 }
00452
00453 void wxMaracasRenderTabbedPanel::addRemoveActorMPR(bool addremove)
00454 {
00455 int id = 4;
00456 wxtabs->SetSelection(id);
00457 if(addremove)
00458 {
00459 wxtabs->GetPage(id)->Enable();
00460
00461 bool valueX = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleX();
00462 bool valueY = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleY();
00463 bool valueZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleZ();
00464 bool valueXYZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleXYZ();
00465 bool valuePlane = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisiblePlane();
00466
00467 mwxvtkmpr3Dview->VisibleImageActor( 0, valueX );
00468 mwxvtkmpr3Dview->VisibleImageActor( 1, valueY );
00469 mwxvtkmpr3Dview->VisibleImageActor( 2, valueZ );
00470 mwxvtkmpr3Dview->VisiblePointWidget(valueXYZ);
00471 mwxvtkmpr3Dview->VisiblePlaneWidget(valuePlane);
00472 mwxvtkmpr3Dview->showOutlineActor(true);
00473
00474 mwxvtkmpr3Dview->Refresh();
00475
00476
00477 }
00478 else
00479 {
00480 wxtabs->GetPage(id)->Disable();
00481
00482 mwxvtkmpr3Dview->VisiblePointWidget(false);
00483 mwxvtkmpr3Dview->VisiblePlaneWidget(false);
00484 mwxvtkmpr3Dview->VisibleImageActor(0, false );
00485 mwxvtkmpr3Dview->VisibleImageActor(1, false );
00486 mwxvtkmpr3Dview->VisibleImageActor(2, false );
00487 mwxvtkmpr3Dview->showOutlineActor(false);
00488 mwxvtkmpr3Dview->Refresh();
00489
00490 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);
00491 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
00492 }
00493 }
00494
00495
00499 void wxMaracasRenderTabbedPanel::SetValuesColorPointsFunction(int volid, std::vector<double> greylevelcolors,std::vector<double> red,std::vector<double> green,std::vector<double> blue)
00500 {
00501 volmanager->setVolumeColor(volid, greylevelcolors, red, green, blue);
00502 }
00503
00507 void wxMaracasRenderTabbedPanel::SetValuesPointsFunction(int volid, std::vector<double> greylevel, std::vector<double> values)
00508 {
00509 try{
00510 volmanager->setVolumeOpacity(volid, greylevel, values);
00511 }
00512 catch(char* str)
00513 {
00514 wxString s( str,wxConvUTF8 );
00515 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
00516 diag->ShowModal();
00517 delete diag;
00518 }
00519 }
00520
00524 vtkPiecewiseFunction* wxMaracasRenderTabbedPanel::GetTransferFunction(int volumeid)
00525 {
00526 return volmanager->GetTransferFunction(volumeid);
00527 }
00528
00532 vtkColorTransferFunction* wxMaracasRenderTabbedPanel::GetColorFunction(int volumeid)
00533 {
00534 return volmanager->GetColorFunction(volumeid);
00535 }
00536
00540 void wxMaracasRenderTabbedPanel::changeOpacityA(int _propid, int value)
00541 {
00542 surrendmanager1->changeOpacity(_propid,value);
00543 }
00544
00548 void wxMaracasRenderTabbedPanel::changeIsoValueA(int propid, double value)
00549 {
00550 surrendmanager1->changeIsoValue(propid, value);
00551 }
00552
00556 void wxMaracasRenderTabbedPanel::changeColorA(int propid, double red, double green, double blue)
00557 {
00558 try
00559 {
00560 surrendmanager1->changeColor(propid, red, green, blue);
00561 }
00562 catch(char* str)
00563 {
00564 wxString s( str,wxConvUTF8 );
00565 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
00566 diag->ShowModal();
00567 delete diag;
00568 }
00569 }
00570
00574 void wxMaracasRenderTabbedPanel::changeOpacityB(int _propid, int value)
00575 {
00576 surrendmanager2->changeOpacity(_propid,value);
00577 }
00578
00582 void wxMaracasRenderTabbedPanel::changeIsoValueB(int propid, double value)
00583 {
00584 surrendmanager2->changeIsoValue(propid, value);
00585 }
00586
00590 void wxMaracasRenderTabbedPanel::changeColorB(int propid, double red, double green, double blue)
00591 {
00592 try
00593 {
00594 surrendmanager2->changeColor(propid, red, green, blue);
00595 }
00596 catch(char* str)
00597 {
00598 wxString s( str,wxConvUTF8 );
00599 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
00600 diag->ShowModal();
00601 delete diag;
00602 }
00603 }
00604
00608 void wxMaracasRenderTabbedPanel::changeOpacityC(int _propid, int value)
00609 {
00610 surrendmanager3->changeOpacity(_propid,value);
00611 }
00612
00616 void wxMaracasRenderTabbedPanel::changeIsoValueC(int propid, double value)
00617 {
00618 surrendmanager3->changeIsoValue(propid, value);
00619 }
00620
00624 void wxMaracasRenderTabbedPanel::changeColorC(int propid, double red, double green, double blue)
00625 {
00626 try
00627 {
00628 surrendmanager3->changeColor(propid, red, green, blue);
00629 }
00630 catch(char* str)
00631 {
00632 wxString s( str,wxConvUTF8 );
00633 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
00634 diag->ShowModal();
00635 delete diag;
00636 }
00637 }
00638
00642 void wxMaracasRenderTabbedPanel::onCheckBoxVChange(wxCommandEvent& event)
00643 {
00644 try{
00645 volmanager->addRemoveActor(this->getPropIdV(), checkboxVol->GetValue());
00646
00647 int id = 0;
00648 wxtabs->SetSelection(id);
00649
00650 if(checkboxVol->GetValue())
00651 {
00652 wxtabs->GetPage(id)->Enable();
00653 }
00654 else
00655 {
00656 wxtabs->GetPage(id)->Disable();
00657 }
00658 }
00659 catch(char* str){
00660 std::cout << "Exception : " << str << '\n';
00661 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00662 diag->ShowModal();
00663 delete diag;
00664 }
00665 }
00666
00670 void wxMaracasRenderTabbedPanel::onCheckBoxSAChange(wxCommandEvent& event)
00671 {
00672 try{
00673 surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSA->GetValue());
00674
00675 int id = 1;
00676 wxtabs->SetSelection(id);
00677
00678 if(checkboxSA->GetValue())
00679 {
00680 wxtabs->GetPage(id)->Enable();
00681
00682 }
00683 else
00684 {
00685 wxtabs->GetPage(id)->Disable();
00686 }
00687 }
00688 catch(char* str){
00689 std::cout << "Exception : " << str << '\n';
00690 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00691 diag->ShowModal();
00692 delete diag;
00693 }
00694 }
00695
00699 void wxMaracasRenderTabbedPanel::onCheckBoxSBChange(wxCommandEvent& event)
00700 {
00701 try{
00702 surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSB->GetValue());
00703
00704 int id = 2;
00705 wxtabs->SetSelection(id);
00706
00707 if(checkboxSB->GetValue())
00708 {
00709 wxtabs->GetPage(id)->Enable();
00710 }
00711 else
00712 {
00713 wxtabs->GetPage(id)->Disable();
00714 }
00715 }
00716 catch(char* str){
00717 std::cout << "Exception : " << str << '\n';
00718 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00719 diag->ShowModal();
00720 delete diag;
00721 }
00722 }
00723
00727 void wxMaracasRenderTabbedPanel::onCheckBoxSCChange(wxCommandEvent& event)
00728 {
00729 try{
00730 surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
00731
00732 int id = 3;
00733 wxtabs->SetSelection(id);
00734
00735 if(checkboxSC->GetValue())
00736 {
00737 wxtabs->GetPage(id)->Enable();
00738 }
00739 else
00740 {
00741 wxtabs->GetPage(id)->Disable();
00742 }
00743 }
00744 catch(char* str){
00745 std::cout << "Exception : " << str << '\n';
00746 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00747 diag->ShowModal();
00748 delete diag;
00749 }
00750 }
00751
00755 void wxMaracasRenderTabbedPanel::onMPROptions(wxCommandEvent& event)
00756 {
00757 addRemoveActorMPR(checkboxViewer->IsChecked());
00758
00759
00760
00761
00762
00763
00764
00765
00766
00767
00768
00769
00770
00771
00772
00773
00774
00775
00776
00777
00778
00779
00780
00781
00782
00783
00784
00785
00786
00787
00788
00789
00790
00791
00792
00793
00794
00795
00796
00797
00798 }
00799
00800 void wxMaracasRenderTabbedPanel::OnRefreshView(wxCommandEvent & event)
00801 {
00802 printf("CPR wxMaracasRenderTabbedPanel::OnRefreshView \n");
00803 mwxvtkmpr3Dview->RefreshView();
00804
00805 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);
00806 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
00807 }
00808
00812 void wxMaracasRenderTabbedPanel::onOpenParameters(wxCommandEvent& event){
00813 if(dialog == NULL)
00814 {
00815 dialog = new wxMaracasRenderImageManagementPanel(this, volmanager, surrendmanager1, surrendmanager2, surrendmanager3, volname, _id);
00816 dialog->SetSize(460, 580);
00817 dialog->Show();
00818 }
00819 else if(dialog != NULL)
00820 {
00821 dialog->Show();
00822 }
00823 }
00824
00828 void wxMaracasRenderTabbedPanel::onOpenCutter(wxCommandEvent& event)
00829 {
00830 vtkImageData* img = getVolImage();
00831 std::vector<int> type;
00832 type.push_back(5);
00833 type.push_back(1);
00834 type.push_back(2);
00835 type.push_back(0);
00836
00837 wxMaracasDialog_NViewers* dialog1 = new wxMaracasDialog_NViewers(this, img, &type, wxString(_T("Cut Module") ));
00838
00839
00846
00847 dialog1->Show();
00848 }
00849
00853 void wxMaracasRenderTabbedPanel::onColorChange(wxCommandEvent& event)
00854 {
00855
00856
00857
00858
00859
00860
00861 }
00862
00866 vtkImageData* wxMaracasRenderTabbedPanel::getVolImage()
00867 {
00868 return volmanager->getImageData();
00869 }
00870
00874 vtkImageData* wxMaracasRenderTabbedPanel::getSurfAImage()
00875 {
00876 return surrendmanager1->getImageData();
00877 }
00878
00882 vtkImageData* wxMaracasRenderTabbedPanel::getSurfBImage()
00883 {
00884 return surrendmanager2->getImageData();
00885 }
00886
00890 vtkImageData* wxMaracasRenderTabbedPanel::getSurfCImage()
00891 {
00892 return surrendmanager3->getImageData();
00893 }
00894
00898 int wxMaracasRenderTabbedPanel::getPropIdV()
00899 {
00900 return _id;
00901 }