--- /dev/null
+#include "wxMaracasMultipleVolumeRendererPanel.h"
+
+#include <wx/colordlg.h>
+#include "wxMaracasMultipleVolumeRendererView.h"
+#include "Color.xpm"
+/**
+** Implementation of viewProp3D
+**/
+
+wxMaracasMultipleVolumeRendererPanel::wxMaracasMultipleVolumeRendererPanel(wxWindow* parent,int propid, vtkImageData* img)
+: wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize)
+{
+ _propid = propid;
+
+ createControls(img);
+}
+
+wxMaracasMultipleVolumeRendererPanel::~wxMaracasMultipleVolumeRendererPanel(){
+ //wxMaracasIRMView::getInstance()->addRemoveActor(_propid, false);
+ wxMaracasMultipleVolumeRendererView::getInstance()->deleteVolume(_propid);
+}
+
+void wxMaracasMultipleVolumeRendererPanel::createControls(vtkImageData* img){
+
+ wxFlexGridSizer* sizerirmprop = new wxFlexGridSizer(1,1,1);
+
+ wxString choices[2];
+ choices[0] = wxString(_T("On"));
+ choices[1] = wxString(_T("Off"));
+ checkbox = new wxCheckBox(this,-1,wxString(_T("Show Actor")));
+ Connect(checkbox->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasMultipleVolumeRendererPanel::onCheckBoxChange);
+ checkbox->SetValue(true);
+
+ sizerirmprop->Add(checkbox,wxFIXED_MINSIZE);
+
+ //this->addControl(checkbox);
+
+ wxBitmap bitmap(Color_xpm);
+ _colorchoose = new wxBitmapButton(this, -1, bitmap,wxDefaultPosition,wxSize(30,30));
+ Connect(_colorchoose->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasMultipleVolumeRendererPanel::onColorChange);
+ sizerirmprop->Add(_colorchoose,wxFIXED_MINSIZE);
+
+
+ this->SetSizer(sizerirmprop, true);
+ this->SetAutoLayout( true );
+
+
+
+ _frame = new wxFrame(this, 10, _T("Configure Transfer Functions"));
+
+ wxButton* button1 = new wxButton(_frame,20,_T("OK"));
+ Connect(button1->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasMultipleVolumeRendererPanel::onOK);
+ wxButton* button2 = new wxButton(_frame,30,_T("Cancel") );
+ Connect(button2->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasMultipleVolumeRendererPanel::onCancel);
+ wxButton* button3 = new wxButton(_frame,40,_T("Update"));
+ Connect(button3->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasMultipleVolumeRendererPanel::onUpdate);
+
+
+ mwxwidget = new HistogramWidget(_frame, -1);
+
+ mwxwidget->initializeHistogram(img);
+ mwxwidget->Refresh();
+
+ wxBoxSizer* boxSizer0 = new wxBoxSizer(wxHORIZONTAL);
+ boxSizer0->Add(mwxwidget, 4, wxGROW);
+
+ wxBoxSizer* boxSizer = new wxBoxSizer(wxHORIZONTAL);
+ boxSizer->AddSpacer(40);
+ boxSizer->Add(button1, wxCENTER);
+ boxSizer->AddSpacer(40);
+ boxSizer->Add(button2, wxCENTER);
+ boxSizer->AddSpacer(40);
+ boxSizer->Add(button3, wxCENTER);
+
+ wxBoxSizer* boxsizer2 = new wxBoxSizer(wxVERTICAL);
+ boxsizer2->Add(boxSizer0,1,wxEXPAND);
+ boxsizer2->Add(boxSizer,0,wxCENTER);
+
+ _frame->SetAutoLayout(true);
+
+
+ _frame->SetSizer(boxsizer2);
+
+ _frame->Refresh();
+ _frame->Update();
+
+}
+void wxMaracasMultipleVolumeRendererPanel::onOK(wxCommandEvent& event){
+ updateVolume();
+ _frame->Show(false);
+}
+void wxMaracasMultipleVolumeRendererPanel::onCancel(wxCommandEvent& event){
+ _frame->Show(false);
+}
+void wxMaracasMultipleVolumeRendererPanel::onUpdate(wxCommandEvent& event){
+ updateVolume();
+}
+void wxMaracasMultipleVolumeRendererPanel::updateVolume(){
+ std::vector<double> greylevelcolors;
+ std::vector<double> red;
+ std::vector<double> green;
+ std::vector<double> blue;
+
+ std::vector<double> greylevel;
+ std::vector<double> values;
+
+ mwxwidget->GetValuesColorPointsFunction(greylevelcolors, red, green, blue);
+ mwxwidget->GetValuesPointsFunction(greylevel, values);
+
+
+ wxMaracasMultipleVolumeRendererView::getInstance()->SetValuesColorPointsFunction(this->_propid, greylevelcolors, red, green, blue);
+ wxMaracasMultipleVolumeRendererView::getInstance()->SetValuesPointsFunction(this->_propid, greylevel, values);
+
+}
+void wxMaracasMultipleVolumeRendererPanel::onColorChange(wxCommandEvent& event){
+ _frame->Show(true);
+}
+void wxMaracasMultipleVolumeRendererPanel::onCheckBoxChange(wxCommandEvent& event){
+ wxMaracasMultipleVolumeRendererView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());
+}
+
+int wxMaracasMultipleVolumeRendererPanel::getPropId(){
+ return _propid;
+}
\ No newline at end of file