X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxMaracasMultipleVolumeRendererView.cxx;h=1b562be52b2cde1ed4ddf424102ed8ff0e260a2e;hb=e263b7ace0f53d647a731553a3f67700838ad146;hp=ec3512ba757c485a2ccab3163dd0f755f419e8d9;hpb=0006c401e6399555e1cfa83989a3343ccce51813;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererView.cxx index ec3512b..1b562be 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererView.cxx @@ -1,10 +1,35 @@ +/*# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ */ + /*========================================================================= - Program: wxMaracas + Program: wxMaracas Module: $RCSfile: wxMaracasMultipleVolumeRendererView.cxx,v $ Language: C++ - Date: $Date: 2009/07/20 10:06:12 $ - Version: $Revision: 1.2 $ + Date: $Date: 2012/11/15 14:14:35 $ + Version: $Revision: 1.12 $ Copyright: (c) 2002, 2003 License: @@ -23,7 +48,7 @@ #include -#include +#include #include #include @@ -41,7 +66,9 @@ wxMaracasMultipleVolumeRendererView::wxMaracasMultipleVolumeRendererView( wxWind std::string iconsdir = path; iconsdir+="/data/Icons"; this->_toolb = new ToolBarMultipleVolumeRenderer(this,iconsdir); + wxStaticText* txt = new wxStaticText(this, -1, wxString(_T(" Volume Rendering "))); wxAuiPaneInfo paneinfo; + wxauimanager->AddPane(txt,paneinfo.ToolbarPane().Top()); wxauimanager->AddPane(_toolb,paneinfo.ToolbarPane().Top()); wxauimanager->Update(); @@ -50,7 +77,6 @@ wxMaracasMultipleVolumeRendererView::wxMaracasMultipleVolumeRendererView( wxWind wxMaracasMultipleVolumeRendererView::~wxMaracasMultipleVolumeRendererView( ){ delete _toolb; - } std::string wxMaracasMultipleVolumeRendererView::getPath(){ @@ -58,7 +84,8 @@ std::string wxMaracasMultipleVolumeRendererView::getPath(){ } wxMaracasMultipleVolumeRendererView* wxMaracasMultipleVolumeRendererView::getInstance(wxWindow* parent,std::string path){ - if(instance==NULL){ + if(instance==NULL) +{ instance = new wxMaracasMultipleVolumeRendererView(parent,path); } return instance; @@ -68,12 +95,31 @@ wxMaracasMultipleVolumeRendererView* wxMaracasMultipleVolumeRendererView::getIns return instance; } +void wxMaracasMultipleVolumeRendererView::changeCompositeMIPFunction(int id, int function){ + try{ + volmanager->changeCompositeMIPFunction(id, function); + } + 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::setRenderer(vtkRenderer* renderer){ volmanager->setRenderer(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(){ @@ -100,16 +146,14 @@ void wxMaracasMultipleVolumeRendererView::addVolumeViewPanel(wxMaracasMultipleVo wxAuiPaneInfo paneinfo; wxauimanager->AddPane(irmview, paneinfo.DefaultPane().Centre().DestroyOnClose().Caption(s)); wxauimanager->Update(); - - } void wxMaracasMultipleVolumeRendererView::addVolume(vtkImageData* img, std::string dataname){ try{ - int id = volmanager->addVolume(img,dataname); + int id = volmanager->addVolume(-1, img,dataname); if(id!=-1){ - wxMaracasMultipleVolumeRendererPanel* controlpan = new wxMaracasMultipleVolumeRendererPanel(this, id,img); + wxMaracasMultipleVolumeRendererPanel* controlpan = new wxMaracasMultipleVolumeRendererPanel(this, id,img, false); addVolumeViewPanel(controlpan, dataname); controlpan->updateVolume(); } @@ -124,30 +168,54 @@ void wxMaracasMultipleVolumeRendererView::loadVolume(wxString filename, wxString std::string s = std::string(filename.mb_str()); vtkImageData* img = volmanager->getImageData(s); + imgVect.push_back(img); + if(img!=NULL){ s = std::string(dataname.mb_str()); addVolume(img, s); } - } -void wxMaracasMultipleVolumeRendererView::deleteVolume(int volid){ - volmanager->deleteActor(volid); +void wxMaracasMultipleVolumeRendererView::deleteVolume(int 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){ +void wxMaracasMultipleVolumeRendererView::SetValuesColorPointsFunction(int volid, std::vector greylevelcolors,std::vector red,std::vector green,std::vector blue) +{ volmanager->setVolumeColor(volid, greylevelcolors, red, green, blue); } -void wxMaracasMultipleVolumeRendererView::SetValuesPointsFunction(int volid, std::vector greylevel, std::vector values){ +void wxMaracasMultipleVolumeRendererView::SetValuesPointsFunction(int volid, std::vector greylevel, std::vector values) +{ volmanager->setVolumeOpacity(volid, greylevel, values); } -vtkPiecewiseFunction* wxMaracasMultipleVolumeRendererView::GetTransferFunction(int volumeid){ +vtkPiecewiseFunction* wxMaracasMultipleVolumeRendererView::GetTransferFunction(int volumeid) +{ return volmanager->GetTransferFunction(volumeid); } -vtkColorTransferFunction* wxMaracasMultipleVolumeRendererView::GetColorFunction(int volumeid){ +vtkColorTransferFunction* wxMaracasMultipleVolumeRendererView::GetColorFunction(int volumeid) +{ return volmanager->GetColorFunction(volumeid); } + +std::vector wxMaracasMultipleVolumeRendererView::GetOutputImages(){ + return imgVect; +} + +wxMaracasMultipleVolumeRendererManager* wxMaracasMultipleVolumeRendererView::getVolumeRenderManager() +{ + return volmanager; +} + /** ** **/ @@ -162,7 +230,12 @@ ToolBarMultipleVolumeRenderer::ToolBarMultipleVolumeRenderer(wxWindow * parent,s //iconfil+= "/OpenImage.png"; //wxBitmap* bitmap0 = new wxBitmap(wxString(iconfil.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG); wxBitmap bitmap0(OpenImage_xpm); - this->AddTool(1, wxString(_T("test")),bitmap0); +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 + this->AddTool(1, wxString(_T("test")),bitmap0, NULL, wxITEM_NORMAL, wxString(_T("Open File"))); +#else + this->AddTool(1, wxString(_T("test")),bitmap0, wxString(_T("Open File")), wxITEM_NORMAL ); +#endif /*iconfil+= "/Open.png"; wxBitmap* bitmap2 = new wxBitmap(wxString(iconfil.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG);