X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxMaracasMultipleVolumeRendererPanel.cxx;fp=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxMaracasMultipleVolumeRendererPanel.cxx;h=f1fa7e1b8a25e3f55dbf73c78e0dac07c6872b27;hb=28c74ab5eb531ce001260e9bc3fcb0151fcfc56b;hp=2fc40ea4c362e930f3a491f725a3719dd475bd6c;hpb=8e28248048ebb13908702adb87a319047af16939;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererPanel.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererPanel.cxx index 2fc40ea..f1fa7e1 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererPanel.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererPanel.cxx @@ -2,40 +2,61 @@ #include #include "wxMaracasMultipleVolumeRendererView.h" +#include "wxMaracasRendererView.h" #include +#include #include "Color.xpm" //#include /** ** Implementation of viewProp3D **/ -wxMaracasMultipleVolumeRendererPanel::wxMaracasMultipleVolumeRendererPanel(wxWindow* parent,int propid, vtkImageData* img) +/** +** Class constructor +**/ +wxMaracasMultipleVolumeRendererPanel::wxMaracasMultipleVolumeRendererPanel(wxWindow* parent,int propid, vtkImageData* img, bool _isComplexBox) : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize) { _propid = propid; + isComplexBox = _isComplexBox; createControls(img); } +/** +** Class destructor +**/ wxMaracasMultipleVolumeRendererPanel::~wxMaracasMultipleVolumeRendererPanel(){ - //wxMaracasIRMView::getInstance()->addRemoveActor(_propid, false); - wxMaracasMultipleVolumeRendererView::getInstance()->deleteVolume(_propid); + + //if(isComplexBox) + //((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->deleteVolume(_propid); + //else + //wxMaracasMultipleVolumeRendererView::getInstance()->deleteVolume(_propid); delete mwxwidget; } +/** +** Sets panel elements +**/ 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); + wxFlexGridSizer* sizerirmprop = new wxFlexGridSizer(3); + if(!isComplexBox) + { + //wxString choices[2]; + //choices[0] = wxString(_T("On")); + //choices[1] = wxString(_T("Off")); + wxStaticText* label = new wxStaticText(this, -1, wxString(_T(""))); + wxStaticText* label2 = new wxStaticText(this, -1, wxString(_T(""))); + 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); + sizerirmprop->Add(label,wxFIXED_MINSIZE); + sizerirmprop->Add(label2,wxFIXED_MINSIZE); + } //wxBitmap bitmap(Color_xpm); //_colorchoose = new wxBitmapButton(this, -1, bitmap,wxDefaultPosition,wxSize(30,30)); //Connect(_colorchoose->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasMultipleVolumeRendererPanel::onColorChange); @@ -46,18 +67,22 @@ void wxMaracasMultipleVolumeRendererPanel::createControls(vtkImageData* img){ Connect(mwxwidget->GetId(), wxEVT_COMMAND_COMBOBOX_SELECTED, (wxObjectEventFunction)&wxMaracasMultipleVolumeRendererPanel::onColorChange); sizerirmprop->Add(mwxwidget,wxFIXED_MINSIZE); + wxBitmap bitmap0(Add_xpm); + _viewimage = new wxBitmapButton(this, -1, bitmap0, wxDefaultPosition, wxSize(30,30)); + Connect(_viewimage->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasMultipleVolumeRendererPanel::onViewImage); + sizerirmprop->Add(_viewimage,wxFIXED_MINSIZE); + + wxBitmap bitmap1(OpenImage_xpm); + wxBitmapButton* _openParameters = new wxBitmapButton(this, -1, bitmap1, wxDefaultPosition, wxSize(30,30)); + Connect(_openParameters->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasMultipleVolumeRendererPanel::onOpenParameters); + sizerirmprop->Add(_openParameters,wxFIXED_MINSIZE); //std::string iconsdir = wxMaracasMultipleVolumeRendererView::getInstance()->getPath(); //iconsdir+="/data/Icons/Add.xmp"; //wxBitmap* bitmap = new wxBitmap(wxString(iconsdir.c_str(),wxConvUTF8), wxBITMAP_TYPE_XPM); - wxBitmap bitmap(OpenImage_xpm); - _viewimage = new wxBitmapButton(this, -1, bitmap, wxDefaultPosition, wxSize(30,30)); - Connect(_viewimage->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasMultipleVolumeRendererPanel::onViewImage); - sizerirmprop->Add(_viewimage,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")); @@ -110,16 +135,32 @@ void wxMaracasMultipleVolumeRendererPanel::createControls(vtkImageData* img){ // wxMaracasMultipleVolumeRendererView::getInstance()->GetColorFunction(getPropId())); mwxwidget->Refresh(); } + +/** +** +**/ 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 greylevelcolors; std::vector red; @@ -132,11 +173,21 @@ void wxMaracasMultipleVolumeRendererPanel::updateVolume(){ 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); - + if(this->isComplexBox) + { + ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->SetValuesColorPointsFunction(this->_propid,greylevelcolors, red, green, blue); + ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->SetValuesPointsFunction(this->_propid, greylevel, values); + } + else + { + wxMaracasMultipleVolumeRendererView::getInstance()->SetValuesColorPointsFunction(this->_propid, greylevelcolors, red, green, blue); + wxMaracasMultipleVolumeRendererView::getInstance()->SetValuesPointsFunction(this->_propid, greylevel, values); + } } + +/** +** Updates the volume visualization +**/ void wxMaracasMultipleVolumeRendererPanel::onColorChange(wxCommandEvent& event){ //if(mwxwidget->ShowModal()==wxID_OK){ @@ -145,13 +196,43 @@ void wxMaracasMultipleVolumeRendererPanel::onColorChange(wxCommandEvent& event){ //} } +/** +** +**/ void wxMaracasMultipleVolumeRendererPanel::onViewImage(wxCommandEvent& event){ } + +/** +** +**/ +void wxMaracasMultipleVolumeRendererPanel::onOpenParameters(wxCommandEvent& event){ + dialog = new wxMaracasRenderImageManagementPanel(this); + dialog->SetSize(400,580); + dialog->Show(); +} + +/** +** +**/ void wxMaracasMultipleVolumeRendererPanel::onCheckBoxChange(wxCommandEvent& event){ - wxMaracasMultipleVolumeRendererView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue()); + if(this->isComplexBox) + ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->addRemoveActorV(this->getPropId(), checkbox->GetValue()); + else + wxMaracasMultipleVolumeRendererView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue()); } +/** +** Gets the propId +**/ int wxMaracasMultipleVolumeRendererPanel::getPropId(){ return _propid; +} + +/** +** Carolina Perez: Recently added method +**/ +HistogramDialogComboBox* wxMaracasMultipleVolumeRendererPanel::getMwxwidget() +{ + return mwxwidget; } \ No newline at end of file