]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.cpp
*** empty log message ***
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracasRenderTabbedPanel.cpp
index 3daafe07a8f322eb3bb8654bb83c600662b4ce10..106f2a5d40c61e886a9a4c0754b0884674eae613 100644 (file)
 #include "wxMaracasRenderTabbedPanel.h"
 #include "HistogramDialogComboBox.h"
 
+#include "wxMaracasMultipleVolumeRendererPanel.h"
+#include "wxMaracasSurfaceRenderingPanel.h"
+#include "wxMaracasSurfaceRenderingProp3DMHD.h"
+#include "wxMaracasMultipleVolumeRendererManagerData.h"
+
 #include <wx/colordlg.h>
+#include <wx/button.h> 
+
 #include <OpenImage.xpm>
 #include "Color.xpm"
 
+#include <vtkProp3D.h>
 
 /**
-**     
+** Class constructor
 **/
-wxMaracasRenderTabbedPanel::wxMaracasRenderTabbedPanel(wxWindow* parent/*, wxMaracasMultipleVolumeRendererManager* _volmanager, wxMaracasSurfaceRenderingManager* _surrendmanager1, wxMaracasSurfaceRenderingManager* _surrendmanager2, 
-                                                                         wxMaracasSurfaceRenderingManager* _surrendmanager3, wxString pathfile, wxString filename*/)
+wxMaracasRenderTabbedPanel::wxMaracasRenderTabbedPanel(wxWindow* parent, int id)
 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize)
 {
-       //_propid = propid;
+       _id = id;
+
+       dialog = NULL;
+
        volmanager = new wxMaracasMultipleVolumeRendererManager();
        surrendmanager1 = new wxMaracasSurfaceRenderingManager();
        surrendmanager2 = new wxMaracasSurfaceRenderingManager();
        surrendmanager3 = new wxMaracasSurfaceRenderingManager();
+}
 
+/**
+** Class Destructor
+**/
+wxMaracasRenderTabbedPanel::~wxMaracasRenderTabbedPanel()
+{      
+       //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorV(_propid, false);
+       //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSA(_propid, false);
+       //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSB(_propid, false);
+       //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSC(_propid, false);
+       this->deleteVolume(_id);
+       delete wxtabs;  
 }
 
 /**
-**
+** Initializes rendered images, and creates and adds elements to the panel
 **/
-void wxMaracasRenderTabbedPanel::createControls(wxString pathfile, wxString filename)
+void wxMaracasRenderTabbedPanel::createControls(vtkImageData* inImg, std::string pathfile, std::string filename)
 {
-       //wxPanel* up = new wxPanel(this, wxID_ANY);
        wxFlexGridSizer* sizerrenderprop = new wxFlexGridSizer(1);
-       
-       //wxString choices[2];
-       //choices[0] = wxString(_T("On"));
-       //choices[1] = wxString(_T("Off"));
+
        wxFlexGridSizer* sizercheck = new wxFlexGridSizer(2);
        checkboxVol = new  wxCheckBox(this,-1,wxString(_T("Volume Rendering")));
        Connect(checkboxVol->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxVChange);   
        checkboxVol->SetValue(true);    
        sizercheck->Add(checkboxVol, wxFIXED_MINSIZE);
 
-       //wxString choices[2];
-       //choices[0] = wxString(_T("On"));
-       //choices[1] = wxString(_T("Off"));
        checkboxSA = new  wxCheckBox(this,-1,wxString(_T("Surface Rendering A")));
        Connect(checkboxSA->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSAChange);   
        checkboxSA->SetValue(true);     
+       sizercheck->Add(checkboxSA, wxFIXED_MINSIZE);   
 
-       sizercheck->Add(checkboxSA, wxFIXED_MINSIZE);
-
-       //wxString choices[2];
-       //choices[0] = wxString(_T("On"));
-       //choices[1] = wxString(_T("Off"));
        checkboxSB = new  wxCheckBox(this,-1,wxString(_T("Surface Rendering B")));
        Connect(checkboxSB->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSBChange);   
        checkboxSB->SetValue(true);     
-
        sizercheck->Add(checkboxSB, wxFIXED_MINSIZE);
 
-       //wxString choices[2];
-       //choices[0] = wxString(_T("On"));
-       //choices[1] = wxString(_T("Off"));
        checkboxSC = new  wxCheckBox(this,-1,wxString(_T("Surface Rendering C")));
        Connect(checkboxSC->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSCChange);   
        checkboxSC->SetValue(true);     
-
        sizercheck->Add(checkboxSC, wxFIXED_MINSIZE);
+
+       wxButton* _openParameters = new wxButton(this, -1, wxString(_T("Apply Transformation")));       
+       Connect(_openParameters->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onOpenParameters);                  
+       sizercheck->Add(_openParameters,wxFIXED_MINSIZE);
+
+       wxButton* _openCutter = new wxButton(this, -1, wxString(_T("Open Cutter View")));       
+       Connect(_openCutter->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onOpenCutter);                  
+       sizercheck->Add(_openCutter,wxFIXED_MINSIZE);
        sizerrenderprop->Add(sizercheck, wxFIXED_MINSIZE);
-       //up->SetSizer(sizerup, true);          
-       //up->SetAutoLayout( true );
 
        wxtabs = new wxNotebook(this, -1);
 
-       std::string s = std::string(pathfile.mb_str());
-       vtkImageData* img1 = volmanager->getImageData(s);
-       vtkImageData* img2 = surrendmanager1->getImageData(s);
-       vtkImageData* img3 = surrendmanager2->getImageData(s);
-       vtkImageData* img4 = surrendmanager3->getImageData(s);
-       if(img1!=NULL)
+       if(inImg == NULL)
        {
-
-               s = std::string(filename.mb_str());
-               addVolume(img1, s);
-               addSurface1(img2, s);
-               addSurface2(img3, s);
-               addSurface3(img4, s);   
+               vtkImageData* img = volmanager->getImageData(pathfile);
+               //vtkImageData* img1 = surrendmanager1->getImageData(pathfile);
+               //vtkImageData* img2 = surrendmanager2->getImageData(pathfile);
+               //vtkImageData* img3 = surrendmanager3->getImageData(pathfile);
+               if(img!=NULL /*&& img1!=NULL && img2!=NULL && img3!=NULL*/)
+               {
+                       addVolume(img, filename);
+                       addSurface1(img, filename);
+                       addSurface2(img, filename);
+                       addSurface3(img, filename);     
+                       volname = (wxString) filename;
+                       wxtabs->Refresh();
+               }
+       }       
+       else
+       {
+               addVolume(inImg, filename);
+               addSurface1(inImg, filename);
+               addSurface2(inImg, filename);
+               addSurface3(inImg, filename);   
                wxtabs->Refresh();
        }
 
-       //wxFlexGridSizer* sizerrenderprop = new wxFlexGridSizer(2,1,5);
-       //sizerrenderprop->Add(up, wxFIXED_MINSIZE);
-       
-       sizerrenderprop->Add(wxtabs, wxFIXED_MINSIZE);
+       sizerrenderprop->Add(wxtabs, wxSizerFlags().Expand().Center());
 
        this->SetSizer(sizerrenderprop, true);          
        this->SetAutoLayout( true );
-
 }
 
-wxMaracasRenderTabbedPanel::~wxMaracasRenderTabbedPanel()
-{      
-       //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorV(_propid, false);
-       //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSA(_propid, false);
-       //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSB(_propid, false);
-       //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSC(_propid, false);
-       //wxMaracasRenderTabbedPanel::getInstance()->deleteVolume(_propid);
-       delete wxtabs;  
-}
 
+/**
+** Sets given renderer
+**/
 void wxMaracasRenderTabbedPanel::setRenderer(vtkRenderer* renderer)
 {
        volmanager->setRenderer(renderer);
@@ -114,19 +125,19 @@ void wxMaracasRenderTabbedPanel::setRenderer(vtkRenderer* renderer)
        surrendmanager3->setRenderer(renderer);
 }
 
-/*
-*
-*/
+/**
+** Adds a volume using Volume Rendering
+**/
 void wxMaracasRenderTabbedPanel::addVolume(vtkImageData* img, std::string dataname)
 {
        try
        {
-               int _propidV = volmanager->addVolume(img, dataname);
+               int _propidV = volmanager->addVolume(_id, img, dataname);
                if(_propidV!=-1)
                {
-                       controlpanV = new wxMaracasMultipleVolumeRendererPanel(wxtabs, _propidV, img, true);
-                       wxtabs->AddPage(controlpanV, _T("Volume Rendering"), true);
-                       updateVolume();
+                       wxMaracasMultipleVolumeRendererPanel* controlpanV = new wxMaracasMultipleVolumeRendererPanel(wxtabs, _propidV, img, true);
+                       wxtabs->AddPage(controlpanV, _T("Vol Rendering"), true);
+                       controlpanV->updateVolume();
                }
        }
        catch(char* str)
@@ -134,21 +145,25 @@ void wxMaracasRenderTabbedPanel::addVolume(vtkImageData* img, std::string datana
                std::cout << "Exception : " << str << '\n';
                wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
                diag->ShowModal();
+               delete diag;
        }
 }
 
+/**
+** Adds a volume using surface rendering
+**/
 void wxMaracasRenderTabbedPanel::addSurface1(vtkImageData* img, std::string dataname)
 {
        try
        {
-               int _propidSA = surrendmanager1->addPropMHD(img, dataname);
+               int _propidSA = surrendmanager1->addPropMHD(_id, img, dataname);
                
                if(_propidSA!=-1)
                {
-                       controlpanSA = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSA, true, 1);
+                       wxMaracasSurfaceRenderingPanel* controlpanSA = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSA, true, 1);
                        int maxiso = surrendmanager1->getMaxIsoValue(_propidSA);
                        ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSA)->createControls(maxiso);
-                       wxtabs->AddPage(controlpanSA, _T("Surf Rendering A"));
+                       wxtabs->AddPage(controlpanSA, _T("SR A"));
                }
        }
        catch(char* str)
@@ -156,20 +171,24 @@ void wxMaracasRenderTabbedPanel::addSurface1(vtkImageData* img, std::string data
                std::cout << "Exception : " << str << '\n';
                wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
                diag->ShowModal();
+               delete diag;
        }
 }
 
+/**
+** Adds a volume using surface rendering
+**/
 void wxMaracasRenderTabbedPanel::addSurface2(vtkImageData* img, std::string dataname)
 {
        try
        {
-               int _propidSB = surrendmanager2->addPropMHD(img, dataname);
+               int _propidSB = surrendmanager2->addPropMHD(_id, img, dataname);
                if(_propidSB!=-1)
                {
-                       controlpanSB = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSB, true, 2);
+                       wxMaracasSurfaceRenderingPanel* controlpanSB = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSB, true, 2);
                        int maxiso = surrendmanager2->getMaxIsoValue(_propidSB);
                        ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSB)->createControls(maxiso);
-                       wxtabs->AddPage(controlpanSB, _T("Surf Rendering B"));
+                       wxtabs->AddPage(controlpanSB, _T("SR B"));
 
                }
        }
@@ -178,21 +197,25 @@ void wxMaracasRenderTabbedPanel::addSurface2(vtkImageData* img, std::string data
                std::cout << "Exception : " << str << '\n';
                wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
                diag->ShowModal();
+               delete diag;
        }
 }
 
+/**
+** Adds a volume using Surface Rendering
+**/
 void wxMaracasRenderTabbedPanel::addSurface3(vtkImageData* img, std::string dataname)
 {
        try
        {
-               _propidSC = surrendmanager3->addPropMHD(img, dataname);
+               int _propidSC = surrendmanager3->addPropMHD(_id, img, dataname);
 
                if(_propidSC!=-1)
                {
-                       controlpanSC = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSC, true, 3);
+                       wxMaracasSurfaceRenderingPanel* controlpanSC = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSC, true, 3);
                        int maxiso = surrendmanager3->getMaxIsoValue(_propidSC);
                        ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSC)->createControls(maxiso);
-                       wxtabs->AddPage(controlpanSC, _T("Surf Rendering C"));
+                       wxtabs->AddPage(controlpanSC, _T("SR C"));
                }
        }
        catch(char* str)
@@ -200,6 +223,7 @@ void wxMaracasRenderTabbedPanel::addSurface3(vtkImageData* img, std::string data
                std::cout << "Exception : " << str << '\n';
                wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
                diag->ShowModal();
+               delete diag;
        }
 }
 
@@ -208,10 +232,20 @@ void wxMaracasRenderTabbedPanel::addSurface3(vtkImageData* img, std::string data
 **/
 void wxMaracasRenderTabbedPanel::deleteVolume(int volid)
 {
-       volmanager->deleteActor(volid);
-       surrendmanager1->deleteActor(volid);
-       surrendmanager2->deleteActor(volid);
-       surrendmanager3->deleteActor(volid);
+       try
+       {
+               volmanager->deleteActor(volid);
+               surrendmanager1->deleteActor(volid);
+               surrendmanager2->deleteActor(volid);
+               surrendmanager3->deleteActor(volid);
+       }
+       catch(char* str)
+       {
+               std::cout << "Exception : " << str << '\n';
+               wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
+               diag->ShowModal();
+               delete diag;
+       }
 }
 
 /**
@@ -219,7 +253,15 @@ void wxMaracasRenderTabbedPanel::deleteVolume(int volid)
 **/
 void wxMaracasRenderTabbedPanel::addRemoveActorV(int id, bool addremove)
 {
-       volmanager->addRemoveActor(id, addremove);
+       try{
+               volmanager->addRemoveActor(id, addremove);
+       }
+       catch(char* str){
+               std::cout << "Exception : " << str << '\n';
+               wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
+               diag->ShowModal();
+               delete diag;
+       }
 }
 
 /**
@@ -227,7 +269,15 @@ void wxMaracasRenderTabbedPanel::addRemoveActorV(int id, bool addremove)
 **/
 void wxMaracasRenderTabbedPanel::addRemoveActorSA(int id, bool addremove)
 {
-       surrendmanager1->addRemoveActor(id, addremove);
+       try{
+               surrendmanager1->addRemoveActor(id, addremove);
+       }
+       catch(char* str){
+               std::cout << "Exception : " << str << '\n';
+               wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
+               diag->ShowModal();
+               delete diag;
+       }
 }
 
 /**
@@ -235,7 +285,15 @@ void wxMaracasRenderTabbedPanel::addRemoveActorSA(int id, bool addremove)
 **/
 void wxMaracasRenderTabbedPanel::addRemoveActorSB(int id, bool addremove)
 {
-       surrendmanager2->addRemoveActor(id, addremove);
+       try{
+               surrendmanager2->addRemoveActor(id, addremove);
+       }
+       catch(char* str){
+               std::cout << "Exception : " << str << '\n';
+               wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
+               diag->ShowModal();
+               delete diag;
+       }
 }
 
 /**
@@ -243,7 +301,15 @@ void wxMaracasRenderTabbedPanel::addRemoveActorSB(int id, bool addremove)
 **/
 void wxMaracasRenderTabbedPanel::addRemoveActorSC(int id, bool addremove)
 {      
-       surrendmanager3->addRemoveActor(id, addremove);
+       try{
+               surrendmanager3->addRemoveActor(id, addremove);
+       }
+       catch(char* str){
+               std::cout << "Exception : " << str << '\n';
+               wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
+               diag->ShowModal();
+               delete diag;
+       }
 }      
 
 /**
@@ -259,7 +325,17 @@ void wxMaracasRenderTabbedPanel::SetValuesColorPointsFunction(int volid, std::ve
 **/
 void wxMaracasRenderTabbedPanel::SetValuesPointsFunction(int volid, std::vector<double> greylevel, std::vector<double> values)
 {
-       volmanager->setVolumeOpacity(volid, greylevel, values);
+       try{
+               volmanager->setVolumeOpacity(volid, greylevel, values);
+       }
+       catch(char* str)
+       {
+               wxString s( str,wxConvUTF8 );
+               wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
+               diag->ShowModal();
+               delete diag;
+       }
+       
 }
 
 /**
@@ -381,121 +457,142 @@ void wxMaracasRenderTabbedPanel::changeColorC(int propid, double red, double gre
 }
 
 /**
-** 
+** Method called when VolumeRendering checkbox status changes: Either shows or hides VolumeRendering image
 **/
-void wxMaracasRenderTabbedPanel::onUpdate(wxCommandEvent& event)
+void wxMaracasRenderTabbedPanel::onCheckBoxVChange(wxCommandEvent& event)
 {
-       updateVolume();    
+       try{
+               volmanager->addRemoveActor(this->getPropIdV(), checkboxVol->GetValue());        
+       }
+       catch(char* str){
+               std::cout << "Exception : " << str << '\n';
+               wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
+               diag->ShowModal();
+               delete diag;
+       }
 }
 
 /**
-** 
+** Method called when SurfaceRendering A checkbox status changes: Either shows or hides SurfaceRendering image
 **/
-void wxMaracasRenderTabbedPanel::updateVolume()
-{
-       /*Temporarily disabled*/
-
-       std::vector<double> greylevelcolors;
-       std::vector<double> red;
-       std::vector<double> green;
-       std::vector<double> blue;
-
-       std::vector<double> greylevel;
-       std::vector<double> values;
-
-    HistogramDialogComboBox* histo = controlpanV->getMwxwidget();
-       histo->GetValuesColorPointsFunction(greylevelcolors, red, green, blue);
-       histo->GetValuesPointsFunction(greylevel, values);
-
-
-       volmanager->setVolumeColor(controlpanV->getPropId(), greylevelcolors, red, green, blue);
-       volmanager->setVolumeOpacity(controlpanV->getPropId(), greylevel, values);
-       //wxMaracasMultipleVolumeRendererView::getInstance()->SetValuesColorPointsFunction(this->_propid, greylevelcolors, red, green, blue);
-       //wxMaracasMultipleVolumeRendererView::getInstance()->SetValuesPointsFunction(this->_propid, greylevel, values);
-
+void wxMaracasRenderTabbedPanel::onCheckBoxSAChange(wxCommandEvent& event)
+{      
+       try{
+               surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSA->GetValue());    
+       }
+       catch(char* str){
+               std::cout << "Exception : " << str << '\n';
+               wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
+               diag->ShowModal();
+               delete diag;
+       }
 }
 
 /**
-**
+** Method called when SurfaceRendering B checkbox status changes: Either shows or hides SurfaceRendering B image
 **/
-void wxMaracasRenderTabbedPanel::onColorChange(wxCommandEvent& event)
+void wxMaracasRenderTabbedPanel::onCheckBoxSBChange(wxCommandEvent& event)
 {      
-       /*Temporarily disabled*/
-
-       //if(mwxwidget->ShowModal()==wxID_OK){
-        //updateVolume();
-       //      mwxwidget->Show(false);
-       //}     
+       try{
+               surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSB->GetValue());    
+       }
+       catch(char* str){
+               std::cout << "Exception : " << str << '\n';
+               wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
+               diag->ShowModal();
+               delete diag;
+       }
 }
 
 /**
-** 
+** Method called when SurfaceRendering C checkbox status changes: Either shows or hides SurfaceRendering C image
 **/
-void wxMaracasRenderTabbedPanel::onViewImage(wxCommandEvent& event)
-{
-       
+void wxMaracasRenderTabbedPanel::onCheckBoxSCChange(wxCommandEvent& event)
+{      
+       try{
+               surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());    
+       }
+       catch(char* str){
+               std::cout << "Exception : " << str << '\n';
+               wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
+               diag->ShowModal();
+               delete diag;
+       }
 }
 
 /**
-** Method called when VolumeRendering checkbox status changes: Either shows or hides VolumeRendering image
+**
 **/
-void wxMaracasRenderTabbedPanel::onCheckBoxVChange(wxCommandEvent& event)
-{
-       volmanager->addRemoveActor(this->getPropIdV(), checkboxVol->GetValue());        
+void wxMaracasRenderTabbedPanel::onOpenParameters(wxCommandEvent& event){      
+       if(dialog == NULL)
+       {
+               dialog = new wxMaracasRenderImageManagementPanel(this, volmanager, surrendmanager1, surrendmanager2, surrendmanager3, volname, _id);
+               dialog->SetSize(400, 580);
+               dialog->Show();
+       }
+       else if(dialog != NULL)
+       {
+               dialog->Show();
+       }
 }
 
 /**
-** Method called when SurfaceRendering A checkbox status changes: Either shows or hides SurfaceRendering image
+** Gets volume rendering image asociated to the given ID
 **/
-void wxMaracasRenderTabbedPanel::onCheckBoxSAChange(wxCommandEvent& event)
+void wxMaracasRenderTabbedPanel::onColorChange(wxCommandEvent& event)
 {      
-       surrendmanager1->addRemoveActor(this->getPropIdSA(), checkboxSA->GetValue());   
+       /*Temporarily disabled*/
+
+       //if(mwxwidget->ShowModal()==wxID_OK){
+        //updateVolume();
+       //      mwxwidget->Show(false);
+       //}     
 }
 
 /**
-** Method called when SurfaceRendering B checkbox status changes: Either shows or hides SurfaceRendering B image
+** 
 **/
-void wxMaracasRenderTabbedPanel::onCheckBoxSBChange(wxCommandEvent& event)
+vtkImageData* wxMaracasRenderTabbedPanel::getVolImage()
 {      
-       surrendmanager2->addRemoveActor(this->getPropIdSB(), checkboxSB->GetValue());   
+       return volmanager->getImageData();
 }
 
 /**
-** Method called when SurfaceRendering C checkbox status changes: Either shows or hides SurfaceRendering C image
+** Gets surface rendering A image asociated to the given ID
 **/
-void wxMaracasRenderTabbedPanel::onCheckBoxSCChange(wxCommandEvent& event)
+vtkImageData* wxMaracasRenderTabbedPanel::getSurfAImage()
 {      
-       surrendmanager3->addRemoveActor(this->getPropIdSC(), checkboxSC->GetValue());   
+       return surrendmanager1->getImageData();
 }
 
 /**
-**
+** Gets surface rendering B image asociated to the given ID
 **/
-int wxMaracasRenderTabbedPanel::getPropIdV()
-{
-       return _propidV;
+vtkImageData* wxMaracasRenderTabbedPanel::getSurfBImage()
+{      
+       return surrendmanager2->getImageData();
 }
 
 /**
-**
+** Gets surface rendering C image asociated to the given ID
 **/
-int wxMaracasRenderTabbedPanel::getPropIdSA()
-{
-       return _propidSA;
+vtkImageData* wxMaracasRenderTabbedPanel::getSurfCImage()
+{      
+       return surrendmanager3->getImageData();
 }
 
 /**
 **
 **/
-int wxMaracasRenderTabbedPanel::getPropIdSB()
-{
-       return _propidSB;
+void wxMaracasRenderTabbedPanel::onOpenCutter(wxCommandEvent& event)
+{      
+       
 }
 
 /**
 **
 **/
-int wxMaracasRenderTabbedPanel::getPropIdSC()
+int wxMaracasRenderTabbedPanel::getPropIdV()
 {
-       return _propidSC;
+       return _id;
 }
\ No newline at end of file