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"
25 wxMaracasRenderTabbedPanel::wxMaracasRenderTabbedPanel(wxWindow* parent, int id, wxVtk3DBaseView* _baseView)
26 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize)
32 volmanager = new wxMaracasMultipleVolumeRendererManager();
33 surrendmanager1 = new wxMaracasSurfaceRenderingManager();
34 surrendmanager2 = new wxMaracasSurfaceRenderingManager();
35 surrendmanager3 = new wxMaracasSurfaceRenderingManager();
41 wxMaracasRenderTabbedPanel::~wxMaracasRenderTabbedPanel()
43 //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorV(_propid, false);
44 //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSA(_propid, false);
45 //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSB(_propid, false);
46 //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSC(_propid, false);
47 if( vtkmpr3Ddataviewer ) { delete vtkmpr3Ddataviewer; }
48 if( mwxvtkmpr3Dview ) { delete mwxvtkmpr3Dview; }
50 this->deleteVolume(_id);
56 ** Initializes rendered images, and creates and adds elements to the panel
58 void wxMaracasRenderTabbedPanel::createControls(vtkImageData* inImg, std::string pathfile, std::string filename)
60 wxFlexGridSizer* sizerrenderprop = new wxFlexGridSizer(1);
62 wxFlexGridSizer* sizercheck = new wxFlexGridSizer(3);
63 checkboxVol = new wxCheckBox(this,-1,wxString(_T("Volume Rendering")));
64 Connect(checkboxVol->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxVChange);
65 checkboxVol->SetValue(false);
66 sizercheck->Add(checkboxVol, wxFIXED_MINSIZE);
68 checkboxSA = new wxCheckBox(this,-1,wxString(_T("Surface Rendering A")));
69 Connect(checkboxSA->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSAChange);
70 checkboxSA->SetValue(false);
71 sizercheck->Add(checkboxSA, wxFIXED_MINSIZE);
73 checkboxViewer = new wxCheckBox(this,-1,wxString(_T("MPR")));
74 Connect(checkboxViewer->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onMPROptions);
75 checkboxViewer->SetValue(true);
76 sizercheck->Add(checkboxViewer, wxFIXED_MINSIZE);
78 checkboxSB = new wxCheckBox(this,-1,wxString(_T("Surface Rendering B")));
79 Connect(checkboxSB->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSBChange);
80 checkboxSB->SetValue(false);
81 sizercheck->Add(checkboxSB, wxFIXED_MINSIZE);
83 checkboxSC = new wxCheckBox(this,-1,wxString(_T("Surface Rendering C")));
84 Connect(checkboxSC->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSCChange);
85 checkboxSC->SetValue(false);
86 sizercheck->Add(checkboxSC, wxFIXED_MINSIZE);
88 sizercheck->Add(new wxStaticText(this, -1,_T("")), wxFIXED_MINSIZE);
90 wxButton* _openParameters = new wxButton(this, -1, wxString(_T("Apply Transformation")));
91 Connect(_openParameters->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onOpenParameters);
92 sizercheck->Add(_openParameters,wxFIXED_MINSIZE);
94 wxButton* _openCutter = new wxButton(this, -1, wxString(_T("Open Cutter View")));
95 Connect(_openCutter->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onOpenCutter);
96 sizercheck->Add(_openCutter,wxFIXED_MINSIZE);
97 sizerrenderprop->Add(sizercheck, wxFIXED_MINSIZE);
99 wxtabs = new wxNotebook(this, -1);
103 vtkImageData* img = volmanager->getImageData(pathfile);
104 //vtkImageData* img1 = surrendmanager1->getImageData(pathfile);
105 //vtkImageData* img2 = surrendmanager2->getImageData(pathfile);
106 //vtkImageData* img3 = surrendmanager3->getImageData(pathfile);
107 if(img!=NULL /*&& img1!=NULL && img2!=NULL && img3!=NULL*/)
109 addVolume(img, filename);
110 addSurface1(img, filename);
111 addSurface2(img, filename);
112 addSurface3(img, filename);
114 volname = (wxString) filename;
120 addVolume(inImg, filename);
121 addSurface1(inImg, filename);
122 addSurface2(inImg, filename);
123 addSurface3(inImg, filename);
127 sizerrenderprop->Add(wxtabs, wxSizerFlags().Expand().Center());
129 this->SetSizer(sizerrenderprop, true);
130 this->SetAutoLayout( true );
135 ** Sets given renderer
137 void wxMaracasRenderTabbedPanel::setRenderer(vtkRenderer* renderer)
139 volmanager->setRenderer(renderer);
140 surrendmanager1->setRenderer(renderer);
141 surrendmanager2->setRenderer(renderer);
142 surrendmanager3->setRenderer(renderer);
146 ** Adds a volume using Volume Rendering
148 void wxMaracasRenderTabbedPanel::addVolume(vtkImageData* img, std::string dataname)
152 int _propidV = volmanager->addVolume(_id, img, dataname);
155 wxMaracasMultipleVolumeRendererPanel* controlpanV = new wxMaracasMultipleVolumeRendererPanel(wxtabs, _propidV, img, true);
156 wxtabs->AddPage(controlpanV, _T("Vol Rendering"), true);
157 controlpanV->updateVolume();
158 wxtabs->GetPage(0)->Disable();
160 volmanager->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
165 std::cout << "Exception : " << str << '\n';
166 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
173 ** Adds a volume using surface rendering
175 void wxMaracasRenderTabbedPanel::addSurface1(vtkImageData* img, std::string dataname)
179 int _propidSA = surrendmanager1->addPropMHD(_id, img, dataname);
183 wxMaracasSurfaceRenderingPanel* controlpanSA = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSA, true, 1);
184 int maxiso = surrendmanager1->getMaxIsoValue(_propidSA);
185 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSA)->createControls(maxiso);
186 wxtabs->AddPage(controlpanSA, _T("SR A"));
187 wxtabs->GetPage(1)->Disable();
189 surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
194 std::cout << "Exception : " << str << '\n';
195 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
202 ** Adds a volume using surface rendering
204 void wxMaracasRenderTabbedPanel::addSurface2(vtkImageData* img, std::string dataname)
208 int _propidSB = surrendmanager2->addPropMHD(_id, img, dataname);
211 wxMaracasSurfaceRenderingPanel* controlpanSB = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSB, true, 2);
212 int maxiso = surrendmanager2->getMaxIsoValue(_propidSB);
213 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSB)->createControls(maxiso);
214 wxtabs->AddPage(controlpanSB, _T("SR B"));
215 wxtabs->GetPage(2)->Disable();
217 surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
223 std::cout << "Exception : " << str << '\n';
224 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
231 ** Adds a volume using Surface Rendering
233 void wxMaracasRenderTabbedPanel::addSurface3(vtkImageData* img, std::string dataname)
237 int _propidSC = surrendmanager3->addPropMHD(_id, img, dataname);
241 wxMaracasSurfaceRenderingPanel* controlpanSC = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSC, true, 3);
242 int maxiso = surrendmanager3->getMaxIsoValue(_propidSC);
243 ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSC)->createControls(maxiso);
244 wxtabs->AddPage(controlpanSC, _T("SR C"));
245 wxtabs->GetPage(3)->Disable();
247 surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
252 std::cout << "Exception : " << str << '\n';
253 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
262 void wxMaracasRenderTabbedPanel::addMPROptions()
265 vtkMPRBaseData* mvtkmprbasedata = new vtkMPRBaseData();
266 marImageData* marimagedata = new marImageData( getVolImage() );
267 mvtkmprbasedata ->SetMarImageData(marimagedata);
269 mwxvtkmpr3Dview = new wxVtkMPR3DView( baseView );
271 vtkmpr3Ddataviewer = new vtkMPR3DDataViewer();
273 wxPanel *panelControl = new wxPanel(wxtabs,-1);
274 controlPanelMPR3D = mwxvtkmpr3Dview->CreateControlPanel(panelControl, true);
276 wxFlexGridSizer *sizerCtrol = new wxFlexGridSizer(1);
277 sizerCtrol ->Add(controlPanelMPR3D, 1, wxALL|wxEXPAND, 2);
279 panelControl->SetAutoLayout(true);
280 panelControl->SetSizer(sizerCtrol);
281 panelControl->SetSize(400,350);
282 panelControl->Layout();
285 int x = 0,y = 0,z = 0;
294 double org[3],spc[3];
302 if (mvtkmprbasedata!=NULL)
304 mvtkmprbasedata->Configure();
305 /*x = mvtkmprbasedata -> GetMaxPositionX()/2;
306 y = mvtkmprbasedata -> GetMaxPositionY()/2;
307 z = mvtkmprbasedata -> GetMaxPositionZ()/2; */
309 if(mvtkmprbasedata->GetImageData() != NULL)
311 mvtkmprbasedata->GetImageData()->GetExtent(ext);
312 mvtkmprbasedata->GetImageData()->GetOrigin(org);
313 mvtkmprbasedata->GetImageData()->GetSpacing(spc);
315 x = (ext[0]+ext[1])/2;
316 y = (ext[2]+ext[3])/2;
317 z = (ext[4]+ext[5])/2;
319 mvtkmprbasedata->SetX( x );
320 mvtkmprbasedata->SetY( y );
321 mvtkmprbasedata->SetZ( z );
325 mvtkmprbasedata->SetX( 0 );
326 mvtkmprbasedata->SetY( 0 );
327 mvtkmprbasedata->SetZ( 0 );
333 baseView ->Configure();
336 if (vtkmpr3Ddataviewer !=NULL)
338 vtkmpr3Ddataviewer ->SetVtkMPRBaseData(mvtkmprbasedata);
339 vtkmpr3Ddataviewer ->Configure();
341 if (mwxvtkmpr3Dview !=NULL)
343 mwxvtkmpr3Dview ->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
344 mwxvtkmpr3Dview ->Configure();
345 mwxvtkmpr3Dview ->ResetCamera(ext,org,spc);
349 wxtabs->AddPage(panelControl, _T("MPR"));
350 wxtabs->GetPage(id)->Enable();
351 wxtabs->SetSelection(id);
353 ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleZ(true);
354 ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleXYZ(true);
355 mwxvtkmpr3Dview->showOutlineActor(true);
356 mwxvtkmpr3Dview->Refresh();
361 ** Deletes complete volume
363 void wxMaracasRenderTabbedPanel::deleteVolume(int volid)
367 volmanager->deleteActor(volid);
368 surrendmanager1->deleteActor(volid);
369 surrendmanager2->deleteActor(volid);
370 surrendmanager3->deleteActor(volid);
374 std::cout << "Exception : " << str << '\n';
375 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
382 ** Adds or removes volume rendering actor with given ID
384 void wxMaracasRenderTabbedPanel::addRemoveActorV(int id, bool addremove)
387 volmanager->addRemoveActor(id, addremove);
391 std::cout << "Exception : " << str << '\n';
392 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
399 ** Adds or removes surface rendering actor with given ID
401 void wxMaracasRenderTabbedPanel::addRemoveActorSA(int id, bool addremove)
404 surrendmanager1->addRemoveActor(id, addremove);
407 std::cout << "Exception : " << str << '\n';
408 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
415 ** Adds or removes surface rendering actor with given ID
417 void wxMaracasRenderTabbedPanel::addRemoveActorSB(int id, bool addremove)
420 surrendmanager2->addRemoveActor(id, addremove);
423 std::cout << "Exception : " << str << '\n';
424 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
431 ** Adds or removes surface rendering actor with given ID
433 void wxMaracasRenderTabbedPanel::addRemoveActorSC(int id, bool addremove)
436 surrendmanager3->addRemoveActor(id, addremove);
439 std::cout << "Exception : " << str << '\n';
440 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
448 ** Sets color points values for the given volume rendering identified by parameter: volumeid
450 void wxMaracasRenderTabbedPanel::SetValuesColorPointsFunction(int volid, std::vector<double> greylevelcolors,std::vector<double> red,std::vector<double> green,std::vector<double> blue)
452 volmanager->setVolumeColor(volid, greylevelcolors, red, green, blue);
456 ** Sets points values for the given volume rendering identified by parameter: volumeid
458 void wxMaracasRenderTabbedPanel::SetValuesPointsFunction(int volid, std::vector<double> greylevel, std::vector<double> values)
461 volmanager->setVolumeOpacity(volid, greylevel, values);
465 wxString s( str,wxConvUTF8 );
466 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
473 ** Returns transfer function for the given volume rendering identified by parameter: volumeid
475 vtkPiecewiseFunction* wxMaracasRenderTabbedPanel::GetTransferFunction(int volumeid)
477 return volmanager->GetTransferFunction(volumeid);
481 ** Returns color function for the given volume rendering identified by parameter: volumeid
483 vtkColorTransferFunction* wxMaracasRenderTabbedPanel::GetColorFunction(int volumeid)
485 return volmanager->GetColorFunction(volumeid);
489 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
491 void wxMaracasRenderTabbedPanel::changeOpacityA(int _propid, int value)
493 surrendmanager1->changeOpacity(_propid,value);
497 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
499 void wxMaracasRenderTabbedPanel::changeIsoValueA(int propid, double value)
501 surrendmanager1->changeIsoValue(propid, value);
505 ** Changes color for the given surface rendering image identified by parameter: propid
507 void wxMaracasRenderTabbedPanel::changeColorA(int propid, double red, double green, double blue)
511 surrendmanager1->changeColor(propid, red, green, blue);
515 wxString s( str,wxConvUTF8 );
516 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
523 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
525 void wxMaracasRenderTabbedPanel::changeOpacityB(int _propid, int value)
527 surrendmanager2->changeOpacity(_propid,value);
531 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
533 void wxMaracasRenderTabbedPanel::changeIsoValueB(int propid, double value)
535 surrendmanager2->changeIsoValue(propid, value);
539 ** Changes color for the given surface rendering image identified by parameter: propid
541 void wxMaracasRenderTabbedPanel::changeColorB(int propid, double red, double green, double blue)
545 surrendmanager2->changeColor(propid, red, green, blue);
549 wxString s( str,wxConvUTF8 );
550 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
557 ** Changes color function by the given value for the given volume rendering identified by parameter: volumeid
559 void wxMaracasRenderTabbedPanel::changeOpacityC(int _propid, int value)
561 surrendmanager3->changeOpacity(_propid,value);
565 ** Changes isoValue by the given value for the given surface rendering image identified by parameter: propid
567 void wxMaracasRenderTabbedPanel::changeIsoValueC(int propid, double value)
569 surrendmanager3->changeIsoValue(propid, value);
573 ** Changes color for the given surface rendering image identified by parameter: propid
575 void wxMaracasRenderTabbedPanel::changeColorC(int propid, double red, double green, double blue)
579 surrendmanager3->changeColor(propid, red, green, blue);
583 wxString s( str,wxConvUTF8 );
584 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
591 ** Method called when VolumeRendering checkbox status changes: Either shows or hides VolumeRendering image
593 void wxMaracasRenderTabbedPanel::onCheckBoxVChange(wxCommandEvent& event)
596 volmanager->addRemoveActor(this->getPropIdV(), checkboxVol->GetValue());
599 wxtabs->SetSelection(id);
601 if(checkboxVol->GetValue())
603 wxtabs->GetPage(id)->Enable();
607 wxtabs->GetPage(id)->Disable();
611 std::cout << "Exception : " << str << '\n';
612 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
619 ** Method called when SurfaceRendering A checkbox status changes: Either shows or hides SurfaceRendering image
621 void wxMaracasRenderTabbedPanel::onCheckBoxSAChange(wxCommandEvent& event)
624 surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSA->GetValue());
627 wxtabs->SetSelection(id);
629 if(checkboxSA->GetValue())
631 wxtabs->GetPage(id)->Enable();
636 wxtabs->GetPage(id)->Disable();
640 std::cout << "Exception : " << str << '\n';
641 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
648 ** Method called when SurfaceRendering B checkbox status changes: Either shows or hides SurfaceRendering B image
650 void wxMaracasRenderTabbedPanel::onCheckBoxSBChange(wxCommandEvent& event)
653 surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSB->GetValue());
656 wxtabs->SetSelection(id);
658 if(checkboxSB->GetValue())
660 wxtabs->GetPage(id)->Enable();
664 wxtabs->GetPage(id)->Disable();
668 std::cout << "Exception : " << str << '\n';
669 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
676 ** Method called when SurfaceRendering C checkbox status changes: Either shows or hides SurfaceRendering C image
678 void wxMaracasRenderTabbedPanel::onCheckBoxSCChange(wxCommandEvent& event)
681 surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
684 wxtabs->SetSelection(id);
686 if(checkboxSC->GetValue())
688 wxtabs->GetPage(id)->Enable();
692 wxtabs->GetPage(id)->Disable();
696 std::cout << "Exception : " << str << '\n';
697 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
704 ** Method called when MPR checkbox status changes: Either shows or hides actors
706 void wxMaracasRenderTabbedPanel::onMPROptions(wxCommandEvent& event)
709 wxtabs->SetSelection(id);
710 if(checkboxViewer->IsChecked())
712 wxtabs->GetPage(id)->Enable();
714 bool valueX = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleX();
715 bool valueY = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleY();
716 bool valueZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleZ();
717 bool valueXYZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleXYZ();
718 bool valuePlane = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisiblePlane();
720 mwxvtkmpr3Dview->VisibleImageActor( 0, valueX );
721 mwxvtkmpr3Dview->VisibleImageActor( 1, valueY );
722 mwxvtkmpr3Dview->VisibleImageActor( 2, valueZ );
723 mwxvtkmpr3Dview->VisiblePointWidget(valueXYZ);
724 mwxvtkmpr3Dview->VisiblePlaneWidget(valuePlane);
725 mwxvtkmpr3Dview->showOutlineActor(true);
727 mwxvtkmpr3Dview->Refresh();
729 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
730 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
735 wxtabs->GetPage(id)->Disable();
737 mwxvtkmpr3Dview->VisiblePointWidget(false);
738 mwxvtkmpr3Dview->VisiblePlaneWidget(false);
739 mwxvtkmpr3Dview->VisibleImageActor(0, false );
740 mwxvtkmpr3Dview->VisibleImageActor(1, false );
741 mwxvtkmpr3Dview->VisibleImageActor(2, false );
742 mwxvtkmpr3Dview->showOutlineActor(false);
743 mwxvtkmpr3Dview->Refresh();
745 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
746 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
753 void wxMaracasRenderTabbedPanel::onOpenParameters(wxCommandEvent& event){
756 dialog = new wxMaracasRenderImageManagementPanel(this, volmanager, surrendmanager1, surrendmanager2, surrendmanager3, volname, _id);
757 dialog->SetSize(460, 580);
760 else if(dialog != NULL)
769 void wxMaracasRenderTabbedPanel::onOpenCutter(wxCommandEvent& event)
771 vtkImageData* img = getVolImage();
772 std::vector<int> type;
778 wxMaracasDialog_NViewers* dialog1 = new wxMaracasDialog_NViewers(this, img, &type, wxString(_T("Cut Module") ));
779 dialog1->SetSize(800, 700);
781 std::string path = crea::System::GetDllAppPath("bbcreaMaracasVisu.dll");
782 cutter = CutModelMainPanel::getInstance(dialog1->getinternalPanel(), path);
783 cutter->setRenderer( dialog1->getViewer()->GetwxVtkBaseView(1)->GetRenderer() );
784 cutter->setInteractor( dialog1->getViewer()->GetwxVtkBaseView(1)->GetWxVTKRenderWindowInteractor() );
785 cutter->setImageData(getVolImage());
787 dialog1->AddPanel(cutter);
792 ** Gets volume rendering image asociated to the given ID
794 void wxMaracasRenderTabbedPanel::onColorChange(wxCommandEvent& event)
796 /*Temporarily disabled*/
798 //if(mwxwidget->ShowModal()==wxID_OK){
800 // mwxwidget->Show(false);
807 vtkImageData* wxMaracasRenderTabbedPanel::getVolImage()
809 return volmanager->getImageData();
813 ** Gets surface rendering A image asociated to the given ID
815 vtkImageData* wxMaracasRenderTabbedPanel::getSurfAImage()
817 return surrendmanager1->getImageData();
821 ** Gets surface rendering B image asociated to the given ID
823 vtkImageData* wxMaracasRenderTabbedPanel::getSurfBImage()
825 return surrendmanager2->getImageData();
829 ** Gets surface rendering C image asociated to the given ID
831 vtkImageData* wxMaracasRenderTabbedPanel::getSurfCImage()
833 return surrendmanager3->getImageData();
839 int wxMaracasRenderTabbedPanel::getPropIdV()