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 if( vtkmpr3Ddataviewer ) { delete vtkmpr3Ddataviewer; }
51 if( mwxvtkmpr3Dview ) { delete mwxvtkmpr3Dview; }
53 this->deleteVolume(_id);
59 ** Initializes rendered images, and creates and adds elements to the panel
61 void wxMaracasRenderTabbedPanel::createControls(vtkImageData* inImg, std::string pathfile, std::string filename)
63 wxFlexGridSizer* sizerrenderprop = new wxFlexGridSizer(1);
65 wxFlexGridSizer* sizercheck = new wxFlexGridSizer(3);
66 checkboxVol = new wxCheckBox(this,-1,wxString(_T("Volume Rendering")));
67 Connect(checkboxVol->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxVChange);
68 checkboxVol->SetValue(false);
69 sizercheck->Add(checkboxVol, wxFIXED_MINSIZE);
71 checkboxSA = new wxCheckBox(this,-1,wxString(_T("Surface Rendering A")));
72 Connect(checkboxSA->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSAChange);
73 checkboxSA->SetValue(false);
74 sizercheck->Add(checkboxSA, wxFIXED_MINSIZE);
76 checkboxViewer = new wxCheckBox(this,-1,wxString(_T("MPR")));
77 Connect(checkboxViewer->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onMPROptions);
78 checkboxViewer->SetValue(true);
79 sizercheck->Add(checkboxViewer, wxFIXED_MINSIZE);
81 checkboxSB = new wxCheckBox(this,-1,wxString(_T("Surface Rendering B")));
82 Connect(checkboxSB->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSBChange);
83 checkboxSB->SetValue(false);
84 sizercheck->Add(checkboxSB, wxFIXED_MINSIZE);
86 checkboxSC = new wxCheckBox(this,-1,wxString(_T("Surface Rendering C")));
87 Connect(checkboxSC->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSCChange);
88 checkboxSC->SetValue(false);
89 sizercheck->Add(checkboxSC, wxFIXED_MINSIZE);
91 sizercheck->Add(new wxStaticText(this, -1,_T("")), wxFIXED_MINSIZE);
93 wxButton* _openParameters = new wxButton(this, -1, wxString(_T("Apply Transformation")));
94 Connect(_openParameters->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onOpenParameters);
95 sizercheck->Add(_openParameters,wxFIXED_MINSIZE);
97 wxButton* _openCutter = new wxButton(this, -1, wxString(_T("Open Cutter View")));
98 Connect(_openCutter->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onOpenCutter);
99 sizercheck->Add(_openCutter,wxFIXED_MINSIZE);
100 sizerrenderprop->Add(sizercheck, wxFIXED_MINSIZE);
102 wxtabs = new wxNotebook(this, -1);
106 vtkImageData* img = volmanager->getImageData(pathfile);
107 //vtkImageData* img1 = surrendmanager1->getImageData(pathfile);
108 //vtkImageData* img2 = surrendmanager2->getImageData(pathfile);
109 //vtkImageData* img3 = surrendmanager3->getImageData(pathfile);
110 if(img!=NULL /*&& img1!=NULL && img2!=NULL && img3!=NULL*/)
112 addVolume(img, filename);
113 addSurface1(img, filename);
114 addSurface2(img, filename);
115 addSurface3(img, filename);
117 volname = (wxString) filename;
123 addVolume(inImg, filename);
124 addSurface1(inImg, filename);
125 addSurface2(inImg, filename);
126 addSurface3(inImg, filename);
130 sizerrenderprop->Add(wxtabs, wxSizerFlags().Expand().Center());
132 this->SetSizer(sizerrenderprop, true);
133 this->SetAutoLayout( true );
138 ** Sets given renderer
140 void wxMaracasRenderTabbedPanel::setRenderer(vtkRenderer* renderer)
142 volmanager->setRenderer(renderer);
143 surrendmanager1->setRenderer(renderer);
144 surrendmanager2->setRenderer(renderer);
145 surrendmanager3->setRenderer(renderer);
149 ** Adds a volume using Volume Rendering
151 void wxMaracasRenderTabbedPanel::addVolume(vtkImageData* img, std::string dataname)
155 int _propidV = volmanager->addVolume(_id, img, dataname);
158 wxMaracasMultipleVolumeRendererPanel* controlpanV = new wxMaracasMultipleVolumeRendererPanel(wxtabs, _propidV, img, true);
159 wxtabs->AddPage(controlpanV, _T("Vol Rendering"), true);
160 controlpanV->updateVolume();
161 wxtabs->GetPage(0)->Disable();
163 volmanager->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
168 std::cout << "Exception : " << str << '\n';
169 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
176 ** Adds a volume using surface rendering
178 void wxMaracasRenderTabbedPanel::addSurface1(vtkImageData* img, std::string dataname)
182 int _propidSA = surrendmanager1->addPropMHD(_id, img, dataname);
186 wxMaracasSurfaceRenderingPanel* controlpanSA = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSA, true, 1);
187 int maxiso = surrendmanager1->getMaxIsoValue(_propidSA);
188 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSA)->createControls(maxiso);
189 wxtabs->AddPage(controlpanSA, _T("SR A"));
190 wxtabs->GetPage(1)->Disable();
192 surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
197 std::cout << "Exception : " << str << '\n';
198 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
205 ** Adds a volume using surface rendering
207 void wxMaracasRenderTabbedPanel::addSurface2(vtkImageData* img, std::string dataname)
211 int _propidSB = surrendmanager2->addPropMHD(_id, img, dataname);
214 wxMaracasSurfaceRenderingPanel* controlpanSB = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSB, true, 2);
215 int maxiso = surrendmanager2->getMaxIsoValue(_propidSB);
216 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSB)->createControls(maxiso);
217 wxtabs->AddPage(controlpanSB, _T("SR B"));
218 wxtabs->GetPage(2)->Disable();
220 surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
226 std::cout << "Exception : " << str << '\n';
227 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
234 ** Adds a volume using Surface Rendering
236 void wxMaracasRenderTabbedPanel::addSurface3(vtkImageData* img, std::string dataname)
240 int _propidSC = surrendmanager3->addPropMHD(_id, img, dataname);
244 wxMaracasSurfaceRenderingPanel* controlpanSC = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSC, true, 3);
245 int maxiso = surrendmanager3->getMaxIsoValue(_propidSC);
246 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSC)->createControls(maxiso);
247 wxtabs->AddPage(controlpanSC, _T("SR C"));
248 wxtabs->GetPage(3)->Disable();
250 surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
255 std::cout << "Exception : " << str << '\n';
256 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
265 void wxMaracasRenderTabbedPanel::addMPROptions()
268 vtkMPRBaseData* mvtkmprbasedata = new vtkMPRBaseData();
269 marImageData* marimagedata = new marImageData( getVolImage() );
270 mvtkmprbasedata ->SetMarImageData(marimagedata);
272 mwxvtkmpr3Dview = new wxVtkMPR3DView( baseView );
274 vtkmpr3Ddataviewer = new vtkMPR3DDataViewer();
276 wxPanel *panelControl = new wxPanel(wxtabs,-1);
277 controlPanelMPR3D = mwxvtkmpr3Dview->CreateControlPanel(panelControl, true);
279 wxFlexGridSizer *sizerCtrol = new wxFlexGridSizer(1);
280 sizerCtrol ->Add(controlPanelMPR3D, 1, wxALL|wxEXPAND, 2);
282 panelControl->SetAutoLayout(true);
283 panelControl->SetSizer(sizerCtrol);
284 panelControl->SetSize(400,350);
285 panelControl->Layout();
288 int x = 0,y = 0,z = 0;
297 double org[3],spc[3];
305 if (mvtkmprbasedata!=NULL)
307 mvtkmprbasedata->Configure();
308 /*x = mvtkmprbasedata -> GetMaxPositionX()/2;
309 y = mvtkmprbasedata -> GetMaxPositionY()/2;
310 z = mvtkmprbasedata -> GetMaxPositionZ()/2; */
312 if(mvtkmprbasedata->GetImageData() != NULL)
314 mvtkmprbasedata->GetImageData()->GetExtent(ext);
315 mvtkmprbasedata->GetImageData()->GetOrigin(org);
316 mvtkmprbasedata->GetImageData()->GetSpacing(spc);
318 x = (ext[0]+ext[1])/2;
319 y = (ext[2]+ext[3])/2;
320 z = (ext[4]+ext[5])/2;
322 mvtkmprbasedata->SetX( x );
323 mvtkmprbasedata->SetY( y );
324 mvtkmprbasedata->SetZ( z );
328 mvtkmprbasedata->SetX( 0 );
329 mvtkmprbasedata->SetY( 0 );
330 mvtkmprbasedata->SetZ( 0 );
336 baseView ->Configure();
339 if (vtkmpr3Ddataviewer !=NULL)
341 vtkmpr3Ddataviewer ->SetVtkMPRBaseData(mvtkmprbasedata);
342 vtkmpr3Ddataviewer ->Configure();
344 if (mwxvtkmpr3Dview !=NULL)
346 mwxvtkmpr3Dview ->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
347 mwxvtkmpr3Dview ->Configure();
348 mwxvtkmpr3Dview ->ResetCamera(ext,org,spc);
349 vtkInteractorStyleBaseView* vtkInteractorBV = (vtkInteractorStyleBaseView*)mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetInteractorStyleBaseView();
350 vtkInteractorBV->AddParentToReport(this);
354 wxtabs->AddPage(panelControl, _T("MPR"));
355 wxtabs->GetPage(id)->Enable();
356 wxtabs->SetSelection(id);
358 ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleZ(true);
359 ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleXYZ(true);
360 mwxvtkmpr3Dview->showOutlineActor(true);
361 mwxvtkmpr3Dview->Refresh();
366 ** Deletes complete volume
368 void wxMaracasRenderTabbedPanel::deleteVolume(int volid)
372 volmanager->deleteActor(volid);
373 surrendmanager1->deleteActor(volid);
374 surrendmanager2->deleteActor(volid);
375 surrendmanager3->deleteActor(volid);
379 std::cout << "Exception : " << str << '\n';
380 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
387 ** Adds or removes volume rendering actor with given ID
389 void wxMaracasRenderTabbedPanel::addRemoveActorV(int id, bool addremove)
392 volmanager->addRemoveActor(id, addremove);
396 std::cout << "Exception : " << str << '\n';
397 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
404 ** Adds or removes surface rendering actor with given ID
406 void wxMaracasRenderTabbedPanel::addRemoveActorSA(int id, bool addremove)
409 surrendmanager1->addRemoveActor(id, addremove);
412 std::cout << "Exception : " << str << '\n';
413 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
420 ** Adds or removes surface rendering actor with given ID
422 void wxMaracasRenderTabbedPanel::addRemoveActorSB(int id, bool addremove)
425 surrendmanager2->addRemoveActor(id, addremove);
428 std::cout << "Exception : " << str << '\n';
429 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
436 ** Adds or removes surface rendering actor with given ID
438 void wxMaracasRenderTabbedPanel::addRemoveActorSC(int id, bool addremove)
441 surrendmanager3->addRemoveActor(id, addremove);
444 std::cout << "Exception : " << str << '\n';
445 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
453 ** Sets color points values for the given volume rendering identified by parameter: volumeid
455 void wxMaracasRenderTabbedPanel::SetValuesColorPointsFunction(int volid, std::vector<double> greylevelcolors,std::vector<double> red,std::vector<double> green,std::vector<double> blue)
457 volmanager->setVolumeColor(volid, greylevelcolors, red, green, blue);
461 ** Sets points values for the given volume rendering identified by parameter: volumeid
463 void wxMaracasRenderTabbedPanel::SetValuesPointsFunction(int volid, std::vector<double> greylevel, std::vector<double> values)
466 volmanager->setVolumeOpacity(volid, greylevel, values);
470 wxString s( str,wxConvUTF8 );
471 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
478 ** Returns transfer function for the given volume rendering identified by parameter: volumeid
480 vtkPiecewiseFunction* wxMaracasRenderTabbedPanel::GetTransferFunction(int volumeid)
482 return volmanager->GetTransferFunction(volumeid);
486 ** Returns color function for the given volume rendering identified by parameter: volumeid
488 vtkColorTransferFunction* wxMaracasRenderTabbedPanel::GetColorFunction(int volumeid)
490 return volmanager->GetColorFunction(volumeid);
494 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
496 void wxMaracasRenderTabbedPanel::changeOpacityA(int _propid, int value)
498 surrendmanager1->changeOpacity(_propid,value);
502 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
504 void wxMaracasRenderTabbedPanel::changeIsoValueA(int propid, double value)
506 surrendmanager1->changeIsoValue(propid, value);
510 ** Changes color for the given surface rendering image identified by parameter: propid
512 void wxMaracasRenderTabbedPanel::changeColorA(int propid, double red, double green, double blue)
516 surrendmanager1->changeColor(propid, red, green, blue);
520 wxString s( str,wxConvUTF8 );
521 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
528 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
530 void wxMaracasRenderTabbedPanel::changeOpacityB(int _propid, int value)
532 surrendmanager2->changeOpacity(_propid,value);
536 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
538 void wxMaracasRenderTabbedPanel::changeIsoValueB(int propid, double value)
540 surrendmanager2->changeIsoValue(propid, value);
544 ** Changes color for the given surface rendering image identified by parameter: propid
546 void wxMaracasRenderTabbedPanel::changeColorB(int propid, double red, double green, double blue)
550 surrendmanager2->changeColor(propid, red, green, blue);
554 wxString s( str,wxConvUTF8 );
555 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
562 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
564 void wxMaracasRenderTabbedPanel::changeOpacityC(int _propid, int value)
566 surrendmanager3->changeOpacity(_propid,value);
570 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
572 void wxMaracasRenderTabbedPanel::changeIsoValueC(int propid, double value)
574 surrendmanager3->changeIsoValue(propid, value);
578 ** Changes color for the given surface rendering image identified by parameter: propid
580 void wxMaracasRenderTabbedPanel::changeColorC(int propid, double red, double green, double blue)
584 surrendmanager3->changeColor(propid, red, green, blue);
588 wxString s( str,wxConvUTF8 );
589 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
596 ** Method called when VolumeRendering checkbox status changes: Either shows or hides VolumeRendering image
598 void wxMaracasRenderTabbedPanel::onCheckBoxVChange(wxCommandEvent& event)
601 volmanager->addRemoveActor(this->getPropIdV(), checkboxVol->GetValue());
604 wxtabs->SetSelection(id);
606 if(checkboxVol->GetValue())
608 wxtabs->GetPage(id)->Enable();
612 wxtabs->GetPage(id)->Disable();
616 std::cout << "Exception : " << str << '\n';
617 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
624 ** Method called when SurfaceRendering A checkbox status changes: Either shows or hides SurfaceRendering image
626 void wxMaracasRenderTabbedPanel::onCheckBoxSAChange(wxCommandEvent& event)
629 surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSA->GetValue());
632 wxtabs->SetSelection(id);
634 if(checkboxSA->GetValue())
636 wxtabs->GetPage(id)->Enable();
641 wxtabs->GetPage(id)->Disable();
645 std::cout << "Exception : " << str << '\n';
646 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
653 ** Method called when SurfaceRendering B checkbox status changes: Either shows or hides SurfaceRendering B image
655 void wxMaracasRenderTabbedPanel::onCheckBoxSBChange(wxCommandEvent& event)
658 surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSB->GetValue());
661 wxtabs->SetSelection(id);
663 if(checkboxSB->GetValue())
665 wxtabs->GetPage(id)->Enable();
669 wxtabs->GetPage(id)->Disable();
673 std::cout << "Exception : " << str << '\n';
674 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
681 ** Method called when SurfaceRendering C checkbox status changes: Either shows or hides SurfaceRendering C image
683 void wxMaracasRenderTabbedPanel::onCheckBoxSCChange(wxCommandEvent& event)
686 surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
689 wxtabs->SetSelection(id);
691 if(checkboxSC->GetValue())
693 wxtabs->GetPage(id)->Enable();
697 wxtabs->GetPage(id)->Disable();
701 std::cout << "Exception : " << str << '\n';
702 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
709 ** Method called when MPR checkbox status changes: Either shows or hides actors
711 void wxMaracasRenderTabbedPanel::onMPROptions(wxCommandEvent& event)
714 wxtabs->SetSelection(id);
715 if(checkboxViewer->IsChecked())
717 wxtabs->GetPage(id)->Enable();
719 bool valueX = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleX();
720 bool valueY = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleY();
721 bool valueZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleZ();
722 bool valueXYZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleXYZ();
723 bool valuePlane = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisiblePlane();
725 mwxvtkmpr3Dview->VisibleImageActor( 0, valueX );
726 mwxvtkmpr3Dview->VisibleImageActor( 1, valueY );
727 mwxvtkmpr3Dview->VisibleImageActor( 2, valueZ );
728 mwxvtkmpr3Dview->VisiblePointWidget(valueXYZ);
729 mwxvtkmpr3Dview->VisiblePlaneWidget(valuePlane);
730 mwxvtkmpr3Dview->showOutlineActor(true);
732 mwxvtkmpr3Dview->Refresh();
738 wxtabs->GetPage(id)->Disable();
740 mwxvtkmpr3Dview->VisiblePointWidget(false);
741 mwxvtkmpr3Dview->VisiblePlaneWidget(false);
742 mwxvtkmpr3Dview->VisibleImageActor(0, false );
743 mwxvtkmpr3Dview->VisibleImageActor(1, false );
744 mwxvtkmpr3Dview->VisibleImageActor(2, false );
745 mwxvtkmpr3Dview->showOutlineActor(false);
746 mwxvtkmpr3Dview->Refresh();
748 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
749 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
753 void wxMaracasRenderTabbedPanel::OnRefreshView(wxCommandEvent & event)
755 printf("CPR wxMaracasRenderTabbedPanel::OnRefreshView \n");
756 mwxvtkmpr3Dview->RefreshView();
758 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
759 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
765 void wxMaracasRenderTabbedPanel::onOpenParameters(wxCommandEvent& event){
768 dialog = new wxMaracasRenderImageManagementPanel(this, volmanager, surrendmanager1, surrendmanager2, surrendmanager3, volname, _id);
769 dialog->SetSize(460, 580);
772 else if(dialog != NULL)
781 void wxMaracasRenderTabbedPanel::onOpenCutter(wxCommandEvent& event)
783 vtkImageData* img = getVolImage();
784 std::vector<int> type;
790 wxMaracasDialog_NViewers* dialog1 = new wxMaracasDialog_NViewers(this, img, &type, wxString(_T("Cut Module") ));
791 //dialog1->SetSize(800, 700);
793 /**std::string path = crea::System::GetDllAppPath("bbcreaMaracasVisu.dll");
794 cutter = CutModelMainPanel::getInstance(dialog1->getinternalPanel(), path);
795 cutter->setRenderer( dialog1->getViewer()->GetwxVtkBaseView(1)->GetRenderer() );
796 cutter->setInteractor( dialog1->getViewer()->GetwxVtkBaseView(1)->GetWxVTKRenderWindowInteractor() );
797 cutter->setImageData(getVolImage());
799 //dialog1->AddPanel(cutter);
804 ** Gets volume rendering image asociated to the given ID
806 void wxMaracasRenderTabbedPanel::onColorChange(wxCommandEvent& event)
808 /*Temporarily disabled*/
810 //if(mwxwidget->ShowModal()==wxID_OK){
812 // mwxwidget->Show(false);
819 vtkImageData* wxMaracasRenderTabbedPanel::getVolImage()
821 return volmanager->getImageData();
825 ** Gets surface rendering A image asociated to the given ID
827 vtkImageData* wxMaracasRenderTabbedPanel::getSurfAImage()
829 return surrendmanager1->getImageData();
833 ** Gets surface rendering B image asociated to the given ID
835 vtkImageData* wxMaracasRenderTabbedPanel::getSurfBImage()
837 return surrendmanager2->getImageData();
841 ** Gets surface rendering C image asociated to the given ID
843 vtkImageData* wxMaracasRenderTabbedPanel::getSurfCImage()
845 return surrendmanager3->getImageData();
851 int wxMaracasRenderTabbedPanel::getPropIdV()