]> Creatis software - creaMaracasVisu.git/commitdiff
*** empty log message ***
authorperez <perez>
Mon, 9 Nov 2009 19:14:56 +0000 (19:14 +0000)
committerperez <perez>
Mon, 9 Nov 2009 19:14:56 +0000 (19:14 +0000)
24 files changed:
bbtk/src/bbcreaMaracasVisuRenderingViewer.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracaSurfaceRenderingProp3D.cxx [deleted file]
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManager.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManager.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManagerData.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManagerData.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererPanel.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererPanel.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererView.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageManagementPanel.cpp
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageManagementPanel.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.cpp
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRendererView.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRendererView.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRendering.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManager.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManager.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManagerData.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManagerDataMhd.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManagerDataMhd.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingProp3D.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingProp3D.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingProp3DMHD.cxx

index 2fe9e07a5fa685aae83e44ebcf0eb6f38003b996..280da1b36cc9bb390ad414c626fa1e4b1f1191c6 100644 (file)
@@ -25,7 +25,7 @@ void RenderingViewer::Process()
        {
                if(renderer != NULL && _currentrenderer != renderer)
                {
-                       view->setRenderer(renderer/*, rendererSA, rendererSB, rendererSC*/);
+                       view->setRenderer(renderer);
                        _currentrenderer = renderer;
                        //_currentrendererSA = rendererSA;
                        //_currentrendererSB = rendererSB;
@@ -35,31 +35,19 @@ void RenderingViewer::Process()
                {
                        if(_img1 !=NULL)
                        {
-                               ((wxMaracasRenderTabbedPanel*)view->getTabbedPanel())->addVolume(_img1, "INPUT 1");
-                               ((wxMaracasRenderTabbedPanel*)view->getTabbedPanel())->addSurface1(_img1, "INPUT 1");
-                               ((wxMaracasRenderTabbedPanel*)view->getTabbedPanel())->addSurface2(_img1, "INPUT 1");
-                               ((wxMaracasRenderTabbedPanel*)view->getTabbedPanel())->addSurface3(_img1, "INPUT 1");
+                               view->addVolumes(_img1, "","INPUT 1");
                        }
                        if(_img2 !=NULL)
                        {
-                               ((wxMaracasRenderTabbedPanel*)view->getTabbedPanel())->addVolume(_img2, "INPUT 2");
-                               ((wxMaracasRenderTabbedPanel*)view->getTabbedPanel())->addSurface1(_img2, "INPUT 2");
-                               ((wxMaracasRenderTabbedPanel*)view->getTabbedPanel())->addSurface2(_img2, "INPUT 2");
-                               ((wxMaracasRenderTabbedPanel*)view->getTabbedPanel())->addSurface3(_img2, "INPUT 2");
+                               view->addVolumes(_img2, "", "INPUT 2");
                        }
                        if(_img3 !=NULL)
                        {
-                               ((wxMaracasRenderTabbedPanel*)view->getTabbedPanel())->addVolume(_img3, "INPUT 3");
-                               ((wxMaracasRenderTabbedPanel*)view->getTabbedPanel())->addSurface1(_img3, "INPUT 3");
-                               ((wxMaracasRenderTabbedPanel*)view->getTabbedPanel())->addSurface2(_img3, "INPUT 3");
-                               ((wxMaracasRenderTabbedPanel*)view->getTabbedPanel())->addSurface3(_img3, "INPUT 3");
+                               view->addVolumes(_img3, "", "INPUT 3");
                        }
                        if(_img4 !=NULL)
                        {
-                               ((wxMaracasRenderTabbedPanel*)view->getTabbedPanel())->addVolume(_img4, "INPUT 4");
-                               ((wxMaracasRenderTabbedPanel*)view->getTabbedPanel())->addSurface1(_img4, "INPUT 4");
-                               ((wxMaracasRenderTabbedPanel*)view->getTabbedPanel())->addSurface2(_img4, "INPUT 4");
-                               ((wxMaracasRenderTabbedPanel*)view->getTabbedPanel())->addSurface3(_img4, "INPUT 4");
+                               view->addVolumes(_img4, "", "INPUT 4");
                        }
                }               
        } 
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracaSurfaceRenderingProp3D.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracaSurfaceRenderingProp3D.cxx
deleted file mode 100644 (file)
index 3d11870..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-#include "wxMaracasSurfaceRenderingProp3D.h"
-
-#include <wx/colordlg.h>
-#include "wxMaracasSurfaceRendering.h"
-#include "wxMaracasRendererView.h"
-#include <OpenImage.xpm>
-#include <Add.xpm>
-#include "Color.xpm"
-
-/**
-**     Implementation of SurfaceRenderingProp3D
-**/
-
-wxMaracasSurfaceRenderingProp3D::wxMaracasSurfaceRenderingProp3D(wxWindow* parent, int propid, bool _isComplexBox, int _panID)
-:wxMaracasSurfaceRenderingPanel(parent, propid, _isComplexBox, _panID){
-       createControls();       
-}
-
-wxMaracasSurfaceRenderingProp3D::~wxMaracasSurfaceRenderingProp3D(){   
-       //wxMaracasSurfaceRendering::getInstance()->addRemoveActor(_propid, false);
-       if(this->isComplex())
-       {       
-               //if(this->getPanId() == 1)
-               //      ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->addRemoveActorSA(_propid, false);
-               //if(this->getPanId() == 2)
-               //      ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->addRemoveActorSB(_propid, false);
-               //if(this->getPanId() == 3)
-               //      ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->addRemoveActorSC(_propid, false);
-       }
-       //else
-               //wxMaracasSurfaceRendering::getInstance()->deleteActor(_propid);
-}
-
-void wxMaracasSurfaceRenderingProp3D::createControls(){
-
-       wxFlexGridSizer* sizersurfprop = new wxFlexGridSizer(1);
-       
-       if(!isComplexBox) 
-       {
-               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)&wxMaracasSurfaceRenderingProp3D::onCheckBoxChange);  
-               checkbox->SetValue(true);       
-
-               sizersurfprop->Add(checkbox,wxFIXED_MINSIZE);
-       }
-
-       //this->addControl(checkbox);   
-       wxFlexGridSizer* sizerbut = new wxFlexGridSizer(3);
-
-       wxBitmap bitmap(Color_xpm);
-       _colorchoose = new wxBitmapButton(this, -1, bitmap,wxDefaultPosition,wxSize(30,30));    
-       Connect(_colorchoose->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onColorChange);                   
-       sizerbut->Add(_colorchoose,wxFIXED_MINSIZE);
-
-       wxBitmap bitmap1(Add_xpm);
-       _viewimage = new wxBitmapButton(this, -1, bitmap1, wxDefaultPosition, wxSize(30,30));   
-       Connect(_viewimage->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onViewImage);                       
-       sizerbut->Add(_viewimage,wxFIXED_MINSIZE);
-
-       if(isComplexBox) 
-       {
-               wxBitmap bitmap2(OpenImage_xpm);
-               wxBitmapButton* _openParameters = new wxBitmapButton(this, -1, bitmap2, wxDefaultPosition, wxSize(30,30));      
-               Connect(_openParameters->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onOpenParameters);                     
-               sizerbut->Add(_openParameters,wxFIXED_MINSIZE); 
-       }
-       sizersurfprop->Add(sizerbut,wxFIXED_MINSIZE);
-       //sizercolor->Add(checkbox,wxFIXED_MINSIZE);
-       //sizercolor->Add(_colorchoose,wxFIXED_MINSIZE);
-       //this->addControl(sizercolor);
-
-       wxStaticText* label = new wxStaticText(this, -1, wxString(_T("Opacity")));              
-       opacity = new wxSlider(this, -1,100,0,100,wxDefaultPosition,wxDefaultSize,wxSL_HORIZONTAL|wxSL_LABELS); 
-       Connect(opacity->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onOpacityRelease);     
-       wxFlexGridSizer* sizeropacity = new wxFlexGridSizer(1,1,1);     
-       sizeropacity->Add(label,wxFIXED_MINSIZE);
-       sizeropacity->Add(opacity,wxFIXED_MINSIZE);
-
-       sizersurfprop->Add(sizeropacity,wxFIXED_MINSIZE);
-
-       this->addControl(sizersurfprop);
-}
-void wxMaracasSurfaceRenderingProp3D::onCheckBoxChange(wxCommandEvent& event){ 
-       wxMaracasSurfaceRendering::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());
-}
-void wxMaracasSurfaceRenderingProp3D::onColorChange(wxCommandEvent& event){
-       wxColourDialog* colourdiag = new wxColourDialog(this);
-       if(colourdiag->ShowModal()==wxID_OK){
-               wxColour colour = colourdiag->GetColourData().GetColour();
-               _colorchoose->SetBackgroundColour(colour);
-
-               double r = (double)(colour.Red())/255.0;
-               double g = (double)(colour.Green())/255.0;
-               double b = (double)(colour.Blue())/255.0;
-               
-               if(this->isComplex()){
-                       if(this->getPanId() == 1)
-                               ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeColorA(this->getPropId(), r, g, b);
-                       if(this->getPanId() == 2)
-                               ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeColorB(this->getPropId(), r, g, b);
-                       if(this->getPanId() == 3)
-                               ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeColorC(this->getPropId(), r, g, b);
-               }
-               else
-                       wxMaracasSurfaceRendering::getInstance()->changeColor(this->getPropId(),r,g,b);
-       }
-       delete colourdiag;
-}
-/*void wxMaracasSurfaceRenderingProp3D::onActionButtonPressedEliminate( wxCommandEvent& event ){       
-
-}*/
-
-void wxMaracasSurfaceRenderingProp3D::onOpacityRelease(wxScrollEvent& event ){
-       if(this->isComplex()){
-               if(this->getPanId() == 1)
-                       ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeOpacityA(this->getPropId(),opacity->GetValue());
-               if(this->getPanId() == 2)
-                       ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeOpacityB(this->getPropId(),opacity->GetValue());
-               if(this->getPanId() == 3)
-                       ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeOpacityC(this->getPropId(),opacity->GetValue());
-       }
-       else
-               wxMaracasSurfaceRendering::getInstance()->changeOpacity(this->getPropId(),opacity->GetValue());
-}
-
-void wxMaracasSurfaceRenderingProp3D::onViewImage(wxCommandEvent& event){      
-
-       //if(mwxwidget->ShowModal()==wxID_OK){
-    
-       //      mwxwidget->Show(false);
-       //}     
-}
-
-/** 
-** Loads the volume in a separate window
-** Carolina Perez: Method recently added 28/10/2009
-**/
-void wxMaracasSurfaceRenderingProp3D::onOpenParameters(wxCommandEvent& event){
-       dialog = new wxMaracasRenderImageManagementPanel(this);
-       dialog->SetSize(400,580);
-       dialog->Show(); 
-}
\ No newline at end of file
index 70d05bd52b9f61b915ccd49609076579eeeaf252..ccee7cd76c2756a45a3c2ebfe67e5cc080d5c9e4 100644 (file)
@@ -3,8 +3,8 @@
   Program:   wxMaracas
   Module:    $RCSfile: wxMaracasMultipleVolumeRendererManager.cxx,v $
   Language:  C++
-  Date:      $Date: 2009/11/03 10:32:38 $
-  Version:   $Revision: 1.5 $
+  Date:      $Date: 2009/11/09 19:14:56 $
+  Version:   $Revision: 1.6 $
 
   Copyright: (c) 2002, 2003
   License:
@@ -34,11 +34,29 @@ wxMaracasMultipleVolumeRendererManager::~wxMaracasMultipleVolumeRendererManager(
 void wxMaracasMultipleVolumeRendererManager::setRenderer(vtkRenderer*  renderer){
        _renderer = renderer;
 }
+
+/**
+** Gets the renderer which manage the prop3D from the view
+**/
+vtkRenderer* wxMaracasMultipleVolumeRendererManager::getRenderer(){
+       return _renderer;
+}
+
+/**
+** Updates Volume
+**/
+void wxMaracasMultipleVolumeRendererManager::Update(int ppid){
+       wxMaracasMultipleVolumeRendererManagerData* data = this->getViewData(ppid);
+       data->Update();
+       _renderer->Render();
+}
+
 /**
 **     Adds a prop3D to the manager and returns the identifier
 **/
 int wxMaracasMultipleVolumeRendererManager::addVolume(vtkImageData* vol, std::string dataname) throw(char*){
        checkInvariant();
+       image = vol;
        if(vol != NULL){
                wxMaracasMultipleVolumeRendererManagerData* data = new wxMaracasMultipleVolumeRendererManagerData(vol, dataname);
                prop3Dvect.push_back(data);
@@ -87,8 +105,7 @@ void wxMaracasMultipleVolumeRendererManager::setVolumeOpacity(int propid, std::v
 void wxMaracasMultipleVolumeRendererManager::setVolumeColor(int volid, std::vector<double> greylevel,
                                                                std::vector<double> red,
                                                                std::vector<double> green,
-                                                               std::vector<double> blue)
-{
+                                                               std::vector<double> blue)throw(char*){
        checkInvariant();               
 
        this->getViewData(volid)->setVolumeColor(greylevel, red, green, blue);
@@ -116,6 +133,10 @@ vtkImageData* wxMaracasMultipleVolumeRendererManager::getImageData(std::string f
        return NULL;
 }
 
+vtkImageData* wxMaracasMultipleVolumeRendererManager::getImageData(){  
+       return image;
+}
+
 void wxMaracasMultipleVolumeRendererManager::checkInvariant()  throw(char*){
        if(this->_renderer==NULL){
                throw "Renderer not set";
index 14ef61b3b9a97f816fab52d571d337444fb92bea..93e476324e8340075d101a03fa8f5f98bc916815 100644 (file)
@@ -3,8 +3,8 @@
   Program:   wxMaracas
   Module:    $RCSfile: wxMaracasMultipleVolumeRendererManager.h,v $
   Language:  C++
-  Date:      $Date: 2009/10/30 20:06:07 $
-  Version:   $Revision: 1.4 $
+  Date:      $Date: 2009/11/09 19:14:56 $
+  Version:   $Revision: 1.5 $
 
   Copyright: (c) 2002, 2003
   License:
@@ -23,6 +23,7 @@
 
 #include <iostream>
 #include <vector>
+#include <vtkMatrix4x4.h>
 
 #include "wxMaracasMultipleVolumeRendererManagerData.h"
 
@@ -37,6 +38,12 @@ public:
        **      Sets the renderer to manage the prop3D from the view
        **/
        void setRenderer(vtkRenderer*  renderer);
+
+       /**
+       **      Gets the renderer to manage the prop3D from the view
+       **/
+       vtkRenderer* getRenderer();
+       
        /**
        **      Adds a volume
        **/
@@ -52,10 +59,16 @@ public:
        **/
        vtkImageData* getImageData(std::string filename);
 
+       /**
+       ** Gets image data asotiated with the rendering manager
+       **/
+       vtkImageData* getImageData();
+
        /**
        **      adds or removes an actor depending of the bool value
        **/
        void addRemoveActor(int propid, bool addremove) throw(char*);
+       
        /**
        **      Check if the variables are setted correctly
        **/
@@ -71,16 +84,22 @@ public:
        void setVolumeColor(int volid, std::vector<double> greylevel,
                                                                        std::vector<double> red,
                                                                        std::vector<double> green,
-                                                                       std::vector<double> blue);      
+                                                                       std::vector<double> blue)throw(char*);  
 
        /**
        ** Given an id search the data in the vector
        **/
        wxMaracasMultipleVolumeRendererManagerData* getViewData(int id)throw(char*);
+       
        /**
-       **
+       ** Deletes given actor
        **/
        void deleteActor(int volumeid)throw (char *);
+
+       /**
+       ** Updates given volume
+       **/
+       void Update(int propid);
        
        vtkPiecewiseFunction* GetTransferFunction(int volumeid);
        vtkColorTransferFunction* GetColorFunction(int volumeid);
@@ -88,6 +107,7 @@ private:
        std::vector<wxMaracasMultipleVolumeRendererManagerData*> prop3Dvect;
 
        vtkRenderer*  _renderer;
+       vtkImageData* image;
 
        int _idCount;
 
index fb0ef0a8e08e331bf321c308e84068293333d29b..8f2175d217d5eca3a74157a5f4fcb5020f2d63f6 100644 (file)
@@ -82,6 +82,13 @@ void wxMaracasMultipleVolumeRendererManagerData::setVolumeOpacity(std::vector<do
 void wxMaracasMultipleVolumeRendererManagerData::checkInvariant(){
 
 }
+
+/**
+**     Check if the variables are setted correctly
+**/
+void wxMaracasMultipleVolumeRendererManagerData::Update(){
+        _newvol->Update();
+}
 /**
 **     get the prop3D 
 **/
index b1ad57e7e8d794bc2647c3e57ae5dc17cbbccc7a..3494bfb4ff90b497177652d39b0c4f466f091fc8 100644 (file)
@@ -25,27 +25,36 @@ public:
        **      Check if the variables are setted correctly
        **/
        void checkInvariant();
+
+       /**
+       ** Updates volume
+       **/
+       void Update();
+       
        /**
        **      get the prop3D 
        **/
        vtkProp3D* getProp3D();
+       
        /**
        **      return the id from the daat
        **/
        int getId();
+       
        /**
        **      set data id
        **/
        void setId(int propid);
+       
        /**
        **      Get the filanme
        **/
     std::string getDataname();
+       
        /**
        ** Set the filanme
        **/
-    void setDataname(std::string dataname);    
-
+    void setDataname(std::string dataname);
        
        /**
        **      Set Volume Color
@@ -63,6 +72,7 @@ public:
        vtkPiecewiseFunction* GetTransferFunction(){
                return _tfun;
        }
+
        vtkColorTransferFunction* GetColorFunction(){
                return _ctfun;
        }
index f1fa7e1b8a25e3f55dbf73c78e0dac07c6872b27..0844b784a1b3c2541e58829614ef758f02b95aed 100644 (file)
@@ -1,8 +1,12 @@
 #include "wxMaracasMultipleVolumeRendererPanel.h"
-
-#include <wx/colordlg.h>
 #include "wxMaracasMultipleVolumeRendererView.h"
 #include "wxMaracasRendererView.h"
+
+#include <wx/colordlg.h>
+
+#include "vtkImageData.h"
+#include "vtkRenderer.h"
+
 #include <OpenImage.xpm>
 #include <Add.xpm>
 #include "Color.xpm"
@@ -44,9 +48,6 @@ void wxMaracasMultipleVolumeRendererPanel::createControls(vtkImageData* img){
        
        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")));
@@ -72,10 +73,6 @@ void wxMaracasMultipleVolumeRendererPanel::createControls(vtkImageData* img){
        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);
@@ -175,8 +172,8 @@ void wxMaracasMultipleVolumeRendererPanel::updateVolume(){
 
        if(this->isComplexBox)
        {
-               ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->SetValuesColorPointsFunction(this->_propid,greylevelcolors, red, green, blue);
-               ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->SetValuesPointsFunction(this->_propid, greylevel, values);
+               ( (wxMaracasRendererView::getInstance())->getTabbedPanel(this->_propid) )->SetValuesColorPointsFunction(this->_propid,greylevelcolors, red, green, blue);
+               ( (wxMaracasRendererView::getInstance())->getTabbedPanel(this->_propid) )->SetValuesPointsFunction(this->_propid, greylevel, values);
        }
        else
        {       
@@ -199,17 +196,28 @@ 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::onViewImage(wxCommandEvent& event)
+{      
+       printf("wxMaracasMultipleVolumeRendererPanel->onViewImage: Test View Image");
+       vtkImageData* img = (wxMaracasRendererView::getInstance())->getTabbedPanel(this->_propid)->getVolImage(_propid);
+       /*wxMaracasDialog_NViewers* dialog = new wxMaracasDialog_NViewers(this);
+
+       std::vector<int> type;
+       std::vector<int> point;
+
+       type.push_back(6);
+       dialog->SetImage(  );
+       dialog->SetType(type);
+
+       point.clear();
+       point.push_back((int)dialog->GetX());
+       point.push_back((int)dialog->GetY());
+       point.push_back((int)dialog->GetZ());
+
+       wxVtkBaseView *wvbv1 = dialog->GetwxVtkBaseView(1);
+       wxVtkBaseView *wvbv2 = dialog->GetwxVtkBaseView(2);
+       wxVtkBaseView *wvbv3 = dialog->GetwxVtkBaseView(3);
+       wxVtkBaseView *wvbv4 = dialog->GetwxVtkBaseView(4);*/
 }
 
 /**
@@ -217,11 +225,12 @@ void wxMaracasMultipleVolumeRendererPanel::onOpenParameters(wxCommandEvent& even
 **/
 void wxMaracasMultipleVolumeRendererPanel::onCheckBoxChange(wxCommandEvent& event){    
        if(this->isComplexBox)
-               ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->addRemoveActorV(this->getPropId(), checkbox->GetValue());
+               ( (wxMaracasRendererView::getInstance())->getTabbedPanel(this->_propid) )->addRemoveActorV(this->getPropId(), checkbox->GetValue());
        else
                wxMaracasMultipleVolumeRendererView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());    
 }
 
+
 /**
 ** Gets the propId
 **/
index 7cb56a60b377d2cd8b7e653145b33aa54dd621f0..44ee843a9f16d8dd3d97ec00b5543bea1ccb2d64 100644 (file)
@@ -3,7 +3,6 @@
 
 #include <wx/wx.h>
 #include "HistogramDialogComboBox.h"
-#include "wxMaracasRenderImageManagementPanel.h"
 
 class wxMaracasMultipleVolumeRendererPanel : public wxPanel{
        
@@ -17,7 +16,6 @@ public:
        void onCancel(wxCommandEvent& event);
        void onUpdate(wxCommandEvent& event);
        void onViewImage(wxCommandEvent& event);
-       void onOpenParameters(wxCommandEvent& event);
 
        void updateVolume();
        int getPropId();
@@ -32,7 +30,6 @@ private:
        bool first;
 
        HistogramDialogComboBox* mwxwidget;
-       wxMaracasRenderImageManagementPanel* dialog;
        //wxFrame* _frame;
 
        //-- added for complex box --//
index 8a0f835e6cc506d494e84d3c257a01250bb2e4fe..b2630c3f7e97fadb9bdf7e55cf0ea25643c6ef5a 100644 (file)
@@ -3,8 +3,8 @@
   Program:   wxMaracas
   Module:    $RCSfile: wxMaracasMultipleVolumeRendererView.cxx,v $
   Language:  C++
-  Date:      $Date: 2009/10/30 20:06:07 $
-  Version:   $Revision: 1.5 $
+  Date:      $Date: 2009/11/09 19:14:56 $
+  Version:   $Revision: 1.6 $
 
   Copyright: (c) 2002, 2003
   License:
@@ -75,7 +75,15 @@ void wxMaracasMultipleVolumeRendererView::setRenderer(vtkRenderer*  renderer){
 }
 
 void wxMaracasMultipleVolumeRendererView::addRemoveActor(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();
+       }
+       
 }
 
 void wxMaracasMultipleVolumeRendererView::onLoadImageFile(){
@@ -134,7 +142,15 @@ void wxMaracasMultipleVolumeRendererView::loadVolume(wxString filename, wxString
 
 void wxMaracasMultipleVolumeRendererView::deleteVolume(int volid)
 {
-       volmanager->deleteActor(volid);
+       try{
+               volmanager->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();
+       }
 }
 
 void wxMaracasMultipleVolumeRendererView::SetValuesColorPointsFunction(int volid, std::vector<double> greylevelcolors,std::vector<double> red,std::vector<double> green,std::vector<double> blue){
index 6a2d5b381190f36d0a477770a333c02362e3d413..7ebd0c2392c0ea593107400bcc262de42b68dbc8 100644 (file)
@@ -1,13 +1,45 @@
 #include "wxMaracasRenderImageManagementPanel.h"
 
-#include <OpenImage.xpm>
+#include <vtkVolume.h>
 
 /**
 ** Class constructor
 **/
-wxMaracasRenderImageManagementPanel::wxMaracasRenderImageManagementPanel(wxWindow* parent)
+wxMaracasRenderImageManagementPanel::wxMaracasRenderImageManagementPanel(wxWindow* parent, wxMaracasMultipleVolumeRendererManager* _vol, wxMaracasSurfaceRenderingManager* _surface1, 
+                                                                                                                                                wxMaracasSurfaceRenderingManager* _surface2, wxMaracasSurfaceRenderingManager* _surface3, int id)
 : wxDialog(parent, -1, _T("Image Position Parameters"), wxDefaultPosition, wxDefaultSize, wxRESIZE_BORDER|wxDEFAULT_DIALOG_STYLE)
 {
+       vol = _vol;
+       surface1 = _surface1;
+       surface2 = _surface2;
+       surface3 = _surface3;
+
+       propID = id;
+
+       transformV = vtkTransform::New();
+       //vtkMatrix4x4 *_matrixV = vtkMatrix4x4::New();
+       //_matrixV->Identity();
+       //transformV->SetMatrix(_matrixV);
+       //transformV->SetInput(vol->getViewData(propID)->getProp3D()->GetUserTransform());
+
+       transformS1 = vtkTransform::New();
+       //vtkMatrix4x4 *_matrixS1 = vtkMatrix4x4::New();
+       //_matrixS1->Identity();
+       //transformS1->SetMatrix(_matrixS1);
+       //transformS1->SetInput(surface1->getViewData(propID)->getProp3D()->GetUserTransform());
+       
+       transformS2 = vtkTransform::New();
+       //vtkMatrix4x4 *_matrixS2 = vtkMatrix4x4::New();
+       //_matrixS2->Identity();
+       //transformS2->SetMatrix(_matrixS2);
+       //transformS2->SetInput(surface2->getViewData(propID)->getProp3D()->GetUserTransform());
+       
+       transformS3 = vtkTransform::New();
+       //vtkMatrix4x4 *_matrixS3 = vtkMatrix4x4::New();
+       //_matrixS3->Identity();
+       //transformS3->SetMatrix(_matrixS3);
+       //transformS3->SetInput(surface3->getViewData(propID)->getProp3D()->GetUserTransform());
+
        createControls();
 }
 
@@ -20,55 +52,64 @@ void wxMaracasRenderImageManagementPanel::createControls()
        
        wxStaticText* tx = new wxStaticText(this, -1, wxString(_T("  Translate X  ")));
        sliderTranslateX = new wxSlider(this, -1, 0, -200, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-       Connect(sliderTranslateX->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::TranslateX);
+       sliderTranslateX->SetLineSize(1);
+       Connect(sliderTranslateX->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Translate);
        sizersliders->Add(tx, wxFIXED_MINSIZE);
        sizersliders->Add(sliderTranslateX,wxSizerFlags().Expand().Center());
 
        wxStaticText* ty = new wxStaticText(this, -1, wxString(_T("  Translate Y  ")));
        sliderTranslateY = new wxSlider(this, -1, 0, -200, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-       Connect(sliderTranslateY->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::TranslateY);
+       sliderTranslateY->SetLineSize(1);
+       Connect(sliderTranslateY->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Translate);
        sizersliders->Add(ty, wxFIXED_MINSIZE);
        sizersliders->Add(sliderTranslateY,wxSizerFlags().Expand().Center());
 
        wxStaticText* tz = new wxStaticText(this, -1, wxString(_T("  Translate Z  ")));
        sliderTranslateZ = new wxSlider(this, -1, 0, -200, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-       Connect(sliderTranslateZ->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::TranslateZ);
+       sliderTranslateZ->SetLineSize(1);
+       Connect(sliderTranslateZ->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Translate);
        sizersliders->Add(tz, wxFIXED_MINSIZE);
        sizersliders->Add(sliderTranslateZ,wxSizerFlags().Expand().Center());
 
        wxStaticText* rx = new wxStaticText(this, -1, wxString(_T("  Rotate X  ")));
        sliderRotateX = new wxSlider(this, -1, 0, -360, 360, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-       Connect(sliderRotateX->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::RotateX);
+       sliderRotateX->SetLineSize(1);
+       Connect(sliderRotateX->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Rotate);
        sizersliders->Add(rx, wxFIXED_MINSIZE);
        sizersliders->Add(sliderRotateX,wxSizerFlags().Expand().Center());
 
        wxStaticText* ry = new wxStaticText(this, -1, wxString(_T("  Rotate Y  ")));
        sliderRotateY = new wxSlider(this, -1, 0, -360, 360, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-       Connect(sliderRotateY->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::RotateY);
+       sliderRotateY->SetLineSize(1);
+       Connect(sliderRotateY->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Rotate);
        sizersliders->Add(ry, wxFIXED_MINSIZE);
        sizersliders->Add(sliderRotateY,wxSizerFlags().Expand().Center());
 
        wxStaticText* rz = new wxStaticText(this, -1, wxString(_T("  Rotate Z  ")));
        sliderRotateZ = new wxSlider(this, -1, 0, -360, 360, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-       Connect(sliderRotateZ->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::RotateZ);
+       sliderRotateZ->SetLineSize(1);
+       Connect(sliderRotateZ->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Rotate);
        sizersliders->Add(rz, wxFIXED_MINSIZE);
        sizersliders->Add(sliderRotateZ,wxSizerFlags().Expand().Center());
 
        wxStaticText* sx = new wxStaticText(this, -1, wxString(_T("  Scale X  ")));
        sliderScaleX = new wxSlider(this, -1, 0, -100, 100, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-       Connect(sliderScaleX->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::ScaleX);
+       sliderScaleX->SetLineSize(1);
+       Connect(sliderScaleX->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Scale);
        sizersliders->Add(sx, wxFIXED_MINSIZE);
        sizersliders->Add(sliderScaleX,wxSizerFlags().Expand().Center());
 
        wxStaticText* sy = new wxStaticText(this, -1, wxString(_T("  Scale Y  ")));
        sliderScaleY = new wxSlider(this, -1, 0, -100, 100, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-       Connect(sliderScaleY->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::ScaleY);
+       sliderScaleY->SetLineSize(1);
+       Connect(sliderScaleY->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Scale);
        sizersliders->Add(sy, wxFIXED_MINSIZE);
        sizersliders->Add(sliderScaleY,wxSizerFlags().Expand().Center());
 
        wxStaticText* sz = new wxStaticText(this, -1, wxString(_T("  Scale Z  ")));
        sliderScaleZ = new wxSlider(this, -1, 0, -100, 100, wxDefaultPosition, this->GetSize(), wxSL_LABELS);
-       Connect(sliderScaleZ->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::ScaleZ);
+       sliderScaleZ->SetLineSize(1);
+       Connect(sliderScaleZ->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Scale);
        sizersliders->Add(sz, wxFIXED_MINSIZE);
        sizersliders->Add(sliderScaleZ,wxSizerFlags().Expand().Center());
        
@@ -110,59 +151,93 @@ void wxMaracasRenderImageManagementPanel::createControls()
 /**
 ** Class destructor
 **/
-wxMaracasRenderImageManagementPanel::~wxMaracasRenderImageManagementPanel(){   
+wxMaracasRenderImageManagementPanel::~wxMaracasRenderImageManagementPanel()
+{      
 }
 
 /**
 ** Transforms a volume by the given value for the X axis
 **/
-void wxMaracasRenderImageManagementPanel::TranslateX(int val){
+void wxMaracasRenderImageManagementPanel::Translate(wxCommandEvent& event)
+{
+       printf("silder translateX = %d \n", sliderTranslateX->GetValue());
+       transformV->Identity();
+       transformS1->Identity();
+       transformS2->Identity();
+       transformS3->Identity();
+
+       transformV->Translate(sliderTranslateX->GetValue(), sliderTranslateY->GetValue(), sliderTranslateZ->GetValue());
+       transformS1->Translate(sliderTranslateX->GetValue(), sliderTranslateY->GetValue(), sliderTranslateZ->GetValue());
+       transformS2->Translate(sliderTranslateX->GetValue(), sliderTranslateY->GetValue(), sliderTranslateZ->GetValue());
+       transformS3->Translate(sliderTranslateX->GetValue(), sliderTranslateY->GetValue(), sliderTranslateZ->GetValue());
+
+       Refresh();
 }
 
 /**
-** Transforms a volume by the given value for the Y axis
+** Rotates a volume by the given degree for the X axis
 **/
-void wxMaracasRenderImageManagementPanel::TranslateY(int val){
-}
+void wxMaracasRenderImageManagementPanel::Rotate(wxCommandEvent& event)
+{
+       printf("silder rotateX = %d \n", sliderRotateX->GetValue());
 
-/**
-** Transforms a volume by the given value for the Z axis
-**/
-void wxMaracasRenderImageManagementPanel::TranslateZ(int val){
-}
+       transformV->Identity();
+       transformS1->Identity();
+       transformS2->Identity();
+       transformS3->Identity();
+       
+       transformS1->RotateX( sliderRotateX->GetValue() );
+       transformS2->RotateX( sliderRotateX->GetValue() );
+       transformS3->RotateX( sliderRotateX->GetValue() );
 
-/**
-** Rotates a volume by the given degree for the X axis
-**/
-void wxMaracasRenderImageManagementPanel::RotateX(int degr){
-}
+       transformV->RotateY( sliderRotateY->GetValue() );
+       transformS1->RotateY( sliderRotateY->GetValue() );
+       transformS2->RotateY( sliderRotateY->GetValue() );
+       transformS3->RotateY( sliderRotateY->GetValue() );
 
-/**
-** Rotates a volume by the given degree for the Y axis
-**/
-void wxMaracasRenderImageManagementPanel::RotateY(int degr){
-}
+       transformV->RotateZ( sliderRotateZ->GetValue() );
+       transformS1->RotateZ( sliderRotateZ->GetValue() );
+       transformS2->RotateZ( sliderRotateZ->GetValue() );
+       transformS3->RotateZ( sliderRotateZ->GetValue() );
 
-/**
-** Rotates a volume by the given degree for the Z axis
-**/
-void wxMaracasRenderImageManagementPanel::RotateZ(int degr){
+       Refresh();
 }
 
 /**
 ** Scales a volume by the given value for the X axis
 **/
-void wxMaracasRenderImageManagementPanel::ScaleX(int val){
-}
+void wxMaracasRenderImageManagementPanel::Scale(wxCommandEvent& event)
+{
+       transformV->Identity();
+       transformS1->Identity();
+       transformS2->Identity();
+       transformS3->Identity();
 
-/**
-** Scales a volume by the given value for the Y axis
-**/
-void wxMaracasRenderImageManagementPanel::ScaleY(int val){
+       transformV->Scale( sliderTranslateX->GetValue()/50, sliderTranslateY->GetValue()/50, sliderTranslateZ->GetValue()/50 );
+       transformS1->Scale( sliderTranslateX->GetValue(), sliderTranslateY->GetValue(), sliderTranslateZ->GetValue() );
+       transformS2->Scale( sliderTranslateX->GetValue(), sliderTranslateY->GetValue(), sliderTranslateZ->GetValue() );
+       transformS3->Scale( sliderTranslateX->GetValue(), sliderTranslateY->GetValue(), sliderTranslateZ->GetValue() );
+
+       Refresh();
 }
 
-/**
-** Scales a volume by the given value for the Z axis
-**/
-void wxMaracasRenderImageManagementPanel::ScaleZ(int val){
+void wxMaracasRenderImageManagementPanel::Refresh()
+{
+       try{
+               transformV->Update();
+               transformS1->Update();
+               transformS2->Update();
+               transformS3->Update();
+
+               vol->getViewData(propID)->getProp3D()->SetUserMatrix(transformV->GetMatrix());
+               surface1->getViewData(propID)->getProp3D()->SetUserMatrix(transformV->GetMatrix());
+               surface2->getViewData(propID)->getProp3D()->SetUserMatrix(transformV->GetMatrix());
+               surface3->getViewData(propID)->getProp3D()->SetUserMatrix(transformV->GetMatrix());
+       }
+       catch(char* str)
+       {
+               std::cout << "Exception : " << str << '\n';
+               wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
+               diag->ShowModal();
+       }
 }
\ No newline at end of file
index 09981051ae5efc29d6509de6dc392adbe50c55a1..d639b3eb9957718ea6c29179d9b07fe7bbcaaaa7 100644 (file)
@@ -1,6 +1,11 @@
 #ifndef wxMaracasRenderImageManagementPanel_H_
 #define wxMaracasRenderImageManagementPanel_H_
 
+#include <vtkTransform.h>
+#include <vtkProp3D.h>
+
+#include "wxMaracasMultipleVolumeRendererManager.h"
+#include "wxMaracasSurfaceRenderingManager.h"
 
 #include <wx/wx.h>
 
@@ -9,19 +14,17 @@ class wxMaracasRenderImageManagementPanel : public wxDialog
 {
 public:
 
-       wxMaracasRenderImageManagementPanel(wxWindow* parent);
+       wxMaracasRenderImageManagementPanel(wxWindow* parent, wxMaracasMultipleVolumeRendererManager* vol, wxMaracasSurfaceRenderingManager* surface1, 
+               wxMaracasSurfaceRenderingManager* surface2, wxMaracasSurfaceRenderingManager* surface3, int id);
        ~wxMaracasRenderImageManagementPanel();
 
        void createControls();
-       void TranslateX(int val);
-       void TranslateY(int val);
-       void TranslateZ(int val);
-       void RotateX(int degr);
-       void RotateY(int degr);
-       void RotateZ(int degr);
-       void ScaleX(int val);
-       void ScaleY(int val);
-       void ScaleZ(int val);
+
+       void Translate(wxCommandEvent& event);
+       void Rotate(wxCommandEvent& event);
+       void Scale(wxCommandEvent& event);
+
+       void Refresh();
 
 private:
 
@@ -36,6 +39,19 @@ private:
        wxSlider* sliderScaleX;
        wxSlider* sliderScaleY;
        wxSlider* sliderScaleZ;
+
+       //wxMaracasRenderTabbedPanel* wxtbbpanel;
+       wxMaracasMultipleVolumeRendererManager* vol;
+       wxMaracasSurfaceRenderingManager* surface1;
+       wxMaracasSurfaceRenderingManager* surface2;
+       wxMaracasSurfaceRenderingManager* surface3;
+       
+       vtkTransform* transformV;
+       vtkTransform* transformS1;
+       vtkTransform* transformS2;
+       vtkTransform* transformS3;
+
+       int propID;
 };
 
 #endif
\ No newline at end of file
index 3daafe07a8f322eb3bb8654bb83c600662b4ce10..ff4fe1320f22ef95c7dfee912e2d02d8ec03dcb6 100644 (file)
@@ -1,16 +1,23 @@
 #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)
 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize)
 {
        //_propid = propid;
@@ -18,94 +25,97 @@ wxMaracasRenderTabbedPanel::wxMaracasRenderTabbedPanel(wxWindow* parent/*, wxMar
        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(_propidV);
+       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);   
+               //std::string s = std::string(pathfile.mb_str());
+               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)
+               {
+                       //s = std::string(filename.mb_str());
+                       addVolume(img, filename);
+                       addSurface1(img1, filename);
+                       addSurface2(img2, filename);
+                       addSurface3(img3, filename);    
+                       wxtabs->Refresh();
+               }
+       }       
+       else
+       {
+               //s = std::string(filename.mb_str());
+               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 +124,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);
+               _propidV = volmanager->addVolume(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 +144,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);
+               _propidSA = surrendmanager1->addPropMHD(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 +170,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);
+               _propidSB = surrendmanager2->addPropMHD(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,9 +196,13 @@ 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
@@ -189,10 +211,10 @@ void wxMaracasRenderTabbedPanel::addSurface3(vtkImageData* img, std::string data
 
                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 +222,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 +231,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 +252,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 +268,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 +284,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 +300,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 +324,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,43 +456,83 @@ 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);
-
+void wxMaracasRenderTabbedPanel::onCheckBoxSAChange(wxCommandEvent& event)
+{      
+       try{
+               surrendmanager1->addRemoveActor(this->getPropIdSA(), 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;
+       }
+}
 
-       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);
+/**
+** Method called when SurfaceRendering B checkbox status changes: Either shows or hides SurfaceRendering B image
+**/
+void wxMaracasRenderTabbedPanel::onCheckBoxSBChange(wxCommandEvent& event)
+{      
+       try{
+               surrendmanager2->addRemoveActor(this->getPropIdSB(), 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::onCheckBoxSCChange(wxCommandEvent& event)
+{      
+       try{
+               surrendmanager3->addRemoveActor(this->getPropIdSC(), 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;
+       }
 }
 
 /**
 **
 **/
+void wxMaracasRenderTabbedPanel::onOpenParameters(wxCommandEvent& event){      
+       
+       dialog = new wxMaracasRenderImageManagementPanel(this, volmanager, surrendmanager1, surrendmanager2, surrendmanager3, this->getPropIdV());
+       dialog->SetSize(400, 580);
+       dialog->Show();
+}
+
+
+/**
+** Gets volume rendering image asociated to the given ID
+**/
 void wxMaracasRenderTabbedPanel::onColorChange(wxCommandEvent& event)
 {      
        /*Temporarily disabled*/
@@ -431,41 +546,41 @@ void wxMaracasRenderTabbedPanel::onColorChange(wxCommandEvent& event)
 /**
 ** 
 **/
-void wxMaracasRenderTabbedPanel::onViewImage(wxCommandEvent& event)
-{
-       
+vtkImageData* wxMaracasRenderTabbedPanel::getVolImage(int id)
+{      
+       return volmanager->getImageData();
 }
 
 /**
-** Method called when VolumeRendering checkbox status changes: Either shows or hides VolumeRendering image
+** Gets surface rendering A image asociated to the given ID
 **/
-void wxMaracasRenderTabbedPanel::onCheckBoxVChange(wxCommandEvent& event)
-{
-       volmanager->addRemoveActor(this->getPropIdV(), checkboxVol->GetValue());        
+vtkImageData* wxMaracasRenderTabbedPanel::getSurfAImage(int id)
+{      
+       return surrendmanager1->getImageData();
 }
 
 /**
-** Method called when SurfaceRendering A checkbox status changes: Either shows or hides SurfaceRendering image
+** Gets surface rendering B image asociated to the given ID
 **/
-void wxMaracasRenderTabbedPanel::onCheckBoxSAChange(wxCommandEvent& event)
+vtkImageData* wxMaracasRenderTabbedPanel::getSurfBImage(int id)
 {      
-       surrendmanager1->addRemoveActor(this->getPropIdSA(), checkboxSA->GetValue());   
+       return surrendmanager2->getImageData();
 }
 
 /**
-** Method called when SurfaceRendering B checkbox status changes: Either shows or hides SurfaceRendering B image
+** Gets surface rendering C image asociated to the given ID
 **/
-void wxMaracasRenderTabbedPanel::onCheckBoxSBChange(wxCommandEvent& event)
+vtkImageData* wxMaracasRenderTabbedPanel::getSurfCImage(int id)
 {      
-       surrendmanager2->addRemoveActor(this->getPropIdSB(), checkboxSB->GetValue());   
+       return surrendmanager3->getImageData();
 }
 
 /**
-** Method called when SurfaceRendering C checkbox status changes: Either shows or hides SurfaceRendering C image
+**
 **/
-void wxMaracasRenderTabbedPanel::onCheckBoxSCChange(wxCommandEvent& event)
+void wxMaracasRenderTabbedPanel::onOpenCutter(wxCommandEvent& event)
 {      
-       surrendmanager3->addRemoveActor(this->getPropIdSC(), checkboxSC->GetValue());   
+       
 }
 
 /**
index a8c6fc87fb2973113ce2111385ed1588393312cd..a22e5616885ef8e5b5ff70f86309050f3c654074 100644 (file)
@@ -3,34 +3,29 @@
 
 #include <wx/wx.h>
 #include <wx/notebook.h> 
-#include "wxMaracasMultipleVolumeRendererPanel.h"
-#include "wxMaracasSurfaceRenderingPanel.h"
+#include "wxMaracasRenderImageManagementPanel.h"
+
 #include "wxMaracasMultipleVolumeRendererManager.h"
 #include "wxMaracasSurfaceRenderingManager.h"
-#include "wxMaracasSurfaceRenderingProp3DMHD.h"
+
 
 
 class wxMaracasRenderTabbedPanel : public wxPanel
 {
        
 public:
-       wxMaracasRenderTabbedPanel(wxWindow* parent/*, wxMaracasMultipleVolumeRendererManager* volmanager, wxMaracasSurfaceRenderingManager* surmanager1, wxMaracasSurfaceRenderingManager* surmanager2, 
-                                                                         wxMaracasSurfaceRenderingManager* surmanager3, wxString pathfile, wxString filename*/);
+       wxMaracasRenderTabbedPanel(wxWindow* parent);
        ~wxMaracasRenderTabbedPanel();
 
-       void createControls(wxString pathfile, wxString filename);
+       void createControls(vtkImageData* inImg, std::string pathfile, std::string filename);
        void setRenderer(vtkRenderer* rend);
        void addVolume(vtkImageData* img, std::string dataname);
        void addSurface1(vtkImageData* img, std::string dataname);
        void addSurface2(vtkImageData* img, std::string dataname);
        void addSurface3(vtkImageData* img, std::string dataname);
 
-       void onCheckBoxVChange(wxCommandEvent& event);
-       void onCheckBoxSAChange(wxCommandEvent& event);
-       void onCheckBoxSBChange(wxCommandEvent& event);
-       void onCheckBoxSCChange(wxCommandEvent& event);
-
        void deleteVolume(int volid);
+       void Transform(vtkMatrix4x4* tmatrix);
        void addRemoveActorV(int id, bool addremove);
        void addRemoveActorSA(int id, bool addremove);
        void addRemoveActorSB(int id, bool addremove);
@@ -52,14 +47,21 @@ public:
        void changeOpacityC(int _propid, int value);
        void changeIsoValueC(int propid, double value);
        void changeColorC(int propid, double red, double green, double blue);
+       
+       void onCheckBoxVChange(wxCommandEvent& event);
+       void onCheckBoxSAChange(wxCommandEvent& event);
+       void onCheckBoxSBChange(wxCommandEvent& event);
+       void onCheckBoxSCChange(wxCommandEvent& event);
 
+       void onOpenParameters(wxCommandEvent& event);
        void onColorChange(wxCommandEvent& event);
-       //void onOK(wxCommandEvent& event);
-       //void onCancel(wxCommandEvent& event);
-       void onUpdate(wxCommandEvent& event);
-       void onViewImage(wxCommandEvent& event);
+       void onOpenCutter(wxCommandEvent& event);
+
+       vtkImageData* getVolImage(int id);
+       vtkImageData* getSurfAImage(int id);
+       vtkImageData* getSurfBImage(int id);
+       vtkImageData* getSurfCImage(int id);
 
-       void updateVolume();
        int getPropIdV();
        int getPropIdSA();
        int getPropIdSB();
@@ -73,6 +75,7 @@ private:
        //wxBitmapButton* _viewimage;
 
        wxNotebook* wxtabs;
+       wxMaracasRenderImageManagementPanel* dialog;
 
        int _propidV;
        int _propidSA;
@@ -85,11 +88,6 @@ private:
        wxMaracasSurfaceRenderingManager* surrendmanager1;
        wxMaracasSurfaceRenderingManager* surrendmanager2;
        wxMaracasSurfaceRenderingManager* surrendmanager3;
-
-       wxMaracasMultipleVolumeRendererPanel* controlpanV;
-       wxMaracasSurfaceRenderingPanel* controlpanSA;
-       wxMaracasSurfaceRenderingPanel* controlpanSB;
-       wxMaracasSurfaceRenderingPanel* controlpanSC;
 };
 
 #endif /*wxMaracasMultipleVolumeRendererPanel_H_*/
index 9ed39f0dd062afb368733c35627e031c98f863cf..528ef0adf100b6b758ba1261141630bc45676f7e 100644 (file)
@@ -26,8 +26,6 @@ wxMaracasRendererView::wxMaracasRendererView(wxWindow* parent,std::string path)
 
        _path = path;
 
-       wxtabs = new wxMaracasRenderTabbedPanel(this);
-
        std::string iconsdir = path;
        iconsdir+="/data/Icons";
        this->_toolb = new ToolBarRenderer(this,iconsdir);
@@ -48,15 +46,7 @@ wxMaracasRendererView::~wxMaracasRendererView( )
 }
 
 /**
-**
-**/
-std::string wxMaracasRendererView::getPath()
-{
-       return _path;
-}
-
-/**
-**
+** Gets class instance correponding to given parameters
 **/
 wxMaracasRendererView* wxMaracasRendererView::getInstance(wxWindow* parent,std::string path)
 {
@@ -68,7 +58,7 @@ wxMaracasRendererView* wxMaracasRendererView::getInstance(wxWindow* parent,std::
 }
 
 /**
-**
+** Gets class intance
 **/
 wxMaracasRendererView* wxMaracasRendererView::getInstance()
 {
@@ -76,43 +66,35 @@ wxMaracasRendererView* wxMaracasRendererView::getInstance()
 }
 
 /**
-**
+** Gets path for the given panel
 **/
-void wxMaracasRendererView::setRenderer(vtkRenderer*  renderer)
-{
-       wxtabs->setRenderer(renderer);
-}
-
-/**
-** Adds or removes a volume rendering actor
-**/
-void wxMaracasRendererView::addRemoveActorVol(int id, bool addremove)
+std::string wxMaracasRendererView::getPath()
 {
-       wxtabs->addRemoveActorV(id, addremove);
+       return _path;
 }
 
 /**
-** Adds or removes a surface rendering actor
+** Returns internal panel
 **/
-void wxMaracasRendererView::addRemoveSurf1Actor(int id, bool addremove)
+wxMaracasRenderTabbedPanel* wxMaracasRendererView::getTabbedPanel(int id)throw(char*)
 {
-       wxtabs->addRemoveActorSA(id, addremove);
-}
+       int i;
+       for(i = 0; i < (tabsVector.size()); i++)
+       {
+               if(tabsVector[i]->getPropIdV() == id)
+                       return tabsVector[i];
+       }
+       throw "id not found";
 
-/**
-** Adds or removes a surface rendering actor
-**/
-void wxMaracasRendererView::addRemoveSurf2Actor(int id, bool addremove)
-{
-       wxtabs->addRemoveActorSB(id, addremove);
+       return NULL;
 }
 
 /**
-** Adds or removes a surface rendering actor
+**
 **/
-void wxMaracasRendererView::addRemoveSurf3Actor(int id, bool addremove)
+void wxMaracasRendererView::setRenderer(vtkRenderer*  renderer)
 {
-       wxtabs->addRemoveActorSC(id, addremove);
+       _renderer = renderer;
 }
 
 /**
@@ -131,20 +113,22 @@ void wxMaracasRendererView::onLoadImageFile()
                wxString pathfile(fildial->GetDirectory() + _T("/") + filename);
                if(filename.EndsWith(mhd))
                {
-                       addPanels(pathfile, filename);
+                       std::string sPath = std::string(pathfile.mb_str());
+                       std::string sFileName = std::string(filename.mb_str());
+                       addVolumes(NULL, sPath, sFileName);
                }
        }
        delete fildial;
 }
-
 /**
 ** Constructs and adds internal panel
 **/
-void wxMaracasRendererView::addPanels(wxString pathfile, wxString filename)
+void wxMaracasRendererView::addPanels(wxMaracasRenderTabbedPanel* wxtabs, vtkImageData* img, std::string pathfile, std::string filename)
 {
        wxString s(filename.c_str(),wxConvUTF8);
        
-       wxtabs->createControls(pathfile, filename);
+       wxtabs->createControls(img, pathfile, filename);
+       
        wxAuiPaneInfo paneinfo;
        wxauimanager->AddPane(wxtabs, paneinfo.DefaultPane().Centre().DestroyOnClose().Caption(s));
        wxauimanager->Update();
@@ -153,17 +137,53 @@ void wxMaracasRendererView::addPanels(wxString pathfile, wxString filename)
 /**
 ** Returns internal panel
 **/
-wxMaracasRenderTabbedPanel* wxMaracasRendererView::getTabbedPanel()
+void wxMaracasRendererView::addVolumes(vtkImageData* img, std::string pathfile, std::string filename)
 {
-       return wxtabs;
-}
+       wxMaracasRenderTabbedPanel* wxtabs = new wxMaracasRenderTabbedPanel(this);
+       wxtabs->setRenderer(_renderer);
 
+       tabsVector.push_back(wxtabs);
+       addPanels(wxtabs, img, pathfile, filename);     
+}
 /**
 ** Deletes current volume
 **/
 void wxMaracasRendererView::deleteVolume(int volid)
 {
-       wxtabs->deleteVolume(volid);
+       
+       getTabbedPanel(volid)->deleteVolume(volid);
+}
+
+/**
+** Adds or removes a volume rendering actor
+**/
+void wxMaracasRendererView::addRemoveActorVol(int id, bool addremove)
+{
+       //wxtabs->addRemoveActorV(id, addremove);
+}
+
+/**
+** Adds or removes a surface rendering actor
+**/
+void wxMaracasRendererView::addRemoveSurf1Actor(int id, bool addremove)
+{
+       //wxtabs->addRemoveActorSA(id, addremove);
+}
+
+/**
+** Adds or removes a surface rendering actor
+**/
+void wxMaracasRendererView::addRemoveSurf2Actor(int id, bool addremove)
+{
+       //wxtabs->addRemoveActorSB(id, addremove);
+}
+
+/**
+** Adds or removes a surface rendering actor
+**/
+void wxMaracasRendererView::addRemoveSurf3Actor(int id, bool addremove)
+{
+       //wxtabs->addRemoveActorSC(id, addremove);
 }
 
 /**
index 11293dcbc25425259f4e8719fd1b9d957e0b2765..1a45b14022a74de15f3064e658458b57d43caca8 100644 (file)
@@ -32,22 +32,22 @@ public:
 
        static wxMaracasRendererView* getInstance(wxWindow* parent,std::string path="");
        static wxMaracasRendererView* getInstance();
-       void setRenderer(vtkRenderer*  renderer);
-
-       void loadVolume(wxString filename, wxString dataname);
-       void onLoadImageFile();
-       void addPanels(wxString filename, wxString dataname = _T(""));
        
-       wxMaracasRenderTabbedPanel* getTabbedPanel();
        std::string getPath();
+       wxMaracasRenderTabbedPanel* getTabbedPanel(int id)throw(char*);
 
-       void deleteVolume(int volid);
+       void setRenderer(vtkRenderer*  renderer) throw(char*);
+       void onLoadImageFile();
+       void addVolumes(vtkImageData* img, std::string pathfile, std::string filename);
+       void addPanels(wxMaracasRenderTabbedPanel* wxtabs, vtkImageData* img, std::string pathfile, std::string filename);
 
+       void deleteVolume(int volid);
        void addRemoveActorVol(int id, bool remove);
        void addRemoveSurf1Actor(int id, bool addremove);
        void addRemoveSurf2Actor(int id, bool addremove);
        void addRemoveSurf3Actor(int id, bool addremove);
        
+       
        //void SetValuesColorPointsFunction(int volid, std::vector<double> greylevelcolors,std::vector<double> red,std::vector<double> green,std::vector<double> blue);
        //void SetValuesPointsFunction(int volid, std::vector<double> greylevel, std::vector<double> values);
 
@@ -57,8 +57,9 @@ public:
 private:
        static wxMaracasRendererView* instance;
 
-       wxMaracasRenderTabbedPanel* wxtabs;
+       std::vector<wxMaracasRenderTabbedPanel*> tabsVector;
        wxAuiManager* wxauimanager;
+       vtkRenderer*  _renderer;
        
        std::string _path;
        wxToolBar * _toolb;
index 47f1c188cb7460e911a8c59a42318d9fd275634a..6635cd689805c2085173b543f7f539fd21bfc0cf 100644 (file)
@@ -3,8 +3,8 @@
   Program:   wxMaracas
   Module:    $RCSfile: wxMaracasSurfaceRendering.cxx,v $
   Language:  C++
-  Date:      $Date: 2009/10/30 20:06:07 $
-  Version:   $Revision: 1.3 $
+  Date:      $Date: 2009/11/09 19:14:56 $
+  Version:   $Revision: 1.4 $
 
   Copyright: (c) 2002, 2003
   License:
@@ -84,15 +84,39 @@ void wxMaracasSurfaceRendering::setRenderer(vtkRenderer*  renderer){
 }
 
 void wxMaracasSurfaceRendering::addRemoveActor(int propid, bool addremove){
-       surrendmanager->addRemoveActor(propid, addremove);
+       try{
+               surrendmanager->addRemoveActor(propid, 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;
+       }
 }
 
 void wxMaracasSurfaceRendering::changeOpacity(int _propid, int value){
-       surrendmanager->changeOpacity(_propid,value);
+       try{
+               surrendmanager->changeOpacity(_propid,value);
+       }
+       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;
+       }
 }
 
 void wxMaracasSurfaceRendering::changeIsoValue(int propid, double value){
-       surrendmanager->changeIsoValue(propid, value);
+       try{
+               surrendmanager->changeIsoValue(propid, value);
+       }
+       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;
+       }
 }
 
 void wxMaracasSurfaceRendering::changeColor(int propid, double red, double green, double blue){
@@ -158,6 +182,7 @@ void wxMaracasSurfaceRendering::addPropMHD(vtkImageData* imgdata, std::string da
                std::cout << "Exception : " << str << '\n';
                wxMessageDialog* diag = new wxMessageDialog(this, wxString( str,wxConvUTF8 ), wxString( str,wxConvUTF8 ), wxICON_ERROR);
                diag->ShowModal();
+               delete diag;
        }
 }
 
@@ -183,6 +208,7 @@ void wxMaracasSurfaceRendering::addProp3D(vtkProp3D* prop3D, std::string datanam
                std::cout << "Exception : " << str << '\n';
                wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
                diag->ShowModal();
+               delete diag;
        }
 }
 void wxMaracasSurfaceRendering::addSurfaceRenderingPanel(wxMaracasSurfaceRenderingPanel* surrend, std::string dataname){
@@ -196,8 +222,12 @@ void wxMaracasSurfaceRendering::addSurfaceRenderingPanel(wxMaracasSurfaceRenderi
 void wxMaracasSurfaceRendering::deleteActor(int propid){
        try{
                surrendmanager->deleteActor(propid);
-       }catch(char* e){
-
+       }catch(char* str){
+               //CPR
+               std::cout << "Exception : " << str << '\n';
+               wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
+               diag->ShowModal();
+               delete diag;
        }
 }
 
index 64e0197a1fafab47711367c73b942d04b2761cfd..858fa41ce08a40883531b9ec842813853a80cbda 100644 (file)
@@ -3,8 +3,8 @@
   Program:   wxMaracas
   Module:    $RCSfile: wxMaracasSurfaceRenderingManager.cxx,v $
   Language:  C++
-  Date:      $Date: 2009/10/30 20:06:07 $
-  Version:   $Revision: 1.2 $
+  Date:      $Date: 2009/11/09 19:14:56 $
+  Version:   $Revision: 1.3 $
 
   Copyright: (c) 2002, 2003
   License:
@@ -33,6 +33,23 @@ wxMaracasSurfaceRenderingManager::~wxMaracasSurfaceRenderingManager(){
 void wxMaracasSurfaceRenderingManager::setRenderer(vtkRenderer*  renderer){
        _renderer = renderer;
 }
+
+/**
+** Gets the renderer to manage the prop3D from the surface render
+**/
+vtkRenderer* wxMaracasSurfaceRenderingManager::getRenderer(){
+       return _renderer;
+}
+
+/**
+** Updates volume
+**/
+void wxMaracasSurfaceRenderingManager::Update(int pid)throw(char*){
+       wxMaracasSurfaceRenderingManagerData* data = this->getViewData(pid);    
+       ((wxMaracasSurfaceRenderingManagerDataMhd*)data)->UpdateSurface();
+       _renderer->Render();
+}
+
 /**
 **     Adds a prop3D to the manager and returns the identifier
 **/
@@ -54,6 +71,7 @@ int wxMaracasSurfaceRenderingManager::addPropMHD(vtkImageData* imagedata, std::s
 
        checkInvariant();
        if(imagedata != NULL){
+               image = imagedata;
                wxMaracasSurfaceRenderingManagerData* data = new wxMaracasSurfaceRenderingManagerDataMhd(imagedata, dataname);
                prop3Dvect.push_back(data);     
                _renderer->AddActor(data->getProp3D());
@@ -131,7 +149,6 @@ vtkProp3D* wxMaracasSurfaceRenderingManager:: getProp3D(std::string filename){
 vtkImageData* wxMaracasSurfaceRenderingManager::getImageData(std::string filename){
        if(filename.compare("")!= 0){   
                
-               
                vtkMetaImageReader* reader =  vtkMetaImageReader::New();        
                reader->SetFileName(filename.c_str());
                reader->Update();
@@ -142,6 +159,10 @@ vtkImageData* wxMaracasSurfaceRenderingManager::getImageData(std::string filenam
        return NULL;
 }
 
+vtkImageData* wxMaracasSurfaceRenderingManager::getImageData(){
+       return image;
+}
+
 void wxMaracasSurfaceRenderingManager::checkInvariant()  throw(char*){
        if(this->_renderer==NULL){
                throw "Renderer not set";
@@ -195,7 +216,12 @@ void wxMaracasSurfaceRenderingManager::deleteActor(int propid) throw (char *){
                delete data;
                prop3Dvect.pop_back();
        }else{
+
                throw "id not found in the data";
        }   
 }
 
+void wxMaracasSurfaceRenderingManager::Transform(vtkMatrix4x4* tmatrix){
+       
+}
+
index c41af3830f3d9e195ff4b9052d1876549c4d1eff..fb1061b1ca9bdf87bf34545d3a8fef85b2784e56 100644 (file)
@@ -3,8 +3,8 @@
   Program:   wxMaracas
   Module:    $RCSfile: wxMaracasSurfaceRenderingManager.h,v $
   Language:  C++
-  Date:      $Date: 2009/10/15 11:56:43 $
-  Version:   $Revision: 1.1 $
+  Date:      $Date: 2009/11/09 19:14:56 $
+  Version:   $Revision: 1.2 $
 
   Copyright: (c) 2002, 2003
   License:
@@ -23,6 +23,7 @@
 
 #include <iostream>
 #include <vector>
+#include <vtkMatrix4x4.h>
 
 #include "wxMaracasSurfaceRenderingManagerData.h"
 
@@ -37,6 +38,17 @@ public:
        **      Sets the renderer to manage the prop3D from the surface render
        **/
        void setRenderer(vtkRenderer*  renderer);
+
+       /**
+       **      Gets the renderer which manages the prop3D from the surface render
+       **/
+       vtkRenderer* getRenderer();
+       
+       /**
+       ** Updates surface
+       **/
+       void Update(int pid)throw(char*);
+       
        /**
        **      Adds a prop3D to the manager and returns the identifier
        **/
@@ -65,6 +77,11 @@ public:
        **/
        vtkImageData* getImageData(std::string filename);
 
+       /**
+       ** Gets image data asotiated with the rendering manager
+       **/
+       vtkImageData* getImageData();
+
        /**
        **      adds or removes an actor depending of the bool value
        **/
@@ -91,11 +108,14 @@ public:
        void changeColor(int propid, double red, double green, double blue) throw(char*);
 
        void deleteActor(int propid)throw (char *);
+
+       void Transform(vtkMatrix4x4* tmatrix);
        
 private:       
        std::vector<wxMaracasSurfaceRenderingManagerData*> prop3Dvect;
 
        vtkRenderer*  _renderer;
+       vtkImageData* image;
 
        int _idCount;
 
index b663297a20d6f6c6db28f81602d1c70813eabc1a..d3fdb3911fc04684748be9f3456f1aa3d10e4917 100644 (file)
@@ -24,6 +24,7 @@ wxMaracasSurfaceRenderingManagerData::~wxMaracasSurfaceRenderingManagerData(){
 void wxMaracasSurfaceRenderingManagerData::setProp3D(vtkProp3D* prop3D){
        _prop3D = prop3D;
 }
+
 /**
 **     Changes the opacity in a prop3D
 **/
index 0fc613c5c447146286001361229f000c6ea30ded..eec30d6900b3d7f04b69abf4dcad3bf8e2e6d168 100644 (file)
@@ -39,7 +39,11 @@ wxMaracasSurfaceRenderingManagerDataMhd::~wxMaracasSurfaceRenderingManagerDataMh
        _dataMapper->Delete();
 }
        
-
+void wxMaracasSurfaceRenderingManagerDataMhd::UpdateSurface(){
+       _cubesFilter->Update();    
+       _cleanFilter->Update();
+       _dataMapper->Update();  
+}
 /**
 **     changes the isovalue in a prop3D
 **/
index 2ce246c574378adc48626c2e855c2930d6407b46..324b8d9db5c3728be0468dff03e8a468c175ccca 100644 (file)
@@ -42,6 +42,11 @@ public:
        **/
        void contourExtractor(int isovalue);            
        
+       /**
+       ** Updates surface
+       **/
+       void UpdateSurface();
+
 private:       
        
        vtkImageData* _imagedata;
index e7658c91883eb8a6b996b712589093ff01359531..1f296671935bf576cc43849ff735878ad3a04ff5 100644 (file)
@@ -3,6 +3,9 @@
 #include <wx/colordlg.h>
 #include "wxMaracasSurfaceRendering.h"
 #include "wxMaracasRendererView.h"
+
+#include "vtkImageData.h"
+
 #include <OpenImage.xpm>
 #include <Add.xpm>
 #include "Color.xpm"
@@ -65,13 +68,6 @@ void wxMaracasSurfaceRenderingProp3D::createControls(){
        Connect(_viewimage->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onViewImage);                       
        sizerbut->Add(_viewimage,wxFIXED_MINSIZE);
 
-       if(isComplexBox) 
-       {
-               wxBitmap bitmap2(OpenImage_xpm);
-               wxBitmapButton* _openParameters = new wxBitmapButton(this, -1, bitmap2, wxDefaultPosition, wxSize(30,30));      
-               Connect(_openParameters->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onOpenParameters);                     
-               sizerbut->Add(_openParameters,wxFIXED_MINSIZE); 
-       }
        sizersurfprop->Add(sizerbut,wxFIXED_MINSIZE);
        //sizercolor->Add(checkbox,wxFIXED_MINSIZE);
        //sizercolor->Add(_colorchoose,wxFIXED_MINSIZE);
@@ -113,11 +109,11 @@ void wxMaracasSurfaceRenderingProp3D::onColorChange(wxCommandEvent& event){
                
                if(this->isComplex()){
                        if(this->getPanId() == 1)
-                               ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeColorA(this->getPropId(), r, g, b);
+                               ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeColorA(this->getPropId(), r, g, b);
                        if(this->getPanId() == 2)
-                               ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeColorB(this->getPropId(), r, g, b);
+                               ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeColorB(this->getPropId(), r, g, b);
                        if(this->getPanId() == 3)
-                               ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeColorC(this->getPropId(), r, g, b);
+                               ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeColorC(this->getPropId(), r, g, b);
                }
                else
                        wxMaracasSurfaceRendering::getInstance()->changeColor(this->getPropId(),r,g,b);
@@ -135,11 +131,11 @@ void wxMaracasSurfaceRenderingProp3D::onOpacityRelease(wxScrollEvent& event ){
 
        if(this->isComplex()){
                if(this->getPanId() == 1)
-                       ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeOpacityA(this->getPropId(),opacity->GetValue());
+                       ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeOpacityA(this->getPropId(),opacity->GetValue());
                if(this->getPanId() == 2)
-                       ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeOpacityB(this->getPropId(),opacity->GetValue());
+                       ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeOpacityB(this->getPropId(),opacity->GetValue());
                if(this->getPanId() == 3)
-                       ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeOpacityC(this->getPropId(),opacity->GetValue());
+                       ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeOpacityC(this->getPropId(),opacity->GetValue());
        }
        else
                wxMaracasSurfaceRendering::getInstance()->changeOpacity(this->getPropId(),opacity->GetValue());
@@ -150,20 +146,8 @@ void wxMaracasSurfaceRenderingProp3D::onOpacityRelease(wxScrollEvent& event ){
 ** Loads the volume in a separate window
 **/
 void wxMaracasSurfaceRenderingProp3D::onViewImage(wxCommandEvent& event){      
-
-       //if(mwxwidget->ShowModal()==wxID_OK){
-    
-       //      mwxwidget->Show(false);
-       //}     
-}
-
-/** 
-** Loads the volume in a separate window
-** Carolina Perez: Method recently added 28/10/2009
-**/
-void wxMaracasSurfaceRenderingProp3D::onOpenParameters(wxCommandEvent& event){
-       dialog = new wxMaracasRenderImageManagementPanel(this);
-       dialog->SetSize(400,580);
-       dialog->Show(); 
+       printf("wxMaracasSurfaceRenderingProp3D->onViewImage: Test View Image");
+       vtkImageData* image = ((wxMaracasRendererView::getInstance())->getTabbedPanel(this->_propid))->getVolImage(this->_propid);
+       
 }
 
index da0223b8c3efe257e32b4257242e6a4764f5e450..cf9e41b1ea913a0e1ae1d1a58b6a0f34f21071a1 100644 (file)
@@ -13,7 +13,6 @@ public:
        void onCheckBoxChange(wxCommandEvent& event);
        void onColorChange(wxCommandEvent& event);
        void onViewImage(wxCommandEvent& event);
-       void onOpenParameters(wxCommandEvent& event);
 
        
 private:
index 507e8e838493bd87eac6e740e99010b1cd38be35..860cef721a4645c0571dcfb6bd63317ad191d679 100644 (file)
@@ -45,11 +45,11 @@ void wxMaracasSurfaceRenderingProp3DMHD::onIsoValueRelease(wxScrollEvent& event
        if(this->isComplex())
        {
                if(this->getPanId() == 1)
-                       ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeIsoValueA(this->getPropId(),isovalue->GetValue()/1.0);
+                       ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeIsoValueA(this->getPropId(),isovalue->GetValue()/1.0);
                if(this->getPanId() == 2)
-                       ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeIsoValueB(this->getPropId(),isovalue->GetValue()/1.0);
+                       ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeIsoValueB(this->getPropId(),isovalue->GetValue()/1.0);
                if(this->getPanId() == 3)
-                       ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeIsoValueC(this->getPropId(),isovalue->GetValue()/1.0);
+                       ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeIsoValueC(this->getPropId(),isovalue->GetValue()/1.0);
        }
        else
                wxMaracasSurfaceRendering::getInstance()->changeIsoValue(this->getPropId(), isovalue->GetValue()/1.0);