]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererPanel.cxx
*** empty log message ***
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracasMultipleVolumeRendererPanel.cxx
index 2fc40ea4c362e930f3a491f725a3719dd475bd6c..f1fa7e1b8a25e3f55dbf73c78e0dac07c6872b27 100644 (file)
@@ -2,40 +2,61 @@
 
 #include <wx/colordlg.h>
 #include "wxMaracasMultipleVolumeRendererView.h"
+#include "wxMaracasRendererView.h"
 #include <OpenImage.xpm>
+#include <Add.xpm>
 #include "Color.xpm"
 //#include <vtkImageCast.h>
 /**
 **     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<double> greylevelcolors;
        std::vector<double> 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