1 #include "wxMaracasRenderTabbedPanel.h"
3 #include <wx/colordlg.h>
4 #include <OpenImage.xpm>
11 wxMaracasRenderTabbedPanel::wxMaracasRenderTabbedPanel(wxWindow* parent, wxMaracasMultipleVolumeRendererManager* _volmanager, wxMaracasSurfaceRenderingManager* _surrendmanager1, wxMaracasSurfaceRenderingManager* _surrendmanager2,
12 wxMaracasSurfaceRenderingManager* _surrendmanager3, wxString filename, wxString dataname)
13 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize)
16 volmanager = _volmanager;
17 surrendmanager1 = _surrendmanager1;
18 surrendmanager2 = _surrendmanager2;
19 surrendmanager3 = _surrendmanager3;
21 createControls(filename, dataname);
27 void wxMaracasRenderTabbedPanel::createControls(wxString filename, wxString dataname)
29 //wxPanel* up = new wxPanel(this, wxID_ANY);
30 wxFlexGridSizer* sizerrenderprop = new wxFlexGridSizer(2,3,1);
33 choices[0] = wxString(_T("On"));
34 choices[1] = wxString(_T("Off"));
35 checkboxVol = new wxCheckBox(this,-1,wxString(_T("Volume Rendering")));
36 Connect(checkboxVol->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxVChange);
37 checkboxVol->SetValue(true);
39 sizerrenderprop->Add(checkboxVol, wxFIXED_MINSIZE);
41 //wxString choices[2];
42 //choices[0] = wxString(_T("On"));
43 //choices[1] = wxString(_T("Off"));
44 checkboxSA = new wxCheckBox(this,-1,wxString(_T("Surface Rendering A")));
45 Connect(checkboxSA->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSAChange);
46 checkboxSA->SetValue(true);
48 sizerrenderprop->Add(checkboxSA, wxFIXED_MINSIZE);
50 //wxString choices[2];
51 //choices[0] = wxString(_T("On"));
52 //choices[1] = wxString(_T("Off"));
53 checkboxSB = new wxCheckBox(this,-1,wxString(_T("Surface Rendering B")));
54 Connect(checkboxSB->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSBChange);
55 checkboxSB->SetValue(true);
57 sizerrenderprop->Add(checkboxSB, wxFIXED_MINSIZE);
59 //wxString choices[2];
60 //choices[0] = wxString(_T("On"));
61 //choices[1] = wxString(_T("Off"));
62 checkboxSC = new wxCheckBox(this,-1,wxString(_T("Surface Rendering C")));
63 Connect(checkboxSC->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSCChange);
64 checkboxSC->SetValue(true);
66 sizerrenderprop->Add(checkboxSC, wxFIXED_MINSIZE);
68 //up->SetSizer(sizerup, true);
69 //up->SetAutoLayout( true );
71 wxtabs = new wxNotebook(this, -1);
73 std::string s = std::string(filename.mb_str());
74 vtkImageData* img1 = volmanager->getImageData(s);
75 vtkImageData* img2 = surrendmanager1->getImageData(s);
76 vtkImageData* img3 = surrendmanager2->getImageData(s);
77 vtkImageData* img4 = surrendmanager3->getImageData(s);
80 s = std::string(dataname.mb_str());
81 wxMaracasMultipleVolumeRendererPanel* controlpan1 = addVolume(img1, s);
82 wxMaracasSurfaceRenderingPanel* controlpan2 = addSurface1(img2, s);
83 wxMaracasSurfaceRenderingPanel* controlpan3 = addSurface2(img3, s);
84 wxMaracasSurfaceRenderingPanel* controlpan4 = addSurface3(img4, s);
86 wxtabs->AddPage(controlpan1, _T("Volume Rendering"), true);
87 wxtabs->AddPage(controlpan2, _T("Surf Rend A"));
88 wxtabs->AddPage(controlpan3, _T("Surf Rend B"));
89 wxtabs->AddPage(controlpan4, _T("Surf Rend C"));
94 //wxFlexGridSizer* sizerrenderprop = new wxFlexGridSizer(2,1,5);
95 //sizerrenderprop->Add(up, wxFIXED_MINSIZE);
96 sizerrenderprop->Add(wxtabs, wxFIXED_MINSIZE);
98 this->SetSizer(sizerrenderprop, true);
99 this->SetAutoLayout( true );
103 wxMaracasRenderTabbedPanel::~wxMaracasRenderTabbedPanel()
105 //wxMaracasIRMView::getInstance()->addRemoveActor(_propid, false);
106 //wxMaracasRenderTabbedPanel::getInstance()->deleteVolume(_propid);
116 wxMaracasMultipleVolumeRendererPanel* wxMaracasRenderTabbedPanel::addVolume(vtkImageData* img, std::string dataname)
121 int id = volmanager->addVolume(img, dataname);
124 wxMaracasMultipleVolumeRendererPanel* controlpan = new wxMaracasMultipleVolumeRendererPanel(wxtabs, id,img);
125 //controlpan->updateVolume();
132 std::cout << "Exception : " << str << '\n';
133 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
138 wxMaracasSurfaceRenderingPanel* wxMaracasRenderTabbedPanel::addSurface1(vtkImageData* img, std::string dataname)
142 int id = surrendmanager1->addPropMHD(img, dataname);
146 wxMaracasSurfaceRenderingPanel* controlpan = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, id);
147 //int maxiso = surrendmanager1->getMaxIsoValue(id);
148 //((wxMaracasSurfaceRenderingProp3DMHD*)controlpan)->createControls(maxiso);
155 std::cout << "Exception : " << str << '\n';
156 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
161 wxMaracasSurfaceRenderingPanel* wxMaracasRenderTabbedPanel::addSurface2(vtkImageData* img, std::string dataname)
165 int id = surrendmanager2->addPropMHD(img, dataname);
168 wxMaracasSurfaceRenderingPanel* controlpan = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, id);
169 //int maxiso = surrendmanager2->getMaxIsoValue(id);
170 //((wxMaracasSurfaceRenderingProp3DMHD*)controlpan)->createControls(maxiso);
177 std::cout << "Exception : " << str << '\n';
178 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
183 wxMaracasSurfaceRenderingPanel* wxMaracasRenderTabbedPanel::addSurface3(vtkImageData* img, std::string dataname)
187 int id = surrendmanager3->addPropMHD(img, dataname);
190 wxMaracasSurfaceRenderingPanel* controlpan = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, id);
191 //int maxiso = surrendmanager3->getMaxIsoValue(id);
192 //((wxMaracasSurfaceRenderingProp3DMHD*)controlpan)->createControls(maxiso);
199 std::cout << "Exception : " << str << '\n';
200 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
205 void wxMaracasRenderTabbedPanel::onOK(wxCommandEvent& event)
208 //_frame->Show(false);
211 void wxMaracasRenderTabbedPanel::onCancel(wxCommandEvent& event)
213 //_frame->Show(false);
216 void wxMaracasRenderTabbedPanel::onUpdate(wxCommandEvent& event)
221 void wxMaracasRenderTabbedPanel::updateVolume()
223 //std::vector<double> greylevelcolors;
224 //std::vector<double> red;
225 //std::vector<double> green;
226 //std::vector<double> blue;
228 //std::vector<double> greylevel;
229 //std::vector<double> values;
231 //mwxwidget->GetValuesColorPointsFunction(greylevelcolors, red, green, blue);
232 //mwxwidget->GetValuesPointsFunction(greylevel, values);
235 //wxMaracasMultipleVolumeRendererView::getInstance()->SetValuesColorPointsFunction(this->_propid, greylevelcolors, red, green, blue);
236 //wxMaracasMultipleVolumeRendererView::getInstance()->SetValuesPointsFunction(this->_propid, greylevel, values);
240 void wxMaracasRenderTabbedPanel::onColorChange(wxCommandEvent& event)
243 //if(mwxwidget->ShowModal()==wxID_OK){
245 // mwxwidget->Show(false);
252 void wxMaracasRenderTabbedPanel::onViewImage(wxCommandEvent& event){
259 void wxMaracasRenderTabbedPanel::onCheckBoxVChange(wxCommandEvent& event)
261 //wxMaracasMultipleVolumeRendererView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());
267 void wxMaracasRenderTabbedPanel::onCheckBoxSAChange(wxCommandEvent& event)
269 //wxMaracasMultipleVolumeRendererView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());
275 void wxMaracasRenderTabbedPanel::onCheckBoxSBChange(wxCommandEvent& event)
277 //wxMaracasMultipleVolumeRendererView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());
283 void wxMaracasRenderTabbedPanel::onCheckBoxSCChange(wxCommandEvent& event)
285 //wxMaracasMultipleVolumeRendererView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());
291 int wxMaracasRenderTabbedPanel::getPropId(){