1 #include "wxMaracasRenderTabbedPanel.h"
3 #include <wx/colordlg.h>
4 #include <OpenImage.xpm>
11 wxMaracasRenderTabbedPanel::wxMaracasRenderTabbedPanel(wxWindow* parent, wxMaracasMultipleVolumeRendererManager* img1, wxMaracasSurfaceRenderingManager* img2, wxMaracasSurfaceRenderingManager* img3,
12 wxMaracasSurfaceRenderingManager* img4, wxString filename, wxString dataname)
13 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize)
17 createControls(img1, img2, img3, img4, filename, dataname);
23 void wxMaracasRenderTabbedPanel::createControls(wxMaracasMultipleVolumeRendererManager* volmanager, wxMaracasSurfaceRenderingManager* surrendmanager1, wxMaracasSurfaceRenderingManager* surrendmanager2,
24 wxMaracasSurfaceRenderingManager* surrendmanager3, wxString filename, wxString dataname)
26 wxPanel* up = new wxPanel(this, wxID_ANY);
27 wxFlexGridSizer* sizerup = new wxFlexGridSizer(2,2,1);
30 choices[0] = wxString(_T("On"));
31 choices[1] = wxString(_T("Off"));
32 checkboxVol = new wxCheckBox(this,-1,wxString(_T("Volume Rendering")));
33 Connect(checkboxVol->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxVChange);
34 checkboxVol->SetValue(true);
36 sizerup->Add(checkboxVol, wxFIXED_MINSIZE);
38 //wxString choices[2];
39 //choices[0] = wxString(_T("On"));
40 //choices[1] = wxString(_T("Off"));
41 checkboxSA = new wxCheckBox(this,-1,wxString(_T("Surface Rendering A")));
42 Connect(checkboxSA->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSAChange);
43 checkboxSA->SetValue(true);
45 sizerup->Add(checkboxSA, wxFIXED_MINSIZE);
47 //wxString choices[2];
48 //choices[0] = wxString(_T("On"));
49 //choices[1] = wxString(_T("Off"));
50 checkboxSB = new wxCheckBox(this,-1,wxString(_T("Surface Rendering B")));
51 Connect(checkboxSB->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSBChange);
52 checkboxSB->SetValue(true);
54 sizerup->Add(checkboxSB, wxFIXED_MINSIZE);
56 //wxString choices[2];
57 //choices[0] = wxString(_T("On"));
58 //choices[1] = wxString(_T("Off"));
59 checkboxSC = new wxCheckBox(this,-1,wxString(_T("Surface Rendering C")));
60 Connect(checkboxSC->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSCChange);
61 checkboxSC->SetValue(true);
63 sizerup->Add(checkboxSC, wxFIXED_MINSIZE);
65 up->SetSizer(sizerup, true);
66 up->SetAutoLayout( true );
69 wxPanel* down = new wxPanel(this, wxID_ANY);
70 down->SetSize(100, 100);
71 wxFlexGridSizer* sizerdown = new wxFlexGridSizer(1,1,1);
73 wxtabs = new wxNotebook(this, -1);
74 wxtabs->SetSize(100, 100);
76 std::string s = std::string(filename.mb_str());
77 vtkImageData* img1 = volmanager->getImageData(s);
78 vtkImageData* img2 = surrendmanager1->getImageData(s);
79 vtkImageData* img3 = surrendmanager2->getImageData(s);
80 vtkImageData* img4 = surrendmanager3->getImageData(s);
83 s = std::string(dataname.mb_str());
84 wxMaracasMultipleVolumeRendererPanel* controlpan1 = addVolume(volmanager, img1, s);
85 wxMaracasSurfaceRenderingPanel* controlpan2 = addSurface1(surrendmanager1, img2, s);
86 wxMaracasSurfaceRenderingPanel* controlpan3 = addSurface2(surrendmanager2, img3, s);
87 wxMaracasSurfaceRenderingPanel* controlpan4 = addSurface3(surrendmanager3, img4, s);
89 wxtabs->AddPage(controlpan1, _T("Volume Rendering"), true);
90 wxtabs->AddPage(controlpan2, _T("Surf Rend A"));
91 wxtabs->AddPage(controlpan3, _T("Surf Rend B"));
92 wxtabs->AddPage(controlpan4, _T("Surf Rend C"));
95 sizerdown->Add(wxtabs, wxFIXED_MINSIZE);
97 down->SetSizer(sizerdown, true);
98 down->SetAutoLayout( true );
102 wxFlexGridSizer* sizerrenderprop = new wxFlexGridSizer(2,1,5);
103 sizerrenderprop->Add(up, wxFIXED_MINSIZE);
104 sizerrenderprop->Add(down, wxFIXED_MINSIZE);
106 this->SetSizer(sizerrenderprop, true);
107 this->SetAutoLayout( true );
111 wxMaracasRenderTabbedPanel::~wxMaracasRenderTabbedPanel()
113 //wxMaracasIRMView::getInstance()->addRemoveActor(_propid, false);
114 //wxMaracasRenderTabbedPanel::getInstance()->deleteVolume(_propid);
124 wxMaracasMultipleVolumeRendererPanel* wxMaracasRenderTabbedPanel::addVolume(wxMaracasMultipleVolumeRendererManager* volmanager, vtkImageData* img, std::string dataname)
129 int id = volmanager->addVolume(img, dataname);
132 wxMaracasMultipleVolumeRendererPanel* controlpan = new wxMaracasMultipleVolumeRendererPanel(wxtabs, id,img);
133 //controlpan->updateVolume();
140 std::cout << "Exception : " << str << '\n';
141 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
146 wxMaracasSurfaceRenderingPanel* wxMaracasRenderTabbedPanel::addSurface1(wxMaracasSurfaceRenderingManager* surrendmanager1, vtkImageData* img, std::string dataname)
150 int id = surrendmanager1->addPropMHD(img, dataname);
154 wxMaracasSurfaceRenderingPanel* controlpan = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, id);
155 //int maxiso = surrendmanager1->getMaxIsoValue(id);
156 //((wxMaracasSurfaceRenderingProp3DMHD*)controlpan)->createControls(maxiso);
163 std::cout << "Exception : " << str << '\n';
164 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
169 wxMaracasSurfaceRenderingPanel* wxMaracasRenderTabbedPanel::addSurface2(wxMaracasSurfaceRenderingManager* surrendmanager2, vtkImageData* img, std::string dataname)
173 int id = surrendmanager2->addPropMHD(img, dataname);
176 wxMaracasSurfaceRenderingPanel* controlpan = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, id);
177 //int maxiso = surrendmanager2->getMaxIsoValue(id);
178 //((wxMaracasSurfaceRenderingProp3DMHD*)controlpan)->createControls(maxiso);
185 std::cout << "Exception : " << str << '\n';
186 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
191 wxMaracasSurfaceRenderingPanel* wxMaracasRenderTabbedPanel::addSurface3(wxMaracasSurfaceRenderingManager* surrendmanager3, vtkImageData* img, std::string dataname)
195 int id = surrendmanager3->addPropMHD(img, dataname);
198 wxMaracasSurfaceRenderingPanel* controlpan = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, id);
199 //int maxiso = surrendmanager3->getMaxIsoValue(id);
200 //((wxMaracasSurfaceRenderingProp3DMHD*)controlpan)->createControls(maxiso);
207 std::cout << "Exception : " << str << '\n';
208 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
213 void wxMaracasRenderTabbedPanel::onOK(wxCommandEvent& event)
216 //_frame->Show(false);
219 void wxMaracasRenderTabbedPanel::onCancel(wxCommandEvent& event)
221 //_frame->Show(false);
224 void wxMaracasRenderTabbedPanel::onUpdate(wxCommandEvent& event)
229 void wxMaracasRenderTabbedPanel::updateVolume()
231 //std::vector<double> greylevelcolors;
232 //std::vector<double> red;
233 //std::vector<double> green;
234 //std::vector<double> blue;
236 //std::vector<double> greylevel;
237 //std::vector<double> values;
239 //mwxwidget->GetValuesColorPointsFunction(greylevelcolors, red, green, blue);
240 //mwxwidget->GetValuesPointsFunction(greylevel, values);
243 //wxMaracasMultipleVolumeRendererView::getInstance()->SetValuesColorPointsFunction(this->_propid, greylevelcolors, red, green, blue);
244 //wxMaracasMultipleVolumeRendererView::getInstance()->SetValuesPointsFunction(this->_propid, greylevel, values);
248 void wxMaracasRenderTabbedPanel::onColorChange(wxCommandEvent& event)
251 //if(mwxwidget->ShowModal()==wxID_OK){
253 // mwxwidget->Show(false);
260 void wxMaracasRenderTabbedPanel::onViewImage(wxCommandEvent& event){
267 void wxMaracasRenderTabbedPanel::onCheckBoxVChange(wxCommandEvent& event)
269 //wxMaracasMultipleVolumeRendererView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());
275 void wxMaracasRenderTabbedPanel::onCheckBoxSAChange(wxCommandEvent& event)
277 //wxMaracasMultipleVolumeRendererView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());
283 void wxMaracasRenderTabbedPanel::onCheckBoxSBChange(wxCommandEvent& event)
285 //wxMaracasMultipleVolumeRendererView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());
291 void wxMaracasRenderTabbedPanel::onCheckBoxSCChange(wxCommandEvent& event)
293 //wxMaracasMultipleVolumeRendererView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());
299 int wxMaracasRenderTabbedPanel::getPropId(){