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"
20 BEGIN_EVENT_TABLE( wxMaracasRenderTabbedPanel, wxPanel )
21 EVT_MENU( 12121, wxMaracasRenderTabbedPanel::OnRefreshView )
22 //EVT_MENU( 12122, wxMaracasRenderTabbedPanel::OnDClickLeft )
28 wxMaracasRenderTabbedPanel::wxMaracasRenderTabbedPanel(wxWindow* parent, int id, wxVtk3DBaseView* _baseView)
29 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize)
35 volmanager = new wxMaracasMultipleVolumeRendererManager();
36 surrendmanager1 = new wxMaracasSurfaceRenderingManager();
37 surrendmanager2 = new wxMaracasSurfaceRenderingManager();
38 surrendmanager3 = new wxMaracasSurfaceRenderingManager();
44 wxMaracasRenderTabbedPanel::~wxMaracasRenderTabbedPanel()
46 //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorV(_propid, false);
47 //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSA(_propid, false);
48 //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSB(_propid, false);
49 //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSC(_propid, false);
50 addRemoveActorMPR(false);
51 if( vtkmpr3Ddataviewer ) { delete vtkmpr3Ddataviewer; }
52 if( mwxvtkmpr3Dview ) { delete mwxvtkmpr3Dview; }
54 this->deleteVolume(_id);
60 ** Initializes rendered images, and creates and adds elements to the panel
62 void wxMaracasRenderTabbedPanel::createControls(vtkImageData* inImg, std::string pathfile, std::string filename)
64 wxFlexGridSizer* sizerrenderprop = new wxFlexGridSizer(1);
66 wxFlexGridSizer* sizercheck = new wxFlexGridSizer(3);
67 checkboxVol = new wxCheckBox(this,-1,wxString(_T("Volume Rendering")));
68 Connect(checkboxVol->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxVChange);
69 checkboxVol->SetValue(false);
70 sizercheck->Add(checkboxVol, wxFIXED_MINSIZE);
72 checkboxSA = new wxCheckBox(this,-1,wxString(_T("Surface Rendering A")));
73 Connect(checkboxSA->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSAChange);
74 checkboxSA->SetValue(false);
75 sizercheck->Add(checkboxSA, wxFIXED_MINSIZE);
77 checkboxViewer = new wxCheckBox(this,-1,wxString(_T("MPR")));
78 Connect(checkboxViewer->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onMPROptions);
79 checkboxViewer->SetValue(true);
80 sizercheck->Add(checkboxViewer, wxFIXED_MINSIZE);
82 checkboxSB = new wxCheckBox(this,-1,wxString(_T("Surface Rendering B")));
83 Connect(checkboxSB->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSBChange);
84 checkboxSB->SetValue(false);
85 sizercheck->Add(checkboxSB, wxFIXED_MINSIZE);
87 checkboxSC = new wxCheckBox(this,-1,wxString(_T("Surface Rendering C")));
88 Connect(checkboxSC->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSCChange);
89 checkboxSC->SetValue(false);
90 sizercheck->Add(checkboxSC, wxFIXED_MINSIZE);
92 sizercheck->Add(new wxStaticText(this, -1,_T("")), wxFIXED_MINSIZE);
94 wxButton* _openParameters = new wxButton(this, -1, wxString(_T("Apply Transformation")));
95 Connect(_openParameters->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onOpenParameters);
96 sizercheck->Add(_openParameters,wxFIXED_MINSIZE);
98 wxButton* _openCutter = new wxButton(this, -1, wxString(_T("Open Cutter View")));
99 Connect(_openCutter->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onOpenCutter);
100 sizercheck->Add(_openCutter,wxFIXED_MINSIZE);
101 sizerrenderprop->Add(sizercheck, wxFIXED_MINSIZE);
103 wxtabs = new wxNotebook(this, -1);
107 vtkImageData* img = volmanager->getImageData(pathfile);
108 //vtkImageData* img1 = surrendmanager1->getImageData(pathfile);
109 //vtkImageData* img2 = surrendmanager2->getImageData(pathfile);
110 //vtkImageData* img3 = surrendmanager3->getImageData(pathfile);
111 if(img!=NULL /*&& img1!=NULL && img2!=NULL && img3!=NULL*/)
113 addVolume(img, filename);
114 addSurface1(img, filename);
115 addSurface2(img, filename);
116 addSurface3(img, filename);
118 volname = (wxString) filename;
124 addVolume(inImg, filename);
125 addSurface1(inImg, filename);
126 addSurface2(inImg, filename);
127 addSurface3(inImg, filename);
131 sizerrenderprop->Add(wxtabs, wxSizerFlags().Expand().Center());
133 this->SetSizer(sizerrenderprop, true);
134 this->SetAutoLayout( true );
139 ** Sets given renderer
141 void wxMaracasRenderTabbedPanel::setRenderer(vtkRenderer* renderer)
143 volmanager->setRenderer(renderer);
144 surrendmanager1->setRenderer(renderer);
145 surrendmanager2->setRenderer(renderer);
146 surrendmanager3->setRenderer(renderer);
150 ** Adds a volume using Volume Rendering
152 void wxMaracasRenderTabbedPanel::addVolume(vtkImageData* img, std::string dataname)
156 int _propidV = volmanager->addVolume(_id, img, dataname);
159 wxMaracasMultipleVolumeRendererPanel* controlpanV = new wxMaracasMultipleVolumeRendererPanel(wxtabs, _propidV, img, true);
160 wxtabs->AddPage(controlpanV, _T("Vol Rendering"), true);
161 controlpanV->updateVolume();
162 wxtabs->GetPage(0)->Disable();
164 volmanager->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
169 std::cout << "Exception : " << str << '\n';
170 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
177 ** Adds a volume using surface rendering
179 void wxMaracasRenderTabbedPanel::addSurface1(vtkImageData* img, std::string dataname)
183 int _propidSA = surrendmanager1->addPropMHD(_id, img, dataname);
187 wxMaracasSurfaceRenderingPanel* controlpanSA = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSA, true, 1);
188 int maxiso = surrendmanager1->getMaxIsoValue(_propidSA);
189 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSA)->createControls(maxiso);
190 wxtabs->AddPage(controlpanSA, _T("SR A"));
191 wxtabs->GetPage(1)->Disable();
193 surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
198 std::cout << "Exception : " << str << '\n';
199 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
206 ** Adds a volume using surface rendering
208 void wxMaracasRenderTabbedPanel::addSurface2(vtkImageData* img, std::string dataname)
212 int _propidSB = surrendmanager2->addPropMHD(_id, img, dataname);
215 wxMaracasSurfaceRenderingPanel* controlpanSB = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSB, true, 2);
216 int maxiso = surrendmanager2->getMaxIsoValue(_propidSB);
217 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSB)->createControls(maxiso);
218 wxtabs->AddPage(controlpanSB, _T("SR B"));
219 wxtabs->GetPage(2)->Disable();
221 surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
227 std::cout << "Exception : " << str << '\n';
228 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
235 ** Adds a volume using Surface Rendering
237 void wxMaracasRenderTabbedPanel::addSurface3(vtkImageData* img, std::string dataname)
241 int _propidSC = surrendmanager3->addPropMHD(_id, img, dataname);
245 wxMaracasSurfaceRenderingPanel* controlpanSC = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSC, true, 3);
246 int maxiso = surrendmanager3->getMaxIsoValue(_propidSC);
247 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSC)->createControls(maxiso);
248 wxtabs->AddPage(controlpanSC, _T("SR C"));
249 wxtabs->GetPage(3)->Disable();
251 surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
256 std::cout << "Exception : " << str << '\n';
257 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
266 void wxMaracasRenderTabbedPanel::addMPROptions()
269 vtkMPRBaseData* mvtkmprbasedata = new vtkMPRBaseData();
270 marImageData* marimagedata = new marImageData( getVolImage() );
271 mvtkmprbasedata ->SetMarImageData(marimagedata);
273 mwxvtkmpr3Dview = new wxVtkMPR3DView( baseView );
275 vtkmpr3Ddataviewer = new vtkMPR3DDataViewer();
277 wxPanel *panelControl = new wxPanel(wxtabs,-1);
278 controlPanelMPR3D = mwxvtkmpr3Dview->CreateControlPanel(panelControl, true);
280 wxFlexGridSizer *sizerCtrol = new wxFlexGridSizer(1);
281 sizerCtrol ->Add(controlPanelMPR3D, 1, wxALL|wxEXPAND, 2);
283 panelControl->SetAutoLayout(true);
284 panelControl->SetSizer(sizerCtrol);
285 panelControl->SetSize(400,350);
286 panelControl->Layout();
289 int x = 0,y = 0,z = 0;
298 double org[3],spc[3];
306 if (mvtkmprbasedata!=NULL)
308 mvtkmprbasedata->Configure();
309 /*x = mvtkmprbasedata -> GetMaxPositionX()/2;
310 y = mvtkmprbasedata -> GetMaxPositionY()/2;
311 z = mvtkmprbasedata -> GetMaxPositionZ()/2; */
313 if(mvtkmprbasedata->GetImageData() != NULL)
315 mvtkmprbasedata->GetImageData()->GetExtent(ext);
316 mvtkmprbasedata->GetImageData()->GetOrigin(org);
317 mvtkmprbasedata->GetImageData()->GetSpacing(spc);
319 x = (ext[0]+ext[1])/2;
320 y = (ext[2]+ext[3])/2;
321 z = (ext[4]+ext[5])/2;
323 mvtkmprbasedata->SetX( x );
324 mvtkmprbasedata->SetY( y );
325 mvtkmprbasedata->SetZ( z );
329 mvtkmprbasedata->SetX( 0 );
330 mvtkmprbasedata->SetY( 0 );
331 mvtkmprbasedata->SetZ( 0 );
337 baseView ->Configure();
340 if (vtkmpr3Ddataviewer !=NULL)
342 vtkmpr3Ddataviewer ->SetVtkMPRBaseData(mvtkmprbasedata);
343 vtkmpr3Ddataviewer ->Configure();
345 if (mwxvtkmpr3Dview !=NULL)
347 mwxvtkmpr3Dview ->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
348 mwxvtkmpr3Dview ->Configure();
349 mwxvtkmpr3Dview ->ResetCamera(ext,org,spc);
350 vtkInteractorStyleBaseView* vtkInteractorBV = (vtkInteractorStyleBaseView*)mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetInteractorStyleBaseView();
351 vtkInteractorBV->AddParentToReport(this);
355 wxtabs->AddPage(panelControl, _T("MPR"));
356 wxtabs->GetPage(id)->Enable();
357 wxtabs->SetSelection(id);
359 ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleZ(true);
360 ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleXYZ(true);
361 mwxvtkmpr3Dview->showOutlineActor(true);
362 mwxvtkmpr3Dview->Refresh();
367 ** Deletes complete volume
369 void wxMaracasRenderTabbedPanel::deleteVolume(int volid)
373 volmanager->deleteActor(volid);
374 surrendmanager1->deleteActor(volid);
375 surrendmanager2->deleteActor(volid);
376 surrendmanager3->deleteActor(volid);
380 std::cout << "Exception : " << str << '\n';
381 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
388 ** Adds or removes volume rendering actor with given ID
390 void wxMaracasRenderTabbedPanel::addRemoveActorV(int id, bool addremove)
393 volmanager->addRemoveActor(id, addremove);
397 std::cout << "Exception : " << str << '\n';
398 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
405 ** Adds or removes surface rendering actor with given ID
407 void wxMaracasRenderTabbedPanel::addRemoveActorSA(int id, bool addremove)
410 surrendmanager1->addRemoveActor(id, addremove);
413 std::cout << "Exception : " << str << '\n';
414 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
421 ** Adds or removes surface rendering actor with given ID
423 void wxMaracasRenderTabbedPanel::addRemoveActorSB(int id, bool addremove)
426 surrendmanager2->addRemoveActor(id, addremove);
429 std::cout << "Exception : " << str << '\n';
430 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
437 ** Adds or removes surface rendering actor with given ID
439 void wxMaracasRenderTabbedPanel::addRemoveActorSC(int id, bool addremove)
442 surrendmanager3->addRemoveActor(id, addremove);
445 std::cout << "Exception : " << str << '\n';
446 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
452 void wxMaracasRenderTabbedPanel::addRemoveActorMPR(bool addremove)
455 wxtabs->SetSelection(id);
458 wxtabs->GetPage(id)->Enable();
460 bool valueX = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleX();
461 bool valueY = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleY();
462 bool valueZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleZ();
463 bool valueXYZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleXYZ();
464 bool valuePlane = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisiblePlane();
466 mwxvtkmpr3Dview->VisibleImageActor( 0, valueX );
467 mwxvtkmpr3Dview->VisibleImageActor( 1, valueY );
468 mwxvtkmpr3Dview->VisibleImageActor( 2, valueZ );
469 mwxvtkmpr3Dview->VisiblePointWidget(valueXYZ);
470 mwxvtkmpr3Dview->VisiblePlaneWidget(valuePlane);
471 mwxvtkmpr3Dview->showOutlineActor(true);
473 mwxvtkmpr3Dview->Refresh();
479 wxtabs->GetPage(id)->Disable();
481 mwxvtkmpr3Dview->VisiblePointWidget(false);
482 mwxvtkmpr3Dview->VisiblePlaneWidget(false);
483 mwxvtkmpr3Dview->VisibleImageActor(0, false );
484 mwxvtkmpr3Dview->VisibleImageActor(1, false );
485 mwxvtkmpr3Dview->VisibleImageActor(2, false );
486 mwxvtkmpr3Dview->showOutlineActor(false);
487 mwxvtkmpr3Dview->Refresh();
489 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
490 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
496 ** Sets color points values for the given volume rendering identified by parameter: volumeid
498 void wxMaracasRenderTabbedPanel::SetValuesColorPointsFunction(int volid, std::vector<double> greylevelcolors,std::vector<double> red,std::vector<double> green,std::vector<double> blue)
500 volmanager->setVolumeColor(volid, greylevelcolors, red, green, blue);
504 ** Sets points values for the given volume rendering identified by parameter: volumeid
506 void wxMaracasRenderTabbedPanel::SetValuesPointsFunction(int volid, std::vector<double> greylevel, std::vector<double> values)
509 volmanager->setVolumeOpacity(volid, greylevel, values);
513 wxString s( str,wxConvUTF8 );
514 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
521 ** Returns transfer function for the given volume rendering identified by parameter: volumeid
523 vtkPiecewiseFunction* wxMaracasRenderTabbedPanel::GetTransferFunction(int volumeid)
525 return volmanager->GetTransferFunction(volumeid);
529 ** Returns color function for the given volume rendering identified by parameter: volumeid
531 vtkColorTransferFunction* wxMaracasRenderTabbedPanel::GetColorFunction(int volumeid)
533 return volmanager->GetColorFunction(volumeid);
537 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
539 void wxMaracasRenderTabbedPanel::changeOpacityA(int _propid, int value)
541 surrendmanager1->changeOpacity(_propid,value);
545 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
547 void wxMaracasRenderTabbedPanel::changeIsoValueA(int propid, double value)
549 surrendmanager1->changeIsoValue(propid, value);
553 ** Changes color for the given surface rendering image identified by parameter: propid
555 void wxMaracasRenderTabbedPanel::changeColorA(int propid, double red, double green, double blue)
559 surrendmanager1->changeColor(propid, red, green, blue);
563 wxString s( str,wxConvUTF8 );
564 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
571 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
573 void wxMaracasRenderTabbedPanel::changeOpacityB(int _propid, int value)
575 surrendmanager2->changeOpacity(_propid,value);
579 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
581 void wxMaracasRenderTabbedPanel::changeIsoValueB(int propid, double value)
583 surrendmanager2->changeIsoValue(propid, value);
587 ** Changes color for the given surface rendering image identified by parameter: propid
589 void wxMaracasRenderTabbedPanel::changeColorB(int propid, double red, double green, double blue)
593 surrendmanager2->changeColor(propid, red, green, blue);
597 wxString s( str,wxConvUTF8 );
598 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
605 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
607 void wxMaracasRenderTabbedPanel::changeOpacityC(int _propid, int value)
609 surrendmanager3->changeOpacity(_propid,value);
613 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
615 void wxMaracasRenderTabbedPanel::changeIsoValueC(int propid, double value)
617 surrendmanager3->changeIsoValue(propid, value);
621 ** Changes color for the given surface rendering image identified by parameter: propid
623 void wxMaracasRenderTabbedPanel::changeColorC(int propid, double red, double green, double blue)
627 surrendmanager3->changeColor(propid, red, green, blue);
631 wxString s( str,wxConvUTF8 );
632 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
639 ** Method called when VolumeRendering checkbox status changes: Either shows or hides VolumeRendering image
641 void wxMaracasRenderTabbedPanel::onCheckBoxVChange(wxCommandEvent& event)
644 volmanager->addRemoveActor(this->getPropIdV(), checkboxVol->GetValue());
647 wxtabs->SetSelection(id);
649 if(checkboxVol->GetValue())
651 wxtabs->GetPage(id)->Enable();
655 wxtabs->GetPage(id)->Disable();
659 std::cout << "Exception : " << str << '\n';
660 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
667 ** Method called when SurfaceRendering A checkbox status changes: Either shows or hides SurfaceRendering image
669 void wxMaracasRenderTabbedPanel::onCheckBoxSAChange(wxCommandEvent& event)
672 surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSA->GetValue());
675 wxtabs->SetSelection(id);
677 if(checkboxSA->GetValue())
679 wxtabs->GetPage(id)->Enable();
684 wxtabs->GetPage(id)->Disable();
688 std::cout << "Exception : " << str << '\n';
689 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
696 ** Method called when SurfaceRendering B checkbox status changes: Either shows or hides SurfaceRendering B image
698 void wxMaracasRenderTabbedPanel::onCheckBoxSBChange(wxCommandEvent& event)
701 surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSB->GetValue());
704 wxtabs->SetSelection(id);
706 if(checkboxSB->GetValue())
708 wxtabs->GetPage(id)->Enable();
712 wxtabs->GetPage(id)->Disable();
716 std::cout << "Exception : " << str << '\n';
717 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
724 ** Method called when SurfaceRendering C checkbox status changes: Either shows or hides SurfaceRendering C image
726 void wxMaracasRenderTabbedPanel::onCheckBoxSCChange(wxCommandEvent& event)
729 surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
732 wxtabs->SetSelection(id);
734 if(checkboxSC->GetValue())
736 wxtabs->GetPage(id)->Enable();
740 wxtabs->GetPage(id)->Disable();
744 std::cout << "Exception : " << str << '\n';
745 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
752 ** Method called when MPR checkbox status changes: Either shows or hides actors
754 void wxMaracasRenderTabbedPanel::onMPROptions(wxCommandEvent& event)
756 addRemoveActorMPR(checkboxViewer->IsChecked());
759 wxtabs->SetSelection(id);
760 if(checkboxViewer->IsChecked())
763 wxtabs->GetPage(id)->Enable();
765 bool valueX = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleX();
766 bool valueY = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleY();
767 bool valueZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleZ();
768 bool valueXYZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleXYZ();
769 bool valuePlane = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisiblePlane();
771 mwxvtkmpr3Dview->VisibleImageActor( 0, valueX );
772 mwxvtkmpr3Dview->VisibleImageActor( 1, valueY );
773 mwxvtkmpr3Dview->VisibleImageActor( 2, valueZ );
774 mwxvtkmpr3Dview->VisiblePointWidget(valueXYZ);
775 mwxvtkmpr3Dview->VisiblePlaneWidget(valuePlane);
776 mwxvtkmpr3Dview->showOutlineActor(true);
778 mwxvtkmpr3Dview->Refresh();
784 wxtabs->GetPage(id)->Disable();
786 mwxvtkmpr3Dview->VisiblePointWidget(false);
787 mwxvtkmpr3Dview->VisiblePlaneWidget(false);
788 mwxvtkmpr3Dview->VisibleImageActor(0, false );
789 mwxvtkmpr3Dview->VisibleImageActor(1, false );
790 mwxvtkmpr3Dview->VisibleImageActor(2, false );
791 mwxvtkmpr3Dview->showOutlineActor(false);
792 mwxvtkmpr3Dview->Refresh();
794 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
795 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
799 void wxMaracasRenderTabbedPanel::OnRefreshView(wxCommandEvent & event)
801 printf("CPR wxMaracasRenderTabbedPanel::OnRefreshView \n");
802 mwxvtkmpr3Dview->RefreshView();
804 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
805 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
811 void wxMaracasRenderTabbedPanel::onOpenParameters(wxCommandEvent& event){
814 dialog = new wxMaracasRenderImageManagementPanel(this, volmanager, surrendmanager1, surrendmanager2, surrendmanager3, volname, _id);
815 dialog->SetSize(460, 580);
818 else if(dialog != NULL)
827 void wxMaracasRenderTabbedPanel::onOpenCutter(wxCommandEvent& event)
829 vtkImageData* img = getVolImage();
830 std::vector<int> type;
836 wxMaracasDialog_NViewers* dialog1 = new wxMaracasDialog_NViewers(this, img, &type, wxString(_T("Cut Module") ));
837 //dialog1->SetSize(800, 700);
839 /**std::string path = crea::System::GetDllAppPath("bbcreaMaracasVisu.dll");
840 cutter = CutModelMainPanel::getInstance(dialog1->getinternalPanel(), path);
841 cutter->setRenderer( dialog1->getViewer()->GetwxVtkBaseView(1)->GetRenderer() );
842 cutter->setInteractor( dialog1->getViewer()->GetwxVtkBaseView(1)->GetWxVTKRenderWindowInteractor() );
843 cutter->setImageData(getVolImage());
845 //dialog1->AddPanel(cutter);
850 ** Gets volume rendering image asociated to the given ID
852 void wxMaracasRenderTabbedPanel::onColorChange(wxCommandEvent& event)
854 /*Temporarily disabled*/
856 //if(mwxwidget->ShowModal()==wxID_OK){
858 // mwxwidget->Show(false);
865 vtkImageData* wxMaracasRenderTabbedPanel::getVolImage()
867 return volmanager->getImageData();
871 ** Gets surface rendering A image asociated to the given ID
873 vtkImageData* wxMaracasRenderTabbedPanel::getSurfAImage()
875 return surrendmanager1->getImageData();
879 ** Gets surface rendering B image asociated to the given ID
881 vtkImageData* wxMaracasRenderTabbedPanel::getSurfBImage()
883 return surrendmanager2->getImageData();
887 ** Gets surface rendering C image asociated to the given ID
889 vtkImageData* wxMaracasRenderTabbedPanel::getSurfCImage()
891 return surrendmanager3->getImageData();
897 int wxMaracasRenderTabbedPanel::getPropIdV()