1 #include "wxMaracasRenderTabbedPanel.h"
3 #include "HistogramDialogComboBox.h"
4 #include "wxMaracasMultipleVolumeRendererPanel.h"
5 #include "wxMaracasSurfaceRenderingPanel.h"
6 #include "wxMaracasSurfaceRenderingProp3DMHD.h"
7 #include "volumerenderermanagerdata.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 VolumeRendererManager();
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 volname = crea::std2wx(filename);
125 addVolume(inImg, filename);
126 addSurface1(inImg, filename);
127 addSurface2(inImg, filename);
128 addSurface3(inImg, filename);
132 sizerrenderprop->Add(wxtabs, wxSizerFlags().Expand().Center());
134 this->SetSizer(sizerrenderprop, true);
135 this->SetAutoLayout( true );
140 ** Sets given renderer
142 void wxMaracasRenderTabbedPanel::setRenderer(vtkRenderer* renderer)
144 volmanager->setRenderer(renderer);
145 surrendmanager1->setRenderer(renderer);
146 surrendmanager2->setRenderer(renderer);
147 surrendmanager3->setRenderer(renderer);
151 ** Adds a volume using Volume Rendering
153 void wxMaracasRenderTabbedPanel::addVolume(vtkImageData* img, std::string dataname)
157 int _propidV = volmanager->addVolume(_id, img, dataname);
160 wxMaracasMultipleVolumeRendererPanel* controlpanV = new wxMaracasMultipleVolumeRendererPanel(wxtabs, _propidV, img, true);
161 wxtabs->AddPage(controlpanV, _T("Vol Rendering"), true);
162 controlpanV->updateVolume();
163 wxtabs->GetPage(0)->Disable();
165 volmanager->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
170 std::cout << "Exception : " << str << '\n';
171 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
178 ** Adds a volume using surface rendering
180 void wxMaracasRenderTabbedPanel::addSurface1(vtkImageData* img, std::string dataname)
184 int _propidSA = surrendmanager1->addPropMHD(_id, img, dataname);
188 wxMaracasSurfaceRenderingPanel* controlpanSA = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSA, true, 1);
189 int maxiso = surrendmanager1->getMaxIsoValue(_propidSA);
190 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSA)->createControls(maxiso);
191 wxtabs->AddPage(controlpanSA, _T("SR A"));
192 wxtabs->GetPage(1)->Disable();
194 surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
199 std::cout << "Exception : " << str << '\n';
200 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
207 ** Adds a volume using surface rendering
209 void wxMaracasRenderTabbedPanel::addSurface2(vtkImageData* img, std::string dataname)
213 int _propidSB = surrendmanager2->addPropMHD(_id, img, dataname);
216 wxMaracasSurfaceRenderingPanel* controlpanSB = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSB, true, 2);
217 int maxiso = surrendmanager2->getMaxIsoValue(_propidSB);
218 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSB)->createControls(maxiso);
219 wxtabs->AddPage(controlpanSB, _T("SR B"));
220 wxtabs->GetPage(2)->Disable();
222 surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
228 std::cout << "Exception : " << str << '\n';
229 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
236 ** Adds a volume using Surface Rendering
238 void wxMaracasRenderTabbedPanel::addSurface3(vtkImageData* img, std::string dataname)
242 int _propidSC = surrendmanager3->addPropMHD(_id, img, dataname);
246 wxMaracasSurfaceRenderingPanel* controlpanSC = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSC, true, 3);
247 int maxiso = surrendmanager3->getMaxIsoValue(_propidSC);
248 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSC)->createControls(maxiso);
249 wxtabs->AddPage(controlpanSC, _T("SR C"));
250 wxtabs->GetPage(3)->Disable();
252 surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
257 std::cout << "Exception : " << str << '\n';
258 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
267 void wxMaracasRenderTabbedPanel::addMPROptions()
270 vtkMPRBaseData* mvtkmprbasedata = new vtkMPRBaseData();
271 marImageData* marimagedata = new marImageData( getVolImage() );
272 mvtkmprbasedata ->SetMarImageData(marimagedata);
274 mwxvtkmpr3Dview = new wxVtkMPR3DView( baseView );
276 vtkmpr3Ddataviewer = new vtkMPR3DDataViewer();
278 wxPanel *panelControl = new wxPanel(wxtabs,-1);
279 controlPanelMPR3D = mwxvtkmpr3Dview->CreateControlPanel(panelControl, true);
281 wxFlexGridSizer *sizerCtrol = new wxFlexGridSizer(1);
282 sizerCtrol ->Add(controlPanelMPR3D, 1, wxALL|wxEXPAND, 2);
284 panelControl->SetAutoLayout(true);
285 panelControl->SetSizer(sizerCtrol);
286 panelControl->SetSize(400,350);
287 panelControl->Layout();
290 int x = 0,y = 0,z = 0;
299 double org[3],spc[3];
307 if (mvtkmprbasedata!=NULL)
309 mvtkmprbasedata->Configure();
310 /*x = mvtkmprbasedata -> GetMaxPositionX()/2;
311 y = mvtkmprbasedata -> GetMaxPositionY()/2;
312 z = mvtkmprbasedata -> GetMaxPositionZ()/2; */
314 if(mvtkmprbasedata->GetImageData() != NULL)
316 mvtkmprbasedata->GetImageData()->GetExtent(ext);
317 mvtkmprbasedata->GetImageData()->GetOrigin(org);
318 mvtkmprbasedata->GetImageData()->GetSpacing(spc);
320 x = (ext[0]+ext[1])/2;
321 y = (ext[2]+ext[3])/2;
322 z = (ext[4]+ext[5])/2;
324 mvtkmprbasedata->SetX( x );
325 mvtkmprbasedata->SetY( y );
326 mvtkmprbasedata->SetZ( z );
330 mvtkmprbasedata->SetX( 0 );
331 mvtkmprbasedata->SetY( 0 );
332 mvtkmprbasedata->SetZ( 0 );
338 baseView ->Configure();
341 if (vtkmpr3Ddataviewer !=NULL)
343 vtkmpr3Ddataviewer ->SetVtkMPRBaseData(mvtkmprbasedata);
344 vtkmpr3Ddataviewer ->Configure();
346 if (mwxvtkmpr3Dview !=NULL)
348 mwxvtkmpr3Dview ->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
349 mwxvtkmpr3Dview ->Configure();
350 mwxvtkmpr3Dview ->ResetCamera(ext,org,spc);
351 vtkInteractorStyleBaseView* vtkInteractorBV = (vtkInteractorStyleBaseView*)mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetInteractorStyleBaseView();
352 vtkInteractorBV->AddParentToReport(this);
356 wxtabs->AddPage(panelControl, _T("MPR"));
357 wxtabs->GetPage(id)->Enable();
358 wxtabs->SetSelection(id);
360 ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleZ(true);
361 ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleXYZ(true);
362 mwxvtkmpr3Dview->showOutlineActor(true);
363 mwxvtkmpr3Dview->Refresh();
368 ** Deletes complete volume
370 void wxMaracasRenderTabbedPanel::deleteVolume(int volid)
374 volmanager->deleteActor(volid);
375 surrendmanager1->deleteActor(volid);
376 surrendmanager2->deleteActor(volid);
377 surrendmanager3->deleteActor(volid);
381 std::cout << "Exception : " << str << '\n';
382 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
389 ** Adds or removes volume rendering actor with given ID
391 void wxMaracasRenderTabbedPanel::addRemoveActorV(int id, bool addremove)
394 volmanager->addRemoveActor(id, addremove);
398 std::cout << "Exception : " << str << '\n';
399 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
406 ** Adds or removes surface rendering actor with given ID
408 void wxMaracasRenderTabbedPanel::addRemoveActorSA(int id, bool addremove)
411 surrendmanager1->addRemoveActor(id, addremove);
414 std::cout << "Exception : " << str << '\n';
415 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
422 ** Adds or removes surface rendering actor with given ID
424 void wxMaracasRenderTabbedPanel::addRemoveActorSB(int id, bool addremove)
427 surrendmanager2->addRemoveActor(id, addremove);
430 std::cout << "Exception : " << str << '\n';
431 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
438 ** Adds or removes surface rendering actor with given ID
440 void wxMaracasRenderTabbedPanel::addRemoveActorSC(int id, bool addremove)
443 surrendmanager3->addRemoveActor(id, addremove);
446 std::cout << "Exception : " << str << '\n';
447 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
453 void wxMaracasRenderTabbedPanel::addRemoveActorMPR(bool addremove)
456 wxtabs->SetSelection(id);
459 wxtabs->GetPage(id)->Enable();
461 bool valueX = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleX();
462 bool valueY = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleY();
463 bool valueZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleZ();
464 bool valueXYZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleXYZ();
465 bool valuePlane = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisiblePlane();
467 mwxvtkmpr3Dview->VisibleImageActor( 0, valueX );
468 mwxvtkmpr3Dview->VisibleImageActor( 1, valueY );
469 mwxvtkmpr3Dview->VisibleImageActor( 2, valueZ );
470 mwxvtkmpr3Dview->VisiblePointWidget(valueXYZ);
471 mwxvtkmpr3Dview->VisiblePlaneWidget(valuePlane);
472 mwxvtkmpr3Dview->showOutlineActor(true);
474 mwxvtkmpr3Dview->Refresh();
480 wxtabs->GetPage(id)->Disable();
482 mwxvtkmpr3Dview->VisiblePointWidget(false);
483 mwxvtkmpr3Dview->VisiblePlaneWidget(false);
484 mwxvtkmpr3Dview->VisibleImageActor(0, false );
485 mwxvtkmpr3Dview->VisibleImageActor(1, false );
486 mwxvtkmpr3Dview->VisibleImageActor(2, false );
487 mwxvtkmpr3Dview->showOutlineActor(false);
488 mwxvtkmpr3Dview->Refresh();
490 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
491 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
497 ** Sets color points values for the given volume rendering identified by parameter: volumeid
499 void wxMaracasRenderTabbedPanel::SetValuesColorPointsFunction(int volid, std::vector<double> greylevelcolors,std::vector<double> red,std::vector<double> green,std::vector<double> blue)
501 volmanager->setVolumeColor(volid, greylevelcolors, red, green, blue);
505 ** Sets points values for the given volume rendering identified by parameter: volumeid
507 void wxMaracasRenderTabbedPanel::SetValuesPointsFunction(int volid, std::vector<double> greylevel, std::vector<double> values)
510 volmanager->setVolumeOpacity(volid, greylevel, values);
514 wxString s( str,wxConvUTF8 );
515 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
522 ** Returns transfer function for the given volume rendering identified by parameter: volumeid
524 vtkPiecewiseFunction* wxMaracasRenderTabbedPanel::GetTransferFunction(int volumeid)
526 return volmanager->GetTransferFunction(volumeid);
530 ** Returns color function for the given volume rendering identified by parameter: volumeid
532 vtkColorTransferFunction* wxMaracasRenderTabbedPanel::GetColorFunction(int volumeid)
534 return volmanager->GetColorFunction(volumeid);
538 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
540 void wxMaracasRenderTabbedPanel::changeOpacityA(int _propid, int value)
542 surrendmanager1->changeOpacity(_propid,value);
546 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
548 void wxMaracasRenderTabbedPanel::changeIsoValueA(int propid, double value)
550 surrendmanager1->changeIsoValue(propid, value);
554 ** Changes color for the given surface rendering image identified by parameter: propid
556 void wxMaracasRenderTabbedPanel::changeColorA(int propid, double red, double green, double blue)
560 surrendmanager1->changeColor(propid, red, green, blue);
564 wxString s( str,wxConvUTF8 );
565 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
572 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
574 void wxMaracasRenderTabbedPanel::changeOpacityB(int _propid, int value)
576 surrendmanager2->changeOpacity(_propid,value);
580 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
582 void wxMaracasRenderTabbedPanel::changeIsoValueB(int propid, double value)
584 surrendmanager2->changeIsoValue(propid, value);
588 ** Changes color for the given surface rendering image identified by parameter: propid
590 void wxMaracasRenderTabbedPanel::changeColorB(int propid, double red, double green, double blue)
594 surrendmanager2->changeColor(propid, red, green, blue);
598 wxString s( str,wxConvUTF8 );
599 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
606 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
608 void wxMaracasRenderTabbedPanel::changeOpacityC(int _propid, int value)
610 surrendmanager3->changeOpacity(_propid,value);
614 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
616 void wxMaracasRenderTabbedPanel::changeIsoValueC(int propid, double value)
618 surrendmanager3->changeIsoValue(propid, value);
622 ** Changes color for the given surface rendering image identified by parameter: propid
624 void wxMaracasRenderTabbedPanel::changeColorC(int propid, double red, double green, double blue)
628 surrendmanager3->changeColor(propid, red, green, blue);
632 wxString s( str,wxConvUTF8 );
633 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
640 ** Method called when VolumeRendering checkbox status changes: Either shows or hides VolumeRendering image
642 void wxMaracasRenderTabbedPanel::onCheckBoxVChange(wxCommandEvent& event)
645 volmanager->addRemoveActor(this->getPropIdV(), checkboxVol->GetValue());
648 wxtabs->SetSelection(id);
650 if(checkboxVol->GetValue())
652 wxtabs->GetPage(id)->Enable();
656 wxtabs->GetPage(id)->Disable();
660 std::cout << "Exception : " << str << '\n';
661 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
668 ** Method called when SurfaceRendering A checkbox status changes: Either shows or hides SurfaceRendering image
670 void wxMaracasRenderTabbedPanel::onCheckBoxSAChange(wxCommandEvent& event)
673 surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSA->GetValue());
676 wxtabs->SetSelection(id);
678 if(checkboxSA->GetValue())
680 wxtabs->GetPage(id)->Enable();
685 wxtabs->GetPage(id)->Disable();
689 std::cout << "Exception : " << str << '\n';
690 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
697 ** Method called when SurfaceRendering B checkbox status changes: Either shows or hides SurfaceRendering B image
699 void wxMaracasRenderTabbedPanel::onCheckBoxSBChange(wxCommandEvent& event)
702 surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSB->GetValue());
705 wxtabs->SetSelection(id);
707 if(checkboxSB->GetValue())
709 wxtabs->GetPage(id)->Enable();
713 wxtabs->GetPage(id)->Disable();
717 std::cout << "Exception : " << str << '\n';
718 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
725 ** Method called when SurfaceRendering C checkbox status changes: Either shows or hides SurfaceRendering C image
727 void wxMaracasRenderTabbedPanel::onCheckBoxSCChange(wxCommandEvent& event)
730 surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
733 wxtabs->SetSelection(id);
735 if(checkboxSC->GetValue())
737 wxtabs->GetPage(id)->Enable();
741 wxtabs->GetPage(id)->Disable();
745 std::cout << "Exception : " << str << '\n';
746 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
753 ** Method called when MPR checkbox status changes: Either shows or hides actors
755 void wxMaracasRenderTabbedPanel::onMPROptions(wxCommandEvent& event)
757 addRemoveActorMPR(checkboxViewer->IsChecked());
760 wxtabs->SetSelection(id);
761 if(checkboxViewer->IsChecked())
764 wxtabs->GetPage(id)->Enable();
766 bool valueX = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleX();
767 bool valueY = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleY();
768 bool valueZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleZ();
769 bool valueXYZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleXYZ();
770 bool valuePlane = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisiblePlane();
772 mwxvtkmpr3Dview->VisibleImageActor( 0, valueX );
773 mwxvtkmpr3Dview->VisibleImageActor( 1, valueY );
774 mwxvtkmpr3Dview->VisibleImageActor( 2, valueZ );
775 mwxvtkmpr3Dview->VisiblePointWidget(valueXYZ);
776 mwxvtkmpr3Dview->VisiblePlaneWidget(valuePlane);
777 mwxvtkmpr3Dview->showOutlineActor(true);
779 mwxvtkmpr3Dview->Refresh();
785 wxtabs->GetPage(id)->Disable();
787 mwxvtkmpr3Dview->VisiblePointWidget(false);
788 mwxvtkmpr3Dview->VisiblePlaneWidget(false);
789 mwxvtkmpr3Dview->VisibleImageActor(0, false );
790 mwxvtkmpr3Dview->VisibleImageActor(1, false );
791 mwxvtkmpr3Dview->VisibleImageActor(2, false );
792 mwxvtkmpr3Dview->showOutlineActor(false);
793 mwxvtkmpr3Dview->Refresh();
795 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
796 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
800 void wxMaracasRenderTabbedPanel::OnRefreshView(wxCommandEvent & event)
802 printf("CPR wxMaracasRenderTabbedPanel::OnRefreshView \n");
803 mwxvtkmpr3Dview->RefreshView();
805 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
806 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
812 void wxMaracasRenderTabbedPanel::onOpenParameters(wxCommandEvent& event){
815 dialog = new wxMaracasRenderImageManagementPanel(this, volmanager, surrendmanager1, surrendmanager2, surrendmanager3, volname, _id);
816 dialog->SetSize(460, 580);
819 else if(dialog != NULL)
828 void wxMaracasRenderTabbedPanel::onOpenCutter(wxCommandEvent& event)
830 vtkImageData* img = getVolImage();
831 std::vector<int> type;
837 wxMaracasDialog_NViewers* dialog1 = new wxMaracasDialog_NViewers(this, img, &type, wxString(_T("Cut Module") ));
838 //dialog1->SetSize(800, 700);
840 /**std::string path = crea::System::GetDllAppPath("bbcreaMaracasVisu.dll");
841 cutter = CutModelMainPanel::getInstance(dialog1->getinternalPanel(), path);
842 cutter->setRenderer( dialog1->getViewer()->GetwxVtkBaseView(1)->GetRenderer() );
843 cutter->setInteractor( dialog1->getViewer()->GetwxVtkBaseView(1)->GetWxVTKRenderWindowInteractor() );
844 cutter->setImageData(getVolImage());
846 //dialog1->AddPanel(cutter);
851 ** Gets volume rendering image asociated to the given ID
853 void wxMaracasRenderTabbedPanel::onColorChange(wxCommandEvent& event)
855 /*Temporarily disabled*/
857 //if(mwxwidget->ShowModal()==wxID_OK){
859 // mwxwidget->Show(false);
866 vtkImageData* wxMaracasRenderTabbedPanel::getVolImage()
868 return volmanager->getImageData();
872 ** Gets surface rendering A image asociated to the given ID
874 vtkImageData* wxMaracasRenderTabbedPanel::getSurfAImage()
876 return surrendmanager1->getImageData();
880 ** Gets surface rendering B image asociated to the given ID
882 vtkImageData* wxMaracasRenderTabbedPanel::getSurfBImage()
884 return surrendmanager2->getImageData();
888 ** Gets surface rendering C image asociated to the given ID
890 vtkImageData* wxMaracasRenderTabbedPanel::getSurfCImage()
892 return surrendmanager3->getImageData();
898 int wxMaracasRenderTabbedPanel::getPropIdV()