From 79df2a7fc2b468bc2e7279ac77c0148269fe6aee Mon Sep 17 00:00:00 2001 From: perez Date: Mon, 9 Nov 2009 19:14:56 +0000 Subject: [PATCH] *** empty log message *** --- bbtk/src/bbcreaMaracasVisuRenderingViewer.cxx | 22 +- .../wxMaracaSurfaceRenderingProp3D.cxx | 145 -------- ...wxMaracasMultipleVolumeRendererManager.cxx | 29 +- .../wxMaracasMultipleVolumeRendererManager.h | 28 +- ...racasMultipleVolumeRendererManagerData.cxx | 7 + ...MaracasMultipleVolumeRendererManagerData.h | 14 +- .../wxMaracasMultipleVolumeRendererPanel.cxx | 55 +-- .../wxMaracasMultipleVolumeRendererPanel.h | 3 - .../wxMaracasMultipleVolumeRendererView.cxx | 24 +- .../wxMaracasRenderImageManagementPanel.cpp | 165 ++++++--- .../wxMaracasRenderImageManagementPanel.h | 36 +- .../widgets/wxMaracasRenderTabbedPanel.cpp | 345 ++++++++++++------ .../widgets/wxMaracasRenderTabbedPanel.h | 40 +- .../widgets/wxMaracasRendererView.cxx | 108 +++--- .../wxWindows/widgets/wxMaracasRendererView.h | 17 +- .../widgets/wxMaracasSurfaceRendering.cxx | 44 ++- .../wxMaracasSurfaceRenderingManager.cxx | 32 +- .../wxMaracasSurfaceRenderingManager.h | 24 +- .../wxMaracasSurfaceRenderingManagerData.cxx | 1 + ...xMaracasSurfaceRenderingManagerDataMhd.cxx | 6 +- .../wxMaracasSurfaceRenderingManagerDataMhd.h | 5 + .../wxMaracasSurfaceRenderingProp3D.cxx | 40 +- .../widgets/wxMaracasSurfaceRenderingProp3D.h | 1 - .../wxMaracasSurfaceRenderingProp3DMHD.cxx | 6 +- 24 files changed, 707 insertions(+), 490 deletions(-) delete mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracaSurfaceRenderingProp3D.cxx diff --git a/bbtk/src/bbcreaMaracasVisuRenderingViewer.cxx b/bbtk/src/bbcreaMaracasVisuRenderingViewer.cxx index 2fe9e07..280da1b 100644 --- a/bbtk/src/bbcreaMaracasVisuRenderingViewer.cxx +++ b/bbtk/src/bbcreaMaracasVisuRenderingViewer.cxx @@ -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 index 3d11870..0000000 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracaSurfaceRenderingProp3D.cxx +++ /dev/null @@ -1,145 +0,0 @@ -#include "wxMaracasSurfaceRenderingProp3D.h" - -#include -#include "wxMaracasSurfaceRendering.h" -#include "wxMaracasRendererView.h" -#include -#include -#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 diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManager.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManager.cxx index 70d05bd..ccee7cd 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManager.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManager.cxx @@ -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 greylevel, std::vector red, std::vector green, - std::vector blue) -{ + std::vector 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"; diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManager.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManager.h index 14ef61b..93e4763 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManager.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManager.h @@ -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 #include +#include #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 greylevel, std::vector red, std::vector green, - std::vector blue); + std::vector 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 prop3Dvect; vtkRenderer* _renderer; + vtkImageData* image; int _idCount; diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManagerData.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManagerData.cxx index fb0ef0a..8f2175d 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManagerData.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManagerData.cxx @@ -82,6 +82,13 @@ void wxMaracasMultipleVolumeRendererManagerData::setVolumeOpacity(std::vectorUpdate(); +} /** ** get the prop3D **/ diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManagerData.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManagerData.h index b1ad57e..3494bfb 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManagerData.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManagerData.h @@ -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; } diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererPanel.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererPanel.cxx index f1fa7e1..0844b78 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererPanel.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererPanel.cxx @@ -1,8 +1,12 @@ #include "wxMaracasMultipleVolumeRendererPanel.h" - -#include #include "wxMaracasMultipleVolumeRendererView.h" #include "wxMaracasRendererView.h" + +#include + +#include "vtkImageData.h" +#include "vtkRenderer.h" + #include #include #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 type; + std::vector 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 **/ diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererPanel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererPanel.h index 7cb56a6..44ee843 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererPanel.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererPanel.h @@ -3,7 +3,6 @@ #include #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 --// diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererView.cxx index 8a0f835..b2630c3 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererView.cxx @@ -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 greylevelcolors,std::vector red,std::vector green,std::vector blue){ diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageManagementPanel.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageManagementPanel.cpp index 6a2d5b3..7ebd0c2 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageManagementPanel.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageManagementPanel.cpp @@ -1,13 +1,45 @@ #include "wxMaracasRenderImageManagementPanel.h" -#include +#include /** ** 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 diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageManagementPanel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageManagementPanel.h index 0998105..d639b3e 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageManagementPanel.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageManagementPanel.h @@ -1,6 +1,11 @@ #ifndef wxMaracasRenderImageManagementPanel_H_ #define wxMaracasRenderImageManagementPanel_H_ +#include +#include + +#include "wxMaracasMultipleVolumeRendererManager.h" +#include "wxMaracasSurfaceRenderingManager.h" #include @@ -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 diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.cpp index 3daafe0..ff4fe13 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.cpp @@ -1,16 +1,23 @@ #include "wxMaracasRenderTabbedPanel.h" #include "HistogramDialogComboBox.h" +#include "wxMaracasMultipleVolumeRendererPanel.h" +#include "wxMaracasSurfaceRenderingPanel.h" +#include "wxMaracasSurfaceRenderingProp3DMHD.h" +#include "wxMaracasMultipleVolumeRendererManagerData.h" + #include +#include + #include #include "Color.xpm" +#include /** -** +** 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 greylevel, std::vector 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 greylevelcolors; - std::vector red; - std::vector green; - std::vector blue; - - std::vector greylevel; - std::vector 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()); + } /** diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.h index a8c6fc8..a22e561 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.h @@ -3,34 +3,29 @@ #include #include -#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_*/ diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRendererView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRendererView.cxx index 9ed39f0..528ef0a 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRendererView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRendererView.cxx @@ -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); } /** diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRendererView.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRendererView.h index 11293dc..1a45b14 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRendererView.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRendererView.h @@ -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 greylevelcolors,std::vector red,std::vector green,std::vector blue); //void SetValuesPointsFunction(int volid, std::vector greylevel, std::vector values); @@ -57,8 +57,9 @@ public: private: static wxMaracasRendererView* instance; - wxMaracasRenderTabbedPanel* wxtabs; + std::vector tabsVector; wxAuiManager* wxauimanager; + vtkRenderer* _renderer; std::string _path; wxToolBar * _toolb; diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRendering.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRendering.cxx index 47f1c18..6635cd6 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRendering.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRendering.cxx @@ -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; } } diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManager.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManager.cxx index 64e0197..858fa41 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManager.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManager.cxx @@ -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){ + +} + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManager.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManager.h index c41af38..fb1061b 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManager.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManager.h @@ -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 #include +#include #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 prop3Dvect; vtkRenderer* _renderer; + vtkImageData* image; int _idCount; diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManagerData.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManagerData.cxx index b663297..d3fdb39 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManagerData.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManagerData.cxx @@ -24,6 +24,7 @@ wxMaracasSurfaceRenderingManagerData::~wxMaracasSurfaceRenderingManagerData(){ void wxMaracasSurfaceRenderingManagerData::setProp3D(vtkProp3D* prop3D){ _prop3D = prop3D; } + /** ** Changes the opacity in a prop3D **/ diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManagerDataMhd.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManagerDataMhd.cxx index 0fc613c..eec30d6 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManagerDataMhd.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManagerDataMhd.cxx @@ -39,7 +39,11 @@ wxMaracasSurfaceRenderingManagerDataMhd::~wxMaracasSurfaceRenderingManagerDataMh _dataMapper->Delete(); } - +void wxMaracasSurfaceRenderingManagerDataMhd::UpdateSurface(){ + _cubesFilter->Update(); + _cleanFilter->Update(); + _dataMapper->Update(); +} /** ** changes the isovalue in a prop3D **/ diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManagerDataMhd.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManagerDataMhd.h index 2ce246c..324b8d9 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManagerDataMhd.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManagerDataMhd.h @@ -42,6 +42,11 @@ public: **/ void contourExtractor(int isovalue); + /** + ** Updates surface + **/ + void UpdateSurface(); + private: vtkImageData* _imagedata; diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingProp3D.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingProp3D.cxx index e7658c9..1f29667 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingProp3D.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingProp3D.cxx @@ -3,6 +3,9 @@ #include #include "wxMaracasSurfaceRendering.h" #include "wxMaracasRendererView.h" + +#include "vtkImageData.h" + #include #include #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); + } diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingProp3D.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingProp3D.h index da0223b..cf9e41b 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingProp3D.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingProp3D.h @@ -13,7 +13,6 @@ public: void onCheckBoxChange(wxCommandEvent& event); void onColorChange(wxCommandEvent& event); void onViewImage(wxCommandEvent& event); - void onOpenParameters(wxCommandEvent& event); private: diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingProp3DMHD.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingProp3DMHD.cxx index 507e8e8..860cef7 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingProp3DMHD.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingProp3DMHD.cxx @@ -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); -- 2.46.0