1 #include "wxMaracasRenderTabbedPanel.h"
2 #include "HistogramDialogComboBox.h"
4 #include "wxMaracasMultipleVolumeRendererPanel.h"
5 #include "wxMaracasSurfaceRenderingPanel.h"
6 #include "wxMaracasSurfaceRenderingProp3DMHD.h"
7 #include "wxMaracasMultipleVolumeRendererManagerData.h"
8 #include "wxMaracasDialog_NViewers.h"
10 #include <wx/colordlg.h>
11 #include <wx/button.h>
13 #include <OpenImage.xpm>
15 #include "creaSystem.h"
17 #include <vtkProp3D.h>
18 #include "wxVtkMPR3DViewCntrlPanel.h"
23 wxMaracasRenderTabbedPanel::wxMaracasRenderTabbedPanel(wxWindow* parent, int id, wxVtk3DBaseView* _baseView)
24 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize)
30 volmanager = new wxMaracasMultipleVolumeRendererManager();
31 surrendmanager1 = new wxMaracasSurfaceRenderingManager();
32 surrendmanager2 = new wxMaracasSurfaceRenderingManager();
33 surrendmanager3 = new wxMaracasSurfaceRenderingManager();
39 wxMaracasRenderTabbedPanel::~wxMaracasRenderTabbedPanel()
41 //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorV(_propid, false);
42 //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSA(_propid, false);
43 //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSB(_propid, false);
44 //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSC(_propid, false);
45 if( vtkmpr3Ddataviewer ) { delete vtkmpr3Ddataviewer; }
46 if( mwxvtkmpr3Dview ) { delete mwxvtkmpr3Dview; }
48 this->deleteVolume(_id);
54 ** Initializes rendered images, and creates and adds elements to the panel
56 void wxMaracasRenderTabbedPanel::createControls(vtkImageData* inImg, std::string pathfile, std::string filename)
58 wxFlexGridSizer* sizerrenderprop = new wxFlexGridSizer(1);
60 wxFlexGridSizer* sizercheck = new wxFlexGridSizer(3);
61 checkboxVol = new wxCheckBox(this,-1,wxString(_T("Volume Rendering")));
62 Connect(checkboxVol->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxVChange);
63 checkboxVol->SetValue(false);
64 sizercheck->Add(checkboxVol, wxFIXED_MINSIZE);
66 checkboxSA = new wxCheckBox(this,-1,wxString(_T("Surface Rendering A")));
67 Connect(checkboxSA->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSAChange);
68 checkboxSA->SetValue(false);
69 sizercheck->Add(checkboxSA, wxFIXED_MINSIZE);
71 checkboxViewer = new wxCheckBox(this,-1,wxString(_T("MPR")));
72 Connect(checkboxViewer->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onMPROptions);
73 checkboxViewer->SetValue(true);
74 sizercheck->Add(checkboxViewer, wxFIXED_MINSIZE);
76 checkboxSB = new wxCheckBox(this,-1,wxString(_T("Surface Rendering B")));
77 Connect(checkboxSB->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSBChange);
78 checkboxSB->SetValue(false);
79 sizercheck->Add(checkboxSB, wxFIXED_MINSIZE);
81 checkboxSC = new wxCheckBox(this,-1,wxString(_T("Surface Rendering C")));
82 Connect(checkboxSC->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSCChange);
83 checkboxSC->SetValue(false);
84 sizercheck->Add(checkboxSC, wxFIXED_MINSIZE);
86 sizercheck->Add(new wxStaticText(this, -1,_T("")), wxFIXED_MINSIZE);
88 wxButton* _openParameters = new wxButton(this, -1, wxString(_T("Apply Transformation")));
89 Connect(_openParameters->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onOpenParameters);
90 sizercheck->Add(_openParameters,wxFIXED_MINSIZE);
92 wxButton* _openCutter = new wxButton(this, -1, wxString(_T("Open Cutter View")));
93 Connect(_openCutter->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onOpenCutter);
94 sizercheck->Add(_openCutter,wxFIXED_MINSIZE);
95 sizerrenderprop->Add(sizercheck, wxFIXED_MINSIZE);
97 wxtabs = new wxNotebook(this, -1);
101 vtkImageData* img = volmanager->getImageData(pathfile);
102 //vtkImageData* img1 = surrendmanager1->getImageData(pathfile);
103 //vtkImageData* img2 = surrendmanager2->getImageData(pathfile);
104 //vtkImageData* img3 = surrendmanager3->getImageData(pathfile);
105 if(img!=NULL /*&& img1!=NULL && img2!=NULL && img3!=NULL*/)
107 addVolume(img, filename);
108 addSurface1(img, filename);
109 addSurface2(img, filename);
110 addSurface3(img, filename);
112 volname = (wxString) filename;
118 addVolume(inImg, filename);
119 addSurface1(inImg, filename);
120 addSurface2(inImg, filename);
121 addSurface3(inImg, filename);
125 sizerrenderprop->Add(wxtabs, wxSizerFlags().Expand().Center());
127 this->SetSizer(sizerrenderprop, true);
128 this->SetAutoLayout( true );
133 ** Sets given renderer
135 void wxMaracasRenderTabbedPanel::setRenderer(vtkRenderer* renderer)
137 volmanager->setRenderer(renderer);
138 surrendmanager1->setRenderer(renderer);
139 surrendmanager2->setRenderer(renderer);
140 surrendmanager3->setRenderer(renderer);
144 ** Adds a volume using Volume Rendering
146 void wxMaracasRenderTabbedPanel::addVolume(vtkImageData* img, std::string dataname)
150 int _propidV = volmanager->addVolume(_id, img, dataname);
153 wxMaracasMultipleVolumeRendererPanel* controlpanV = new wxMaracasMultipleVolumeRendererPanel(wxtabs, _propidV, img, true);
154 wxtabs->AddPage(controlpanV, _T("Vol Rendering"), true);
155 controlpanV->updateVolume();
156 wxtabs->GetPage(0)->Disable();
158 volmanager->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
163 std::cout << "Exception : " << str << '\n';
164 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
171 ** Adds a volume using surface rendering
173 void wxMaracasRenderTabbedPanel::addSurface1(vtkImageData* img, std::string dataname)
177 int _propidSA = surrendmanager1->addPropMHD(_id, img, dataname);
181 wxMaracasSurfaceRenderingPanel* controlpanSA = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSA, true, 1);
182 int maxiso = surrendmanager1->getMaxIsoValue(_propidSA);
183 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSA)->createControls(maxiso);
184 wxtabs->AddPage(controlpanSA, _T("SR A"));
185 wxtabs->GetPage(1)->Disable();
187 surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
192 std::cout << "Exception : " << str << '\n';
193 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
200 ** Adds a volume using surface rendering
202 void wxMaracasRenderTabbedPanel::addSurface2(vtkImageData* img, std::string dataname)
206 int _propidSB = surrendmanager2->addPropMHD(_id, img, dataname);
209 wxMaracasSurfaceRenderingPanel* controlpanSB = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSB, true, 2);
210 int maxiso = surrendmanager2->getMaxIsoValue(_propidSB);
211 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSB)->createControls(maxiso);
212 wxtabs->AddPage(controlpanSB, _T("SR B"));
213 wxtabs->GetPage(2)->Disable();
215 surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
221 std::cout << "Exception : " << str << '\n';
222 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
229 ** Adds a volume using Surface Rendering
231 void wxMaracasRenderTabbedPanel::addSurface3(vtkImageData* img, std::string dataname)
235 int _propidSC = surrendmanager3->addPropMHD(_id, img, dataname);
239 wxMaracasSurfaceRenderingPanel* controlpanSC = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSC, true, 3);
240 int maxiso = surrendmanager3->getMaxIsoValue(_propidSC);
241 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSC)->createControls(maxiso);
242 wxtabs->AddPage(controlpanSC, _T("SR C"));
243 wxtabs->GetPage(3)->Disable();
245 surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
250 std::cout << "Exception : " << str << '\n';
251 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
260 void wxMaracasRenderTabbedPanel::addMPROptions()
262 int x = 0,y = 0,z = 0;
271 double org[3],spc[3];
279 vtkMPRBaseData* mvtkmprbasedata = new vtkMPRBaseData();
280 marImageData* marimagedata = new marImageData( getVolImage() );
281 mvtkmprbasedata ->SetMarImageData(marimagedata);
283 mwxvtkmpr3Dview = new wxVtkMPR3DView( baseView );
285 vtkmpr3Ddataviewer = new vtkMPR3DDataViewer();
287 wxPanel *panelControl = new wxPanel(wxtabs,-1);
288 controlPanelMPR3D = mwxvtkmpr3Dview->CreateControlPanel(panelControl, true);
290 wxFlexGridSizer *sizerCtrol = new wxFlexGridSizer(1);
291 sizerCtrol ->Add(controlPanelMPR3D, 1, wxALL|wxEXPAND, 2);
293 panelControl->SetAutoLayout(true);
294 panelControl->SetSizer(sizerCtrol);
295 panelControl->SetSize(400,350);
296 panelControl->Layout();
298 if (mvtkmprbasedata!=NULL)
300 mvtkmprbasedata->Configure();
301 /*x = mvtkmprbasedata -> GetMaxPositionX()/2;
302 y = mvtkmprbasedata -> GetMaxPositionY()/2;
303 z = mvtkmprbasedata -> GetMaxPositionZ()/2; */
305 if(mvtkmprbasedata->GetImageData() != NULL)
307 mvtkmprbasedata->GetImageData()->GetExtent(ext);
308 mvtkmprbasedata->GetImageData()->GetOrigin(org);
309 mvtkmprbasedata->GetImageData()->GetSpacing(spc);
311 x = (ext[0]+ext[1])/2;
312 y = (ext[2]+ext[3])/2;
313 z = (ext[4]+ext[5])/2;
315 mvtkmprbasedata->SetX( x );
316 mvtkmprbasedata->SetY( y );
317 mvtkmprbasedata->SetZ( z );
321 mvtkmprbasedata->SetX( 0 );
322 mvtkmprbasedata->SetY( 0 );
323 mvtkmprbasedata->SetZ( 0 );
328 baseView ->Configure();
330 if (vtkmpr3Ddataviewer !=NULL)
332 vtkmpr3Ddataviewer ->SetVtkMPRBaseData(mvtkmprbasedata);
333 vtkmpr3Ddataviewer ->Configure();
335 if (mwxvtkmpr3Dview !=NULL)
337 mwxvtkmpr3Dview ->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
338 mwxvtkmpr3Dview ->Configure();
339 mwxvtkmpr3Dview ->ResetCamera(ext,org,spc);
343 wxtabs->AddPage(panelControl, _T("MPR"));
344 wxtabs->GetPage(id)->Enable();
345 wxtabs->SetSelection(id);
347 ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleZ(true);
348 ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleXYZ(true);
349 mwxvtkmpr3Dview->showOutlineActor(true);
350 mwxvtkmpr3Dview->Refresh();
355 ** Deletes complete volume
357 void wxMaracasRenderTabbedPanel::deleteVolume(int volid)
361 volmanager->deleteActor(volid);
362 surrendmanager1->deleteActor(volid);
363 surrendmanager2->deleteActor(volid);
364 surrendmanager3->deleteActor(volid);
368 std::cout << "Exception : " << str << '\n';
369 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
376 ** Adds or removes volume rendering actor with given ID
378 void wxMaracasRenderTabbedPanel::addRemoveActorV(int id, bool addremove)
381 volmanager->addRemoveActor(id, addremove);
385 std::cout << "Exception : " << str << '\n';
386 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
393 ** Adds or removes surface rendering actor with given ID
395 void wxMaracasRenderTabbedPanel::addRemoveActorSA(int id, bool addremove)
398 surrendmanager1->addRemoveActor(id, addremove);
401 std::cout << "Exception : " << str << '\n';
402 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
409 ** Adds or removes surface rendering actor with given ID
411 void wxMaracasRenderTabbedPanel::addRemoveActorSB(int id, bool addremove)
414 surrendmanager2->addRemoveActor(id, addremove);
417 std::cout << "Exception : " << str << '\n';
418 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
425 ** Adds or removes surface rendering actor with given ID
427 void wxMaracasRenderTabbedPanel::addRemoveActorSC(int id, bool addremove)
430 surrendmanager3->addRemoveActor(id, addremove);
433 std::cout << "Exception : " << str << '\n';
434 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
442 ** Sets color points values for the given volume rendering identified by parameter: volumeid
444 void wxMaracasRenderTabbedPanel::SetValuesColorPointsFunction(int volid, std::vector<double> greylevelcolors,std::vector<double> red,std::vector<double> green,std::vector<double> blue)
446 volmanager->setVolumeColor(volid, greylevelcolors, red, green, blue);
450 ** Sets points values for the given volume rendering identified by parameter: volumeid
452 void wxMaracasRenderTabbedPanel::SetValuesPointsFunction(int volid, std::vector<double> greylevel, std::vector<double> values)
455 volmanager->setVolumeOpacity(volid, greylevel, values);
459 wxString s( str,wxConvUTF8 );
460 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
468 ** Returns transfer function for the given volume rendering identified by parameter: volumeid
470 vtkPiecewiseFunction* wxMaracasRenderTabbedPanel::GetTransferFunction(int volumeid)
472 return volmanager->GetTransferFunction(volumeid);
476 ** Returns color function for the given volume rendering identified by parameter: volumeid
478 vtkColorTransferFunction* wxMaracasRenderTabbedPanel::GetColorFunction(int volumeid)
480 return volmanager->GetColorFunction(volumeid);
484 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
486 void wxMaracasRenderTabbedPanel::changeOpacityA(int _propid, int value)
488 surrendmanager1->changeOpacity(_propid,value);
492 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
494 void wxMaracasRenderTabbedPanel::changeIsoValueA(int propid, double value)
496 surrendmanager1->changeIsoValue(propid, value);
500 ** Changes color for the given surface rendering image identified by parameter: propid
502 void wxMaracasRenderTabbedPanel::changeColorA(int propid, double red, double green, double blue)
506 surrendmanager1->changeColor(propid, red, green, blue);
510 wxString s( str,wxConvUTF8 );
511 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
518 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
520 void wxMaracasRenderTabbedPanel::changeOpacityB(int _propid, int value)
522 surrendmanager2->changeOpacity(_propid,value);
526 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
528 void wxMaracasRenderTabbedPanel::changeIsoValueB(int propid, double value)
530 surrendmanager2->changeIsoValue(propid, value);
534 ** Changes color for the given surface rendering image identified by parameter: propid
536 void wxMaracasRenderTabbedPanel::changeColorB(int propid, double red, double green, double blue)
540 surrendmanager2->changeColor(propid, red, green, blue);
544 wxString s( str,wxConvUTF8 );
545 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
552 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
554 void wxMaracasRenderTabbedPanel::changeOpacityC(int _propid, int value)
556 surrendmanager3->changeOpacity(_propid,value);
560 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
562 void wxMaracasRenderTabbedPanel::changeIsoValueC(int propid, double value)
564 surrendmanager3->changeIsoValue(propid, value);
568 ** Changes color for the given surface rendering image identified by parameter: propid
570 void wxMaracasRenderTabbedPanel::changeColorC(int propid, double red, double green, double blue)
574 surrendmanager3->changeColor(propid, red, green, blue);
578 wxString s( str,wxConvUTF8 );
579 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
586 ** Method called when VolumeRendering checkbox status changes: Either shows or hides VolumeRendering image
588 void wxMaracasRenderTabbedPanel::onCheckBoxVChange(wxCommandEvent& event)
591 volmanager->addRemoveActor(this->getPropIdV(), checkboxVol->GetValue());
594 wxtabs->SetSelection(id);
596 if(checkboxVol->GetValue())
598 wxtabs->GetPage(id)->Enable();
602 wxtabs->GetPage(id)->Disable();
606 std::cout << "Exception : " << str << '\n';
607 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
614 ** Method called when SurfaceRendering A checkbox status changes: Either shows or hides SurfaceRendering image
616 void wxMaracasRenderTabbedPanel::onCheckBoxSAChange(wxCommandEvent& event)
619 surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSA->GetValue());
622 wxtabs->SetSelection(id);
624 if(checkboxSA->GetValue())
626 wxtabs->GetPage(id)->Enable();
631 wxtabs->GetPage(id)->Disable();
635 std::cout << "Exception : " << str << '\n';
636 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
643 ** Method called when SurfaceRendering B checkbox status changes: Either shows or hides SurfaceRendering B image
645 void wxMaracasRenderTabbedPanel::onCheckBoxSBChange(wxCommandEvent& event)
648 surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSB->GetValue());
651 wxtabs->SetSelection(id);
653 if(checkboxSB->GetValue())
655 wxtabs->GetPage(id)->Enable();
659 wxtabs->GetPage(id)->Disable();
663 std::cout << "Exception : " << str << '\n';
664 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
671 ** Method called when SurfaceRendering C checkbox status changes: Either shows or hides SurfaceRendering C image
673 void wxMaracasRenderTabbedPanel::onCheckBoxSCChange(wxCommandEvent& event)
676 surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
679 wxtabs->SetSelection(id);
681 if(checkboxSC->GetValue())
683 wxtabs->GetPage(id)->Enable();
687 wxtabs->GetPage(id)->Disable();
691 std::cout << "Exception : " << str << '\n';
692 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
699 ** Method called when MPR checkbox status changes: Either shows or hides actors
701 void wxMaracasRenderTabbedPanel::onMPROptions(wxCommandEvent& event)
704 wxtabs->SetSelection(id);
705 if(checkboxViewer->IsChecked())
707 wxtabs->GetPage(id)->Enable();
709 bool valueX = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleX();
710 bool valueY = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleY();
711 bool valueZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleZ();
712 bool valueXYZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleXYZ();
713 bool valuePlane = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisiblePlane();
715 mwxvtkmpr3Dview->VisibleImageActor( 0, valueX );
716 mwxvtkmpr3Dview->VisibleImageActor( 1, valueY );
717 mwxvtkmpr3Dview->VisibleImageActor( 2, valueZ );
718 mwxvtkmpr3Dview->VisiblePointWidget(valueXYZ);
719 mwxvtkmpr3Dview->VisiblePlaneWidget(valuePlane);
720 mwxvtkmpr3Dview->showOutlineActor(true);
722 mwxvtkmpr3Dview->Refresh();
724 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
725 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
730 wxtabs->GetPage(id)->Disable();
732 mwxvtkmpr3Dview->VisiblePointWidget(false);
733 mwxvtkmpr3Dview->VisiblePlaneWidget(false);
734 mwxvtkmpr3Dview->VisibleImageActor(0, false );
735 mwxvtkmpr3Dview->VisibleImageActor(1, false );
736 mwxvtkmpr3Dview->VisibleImageActor(2, false );
737 mwxvtkmpr3Dview->showOutlineActor(false);
738 mwxvtkmpr3Dview->Refresh();
740 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
741 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
748 void wxMaracasRenderTabbedPanel::onOpenParameters(wxCommandEvent& event){
751 dialog = new wxMaracasRenderImageManagementPanel(this, volmanager, surrendmanager1, surrendmanager2, surrendmanager3, volname, _id);
752 dialog->SetSize(460, 580);
755 else if(dialog != NULL)
764 void wxMaracasRenderTabbedPanel::onOpenCutter(wxCommandEvent& event)
766 vtkImageData* img = getVolImage();
767 std::vector<int> type;
773 wxMaracasDialog_NViewers* dialog1 = new wxMaracasDialog_NViewers(this, img, &type, wxString(_T("Cut Module") ));
774 dialog1->SetSize(800, 700);
776 std::string path = crea::System::GetDllAppPath("bbcreaMaracasVisu.dll");
777 cutter = CutModel2MainPanel::getInstance(dialog1->getinternalPanel(), path);
778 cutter->setRenderer( dialog1->getViewer()->GetwxVtkBaseView(1)->GetRenderer() );
779 cutter->setInteractor( dialog1->getViewer()->GetwxVtkBaseView(1)->GetWxVTKRenderWindowInteractor() );
780 cutter->setImageData(getVolImage());
782 dialog1->AddPanel(cutter);
787 ** Gets volume rendering image asociated to the given ID
789 void wxMaracasRenderTabbedPanel::onColorChange(wxCommandEvent& event)
791 /*Temporarily disabled*/
793 //if(mwxwidget->ShowModal()==wxID_OK){
795 // mwxwidget->Show(false);
802 vtkImageData* wxMaracasRenderTabbedPanel::getVolImage()
804 return volmanager->getImageData();
808 ** Gets surface rendering A image asociated to the given ID
810 vtkImageData* wxMaracasRenderTabbedPanel::getSurfAImage()
812 return surrendmanager1->getImageData();
816 ** Gets surface rendering B image asociated to the given ID
818 vtkImageData* wxMaracasRenderTabbedPanel::getSurfBImage()
820 return surrendmanager2->getImageData();
824 ** Gets surface rendering C image asociated to the given ID
826 vtkImageData* wxMaracasRenderTabbedPanel::getSurfCImage()
828 return surrendmanager3->getImageData();
834 int wxMaracasRenderTabbedPanel::getPropIdV()