1 #include "wxMaracasRenderTabbedPanel.h"
3 #include "HistogramDialogComboBox.h"
4 #include "wxMaracasMultipleVolumeRendererPanel.h"
5 #include "wxMaracasSurfaceRenderingPanel.h"
6 #include "wxMaracasSurfaceRenderingProp3DMHD.h"
7 #include "wxMaracasMultipleVolumeRendererManagerData.h"
8 #include "wxMaracasDialog_NViewers.h"
9 #include "wxVtkMPR3DViewCntrlPanel.h"
11 #include <wx/colordlg.h>
12 #include <wx/button.h>
13 #include <vtkProp3D.h>
14 #include <OpenImage.xpm>
17 //#include "creaSystem.h"
21 BEGIN_EVENT_TABLE( wxMaracasRenderTabbedPanel, wxPanel )
22 EVT_MENU( 12121, wxMaracasRenderTabbedPanel::OnRefreshView )
23 //EVT_MENU( 12122, wxMaracasRenderTabbedPanel::OnDClickLeft )
29 wxMaracasRenderTabbedPanel::wxMaracasRenderTabbedPanel(wxWindow* parent, int id, wxVtk3DBaseView* _baseView)
30 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize)
36 volmanager = new wxMaracasMultipleVolumeRendererManager();
37 surrendmanager1 = new wxMaracasSurfaceRenderingManager();
38 surrendmanager2 = new wxMaracasSurfaceRenderingManager();
39 surrendmanager3 = new wxMaracasSurfaceRenderingManager();
45 wxMaracasRenderTabbedPanel::~wxMaracasRenderTabbedPanel()
47 //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorV(_propid, false);
48 //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSA(_propid, false);
49 //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSB(_propid, false);
50 //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSC(_propid, false);
51 addRemoveActorMPR(false);
52 if( vtkmpr3Ddataviewer ) { delete vtkmpr3Ddataviewer; }
53 if( mwxvtkmpr3Dview ) { delete mwxvtkmpr3Dview; }
55 this->deleteVolume(_id);
61 ** Initializes rendered images, and creates and adds elements to the panel
63 void wxMaracasRenderTabbedPanel::createControls(vtkImageData* inImg, std::string pathfile, std::string filename)
65 wxFlexGridSizer* sizerrenderprop = new wxFlexGridSizer(1);
67 wxFlexGridSizer* sizercheck = new wxFlexGridSizer(3);
68 checkboxVol = new wxCheckBox(this,-1,wxString(_T("Volume Rendering")));
69 Connect(checkboxVol->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxVChange);
70 checkboxVol->SetValue(false);
71 sizercheck->Add(checkboxVol, wxFIXED_MINSIZE);
73 checkboxSA = new wxCheckBox(this,-1,wxString(_T("Surface Rendering A")));
74 Connect(checkboxSA->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSAChange);
75 checkboxSA->SetValue(false);
76 sizercheck->Add(checkboxSA, wxFIXED_MINSIZE);
78 checkboxViewer = new wxCheckBox(this,-1,wxString(_T("MPR")));
79 Connect(checkboxViewer->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onMPROptions);
80 checkboxViewer->SetValue(true);
81 sizercheck->Add(checkboxViewer, wxFIXED_MINSIZE);
83 checkboxSB = new wxCheckBox(this,-1,wxString(_T("Surface Rendering B")));
84 Connect(checkboxSB->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSBChange);
85 checkboxSB->SetValue(false);
86 sizercheck->Add(checkboxSB, wxFIXED_MINSIZE);
88 checkboxSC = new wxCheckBox(this,-1,wxString(_T("Surface Rendering C")));
89 Connect(checkboxSC->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSCChange);
90 checkboxSC->SetValue(false);
91 sizercheck->Add(checkboxSC, wxFIXED_MINSIZE);
93 sizercheck->Add(new wxStaticText(this, -1,_T("")), wxFIXED_MINSIZE);
95 wxButton* _openParameters = new wxButton(this, -1, wxString(_T("Apply Transformation")));
96 Connect(_openParameters->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onOpenParameters);
97 sizercheck->Add(_openParameters,wxFIXED_MINSIZE);
99 wxButton* _openCutter = new wxButton(this, -1, wxString(_T("Open Cutter View")));
100 Connect(_openCutter->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onOpenCutter);
101 sizercheck->Add(_openCutter,wxFIXED_MINSIZE);
102 sizerrenderprop->Add(sizercheck, wxFIXED_MINSIZE);
104 wxtabs = new wxNotebook(this, -1);
108 vtkImageData* img = volmanager->getImageData(pathfile);
109 //vtkImageData* img1 = surrendmanager1->getImageData(pathfile);
110 //vtkImageData* img2 = surrendmanager2->getImageData(pathfile);
111 //vtkImageData* img3 = surrendmanager3->getImageData(pathfile);
112 if(img!=NULL /*&& img1!=NULL && img2!=NULL && img3!=NULL*/)
114 addVolume(img, filename);
115 addSurface1(img, filename);
116 addSurface2(img, filename);
117 addSurface3(img, filename);
119 <<<<<<< wxMaracasRenderTabbedPanel.cpp
120 // volname = (wxString) filename;
121 volname = wxString(filename.c_str(),wxConvUTF8);
123 volname = crea::std2wx(filename);
130 addVolume(inImg, filename);
131 addSurface1(inImg, filename);
132 addSurface2(inImg, filename);
133 addSurface3(inImg, filename);
137 sizerrenderprop->Add(wxtabs, wxSizerFlags().Expand().Center());
139 this->SetSizer(sizerrenderprop, true);
140 this->SetAutoLayout( true );
145 ** Sets given renderer
147 void wxMaracasRenderTabbedPanel::setRenderer(vtkRenderer* renderer)
149 volmanager->setRenderer(renderer);
150 surrendmanager1->setRenderer(renderer);
151 surrendmanager2->setRenderer(renderer);
152 surrendmanager3->setRenderer(renderer);
156 ** Adds a volume using Volume Rendering
158 void wxMaracasRenderTabbedPanel::addVolume(vtkImageData* img, std::string dataname)
162 int _propidV = volmanager->addVolume(_id, img, dataname);
165 wxMaracasMultipleVolumeRendererPanel* controlpanV = new wxMaracasMultipleVolumeRendererPanel(wxtabs, _propidV, img, true);
166 wxtabs->AddPage(controlpanV, _T("Vol Rendering"), true);
167 controlpanV->updateVolume();
168 wxtabs->GetPage(0)->Disable();
170 volmanager->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
175 std::cout << "Exception : " << str << '\n';
176 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
183 ** Adds a volume using surface rendering
185 void wxMaracasRenderTabbedPanel::addSurface1(vtkImageData* img, std::string dataname)
189 int _propidSA = surrendmanager1->addPropMHD(_id, img, dataname);
193 wxMaracasSurfaceRenderingPanel* controlpanSA = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSA, true, 1);
194 int maxiso = surrendmanager1->getMaxIsoValue(_propidSA);
195 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSA)->createControls(maxiso);
196 wxtabs->AddPage(controlpanSA, _T("SR A"));
197 wxtabs->GetPage(1)->Disable();
199 surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
204 std::cout << "Exception : " << str << '\n';
205 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
212 ** Adds a volume using surface rendering
214 void wxMaracasRenderTabbedPanel::addSurface2(vtkImageData* img, std::string dataname)
218 int _propidSB = surrendmanager2->addPropMHD(_id, img, dataname);
221 wxMaracasSurfaceRenderingPanel* controlpanSB = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSB, true, 2);
222 int maxiso = surrendmanager2->getMaxIsoValue(_propidSB);
223 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSB)->createControls(maxiso);
224 wxtabs->AddPage(controlpanSB, _T("SR B"));
225 wxtabs->GetPage(2)->Disable();
227 surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
233 std::cout << "Exception : " << str << '\n';
234 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
241 ** Adds a volume using Surface Rendering
243 void wxMaracasRenderTabbedPanel::addSurface3(vtkImageData* img, std::string dataname)
247 int _propidSC = surrendmanager3->addPropMHD(_id, img, dataname);
251 wxMaracasSurfaceRenderingPanel* controlpanSC = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSC, true, 3);
252 int maxiso = surrendmanager3->getMaxIsoValue(_propidSC);
253 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSC)->createControls(maxiso);
254 wxtabs->AddPage(controlpanSC, _T("SR C"));
255 wxtabs->GetPage(3)->Disable();
257 surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
262 std::cout << "Exception : " << str << '\n';
263 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
272 void wxMaracasRenderTabbedPanel::addMPROptions()
275 vtkMPRBaseData* mvtkmprbasedata = new vtkMPRBaseData();
276 marImageData* marimagedata = new marImageData( getVolImage() );
277 mvtkmprbasedata ->SetMarImageData(marimagedata);
279 mwxvtkmpr3Dview = new wxVtkMPR3DView( baseView );
281 vtkmpr3Ddataviewer = new vtkMPR3DDataViewer();
283 wxPanel *panelControl = new wxPanel(wxtabs,-1);
284 controlPanelMPR3D = mwxvtkmpr3Dview->CreateControlPanel(panelControl, true);
286 wxFlexGridSizer *sizerCtrol = new wxFlexGridSizer(1);
287 sizerCtrol ->Add(controlPanelMPR3D, 1, wxALL|wxEXPAND, 2);
289 panelControl->SetAutoLayout(true);
290 panelControl->SetSizer(sizerCtrol);
291 panelControl->SetSize(400,350);
292 panelControl->Layout();
295 int x = 0,y = 0,z = 0;
304 double org[3],spc[3];
312 if (mvtkmprbasedata!=NULL)
314 mvtkmprbasedata->Configure();
315 /*x = mvtkmprbasedata -> GetMaxPositionX()/2;
316 y = mvtkmprbasedata -> GetMaxPositionY()/2;
317 z = mvtkmprbasedata -> GetMaxPositionZ()/2; */
319 if(mvtkmprbasedata->GetImageData() != NULL)
321 mvtkmprbasedata->GetImageData()->GetExtent(ext);
322 mvtkmprbasedata->GetImageData()->GetOrigin(org);
323 mvtkmprbasedata->GetImageData()->GetSpacing(spc);
325 x = (ext[0]+ext[1])/2;
326 y = (ext[2]+ext[3])/2;
327 z = (ext[4]+ext[5])/2;
329 mvtkmprbasedata->SetX( x );
330 mvtkmprbasedata->SetY( y );
331 mvtkmprbasedata->SetZ( z );
335 mvtkmprbasedata->SetX( 0 );
336 mvtkmprbasedata->SetY( 0 );
337 mvtkmprbasedata->SetZ( 0 );
343 baseView ->Configure();
346 if (vtkmpr3Ddataviewer !=NULL)
348 vtkmpr3Ddataviewer ->SetVtkMPRBaseData(mvtkmprbasedata);
349 vtkmpr3Ddataviewer ->Configure();
351 if (mwxvtkmpr3Dview !=NULL)
353 mwxvtkmpr3Dview ->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
354 mwxvtkmpr3Dview ->Configure();
355 mwxvtkmpr3Dview ->ResetCamera(ext,org,spc);
356 vtkInteractorStyleBaseView* vtkInteractorBV = (vtkInteractorStyleBaseView*)mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetInteractorStyleBaseView();
357 vtkInteractorBV->AddParentToReport(this);
361 wxtabs->AddPage(panelControl, _T("MPR"));
362 wxtabs->GetPage(id)->Enable();
363 wxtabs->SetSelection(id);
365 ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleZ(true);
366 ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleXYZ(true);
367 mwxvtkmpr3Dview->showOutlineActor(true);
368 mwxvtkmpr3Dview->Refresh();
373 ** Deletes complete volume
375 void wxMaracasRenderTabbedPanel::deleteVolume(int volid)
379 volmanager->deleteActor(volid);
380 surrendmanager1->deleteActor(volid);
381 surrendmanager2->deleteActor(volid);
382 surrendmanager3->deleteActor(volid);
386 std::cout << "Exception : " << str << '\n';
387 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
394 ** Adds or removes volume rendering actor with given ID
396 void wxMaracasRenderTabbedPanel::addRemoveActorV(int id, bool addremove)
399 volmanager->addRemoveActor(id, addremove);
403 std::cout << "Exception : " << str << '\n';
404 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
411 ** Adds or removes surface rendering actor with given ID
413 void wxMaracasRenderTabbedPanel::addRemoveActorSA(int id, bool addremove)
416 surrendmanager1->addRemoveActor(id, addremove);
419 std::cout << "Exception : " << str << '\n';
420 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
427 ** Adds or removes surface rendering actor with given ID
429 void wxMaracasRenderTabbedPanel::addRemoveActorSB(int id, bool addremove)
432 surrendmanager2->addRemoveActor(id, addremove);
435 std::cout << "Exception : " << str << '\n';
436 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
443 ** Adds or removes surface rendering actor with given ID
445 void wxMaracasRenderTabbedPanel::addRemoveActorSC(int id, bool addremove)
448 surrendmanager3->addRemoveActor(id, addremove);
451 std::cout << "Exception : " << str << '\n';
452 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
458 void wxMaracasRenderTabbedPanel::addRemoveActorMPR(bool addremove)
461 wxtabs->SetSelection(id);
464 wxtabs->GetPage(id)->Enable();
466 bool valueX = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleX();
467 bool valueY = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleY();
468 bool valueZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleZ();
469 bool valueXYZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleXYZ();
470 bool valuePlane = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisiblePlane();
472 mwxvtkmpr3Dview->VisibleImageActor( 0, valueX );
473 mwxvtkmpr3Dview->VisibleImageActor( 1, valueY );
474 mwxvtkmpr3Dview->VisibleImageActor( 2, valueZ );
475 mwxvtkmpr3Dview->VisiblePointWidget(valueXYZ);
476 mwxvtkmpr3Dview->VisiblePlaneWidget(valuePlane);
477 mwxvtkmpr3Dview->showOutlineActor(true);
479 mwxvtkmpr3Dview->Refresh();
485 wxtabs->GetPage(id)->Disable();
487 mwxvtkmpr3Dview->VisiblePointWidget(false);
488 mwxvtkmpr3Dview->VisiblePlaneWidget(false);
489 mwxvtkmpr3Dview->VisibleImageActor(0, false );
490 mwxvtkmpr3Dview->VisibleImageActor(1, false );
491 mwxvtkmpr3Dview->VisibleImageActor(2, false );
492 mwxvtkmpr3Dview->showOutlineActor(false);
493 mwxvtkmpr3Dview->Refresh();
495 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
496 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
502 ** Sets color points values for the given volume rendering identified by parameter: volumeid
504 void wxMaracasRenderTabbedPanel::SetValuesColorPointsFunction(int volid, std::vector<double> greylevelcolors,std::vector<double> red,std::vector<double> green,std::vector<double> blue)
506 volmanager->setVolumeColor(volid, greylevelcolors, red, green, blue);
510 ** Sets points values for the given volume rendering identified by parameter: volumeid
512 void wxMaracasRenderTabbedPanel::SetValuesPointsFunction(int volid, std::vector<double> greylevel, std::vector<double> values)
515 volmanager->setVolumeOpacity(volid, greylevel, values);
519 wxString s( str,wxConvUTF8 );
520 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
527 ** Returns transfer function for the given volume rendering identified by parameter: volumeid
529 vtkPiecewiseFunction* wxMaracasRenderTabbedPanel::GetTransferFunction(int volumeid)
531 return volmanager->GetTransferFunction(volumeid);
535 ** Returns color function for the given volume rendering identified by parameter: volumeid
537 vtkColorTransferFunction* wxMaracasRenderTabbedPanel::GetColorFunction(int volumeid)
539 return volmanager->GetColorFunction(volumeid);
543 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
545 void wxMaracasRenderTabbedPanel::changeOpacityA(int _propid, int value)
547 surrendmanager1->changeOpacity(_propid,value);
551 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
553 void wxMaracasRenderTabbedPanel::changeIsoValueA(int propid, double value)
555 surrendmanager1->changeIsoValue(propid, value);
559 ** Changes color for the given surface rendering image identified by parameter: propid
561 void wxMaracasRenderTabbedPanel::changeColorA(int propid, double red, double green, double blue)
565 surrendmanager1->changeColor(propid, red, green, blue);
569 wxString s( str,wxConvUTF8 );
570 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
577 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
579 void wxMaracasRenderTabbedPanel::changeOpacityB(int _propid, int value)
581 surrendmanager2->changeOpacity(_propid,value);
585 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
587 void wxMaracasRenderTabbedPanel::changeIsoValueB(int propid, double value)
589 surrendmanager2->changeIsoValue(propid, value);
593 ** Changes color for the given surface rendering image identified by parameter: propid
595 void wxMaracasRenderTabbedPanel::changeColorB(int propid, double red, double green, double blue)
599 surrendmanager2->changeColor(propid, red, green, blue);
603 wxString s( str,wxConvUTF8 );
604 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
611 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
613 void wxMaracasRenderTabbedPanel::changeOpacityC(int _propid, int value)
615 surrendmanager3->changeOpacity(_propid,value);
619 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
621 void wxMaracasRenderTabbedPanel::changeIsoValueC(int propid, double value)
623 surrendmanager3->changeIsoValue(propid, value);
627 ** Changes color for the given surface rendering image identified by parameter: propid
629 void wxMaracasRenderTabbedPanel::changeColorC(int propid, double red, double green, double blue)
633 surrendmanager3->changeColor(propid, red, green, blue);
637 wxString s( str,wxConvUTF8 );
638 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
645 ** Method called when VolumeRendering checkbox status changes: Either shows or hides VolumeRendering image
647 void wxMaracasRenderTabbedPanel::onCheckBoxVChange(wxCommandEvent& event)
650 volmanager->addRemoveActor(this->getPropIdV(), checkboxVol->GetValue());
653 wxtabs->SetSelection(id);
655 if(checkboxVol->GetValue())
657 wxtabs->GetPage(id)->Enable();
661 wxtabs->GetPage(id)->Disable();
665 std::cout << "Exception : " << str << '\n';
666 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
673 ** Method called when SurfaceRendering A checkbox status changes: Either shows or hides SurfaceRendering image
675 void wxMaracasRenderTabbedPanel::onCheckBoxSAChange(wxCommandEvent& event)
678 surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSA->GetValue());
681 wxtabs->SetSelection(id);
683 if(checkboxSA->GetValue())
685 wxtabs->GetPage(id)->Enable();
690 wxtabs->GetPage(id)->Disable();
694 std::cout << "Exception : " << str << '\n';
695 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
702 ** Method called when SurfaceRendering B checkbox status changes: Either shows or hides SurfaceRendering B image
704 void wxMaracasRenderTabbedPanel::onCheckBoxSBChange(wxCommandEvent& event)
707 surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSB->GetValue());
710 wxtabs->SetSelection(id);
712 if(checkboxSB->GetValue())
714 wxtabs->GetPage(id)->Enable();
718 wxtabs->GetPage(id)->Disable();
722 std::cout << "Exception : " << str << '\n';
723 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
730 ** Method called when SurfaceRendering C checkbox status changes: Either shows or hides SurfaceRendering C image
732 void wxMaracasRenderTabbedPanel::onCheckBoxSCChange(wxCommandEvent& event)
735 surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
738 wxtabs->SetSelection(id);
740 if(checkboxSC->GetValue())
742 wxtabs->GetPage(id)->Enable();
746 wxtabs->GetPage(id)->Disable();
750 std::cout << "Exception : " << str << '\n';
751 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
758 ** Method called when MPR checkbox status changes: Either shows or hides actors
760 void wxMaracasRenderTabbedPanel::onMPROptions(wxCommandEvent& event)
762 addRemoveActorMPR(checkboxViewer->IsChecked());
765 wxtabs->SetSelection(id);
766 if(checkboxViewer->IsChecked())
769 wxtabs->GetPage(id)->Enable();
771 bool valueX = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleX();
772 bool valueY = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleY();
773 bool valueZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleZ();
774 bool valueXYZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleXYZ();
775 bool valuePlane = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisiblePlane();
777 mwxvtkmpr3Dview->VisibleImageActor( 0, valueX );
778 mwxvtkmpr3Dview->VisibleImageActor( 1, valueY );
779 mwxvtkmpr3Dview->VisibleImageActor( 2, valueZ );
780 mwxvtkmpr3Dview->VisiblePointWidget(valueXYZ);
781 mwxvtkmpr3Dview->VisiblePlaneWidget(valuePlane);
782 mwxvtkmpr3Dview->showOutlineActor(true);
784 mwxvtkmpr3Dview->Refresh();
790 wxtabs->GetPage(id)->Disable();
792 mwxvtkmpr3Dview->VisiblePointWidget(false);
793 mwxvtkmpr3Dview->VisiblePlaneWidget(false);
794 mwxvtkmpr3Dview->VisibleImageActor(0, false );
795 mwxvtkmpr3Dview->VisibleImageActor(1, false );
796 mwxvtkmpr3Dview->VisibleImageActor(2, false );
797 mwxvtkmpr3Dview->showOutlineActor(false);
798 mwxvtkmpr3Dview->Refresh();
800 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
801 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
805 void wxMaracasRenderTabbedPanel::OnRefreshView(wxCommandEvent & event)
807 printf("CPR wxMaracasRenderTabbedPanel::OnRefreshView \n");
808 mwxvtkmpr3Dview->RefreshView();
810 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
811 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
817 void wxMaracasRenderTabbedPanel::onOpenParameters(wxCommandEvent& event){
820 dialog = new wxMaracasRenderImageManagementPanel(this, volmanager, surrendmanager1, surrendmanager2, surrendmanager3, volname, _id);
821 dialog->SetSize(460, 580);
824 else if(dialog != NULL)
833 void wxMaracasRenderTabbedPanel::onOpenCutter(wxCommandEvent& event)
835 vtkImageData* img = getVolImage();
836 std::vector<int> type;
842 wxMaracasDialog_NViewers* dialog1 = new wxMaracasDialog_NViewers(this, img, &type, wxString(_T("Cut Module") ));
843 //dialog1->SetSize(800, 700);
845 /**std::string path = crea::System::GetDllAppPath("bbcreaMaracasVisu.dll");
846 cutter = CutModelMainPanel::getInstance(dialog1->getinternalPanel(), path);
847 cutter->setRenderer( dialog1->getViewer()->GetwxVtkBaseView(1)->GetRenderer() );
848 cutter->setInteractor( dialog1->getViewer()->GetwxVtkBaseView(1)->GetWxVTKRenderWindowInteractor() );
849 cutter->setImageData(getVolImage());
851 //dialog1->AddPanel(cutter);
856 ** Gets volume rendering image asociated to the given ID
858 void wxMaracasRenderTabbedPanel::onColorChange(wxCommandEvent& event)
860 /*Temporarily disabled*/
862 //if(mwxwidget->ShowModal()==wxID_OK){
864 // mwxwidget->Show(false);
871 vtkImageData* wxMaracasRenderTabbedPanel::getVolImage()
873 return volmanager->getImageData();
877 ** Gets surface rendering A image asociated to the given ID
879 vtkImageData* wxMaracasRenderTabbedPanel::getSurfAImage()
881 return surrendmanager1->getImageData();
885 ** Gets surface rendering B image asociated to the given ID
887 vtkImageData* wxMaracasRenderTabbedPanel::getSurfBImage()
889 return surrendmanager2->getImageData();
893 ** Gets surface rendering C image asociated to the given ID
895 vtkImageData* wxMaracasRenderTabbedPanel::getSurfCImage()
897 return surrendmanager3->getImageData();
903 int wxMaracasRenderTabbedPanel::getPropIdV()