X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxMaracasMultipleVolumeRendererView.cxx;h=60ad443f29259765b4545fb51ccdead93ee3a06d;hb=f050938d3947f6b785289da6d58f8fec2da57421;hp=539648acc4411fa72eef397f500474e8e3b80aec;hpb=cc00f80af2e160ce2af3ddd2903c4a41c023cc94;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererView.cxx index 539648a..60ad443 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/07/08 14:22:14 $ - Version: $Revision: 1.1 $ + Date: $Date: 2010/01/13 13:31:10 $ + Version: $Revision: 1.11 $ Copyright: (c) 2002, 2003 License: @@ -23,7 +23,7 @@ #include -#include +#include #include #include @@ -41,7 +41,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 +52,6 @@ wxMaracasMultipleVolumeRendererView::wxMaracasMultipleVolumeRendererView( wxWind wxMaracasMultipleVolumeRendererView::~wxMaracasMultipleVolumeRendererView( ){ delete _toolb; - } std::string wxMaracasMultipleVolumeRendererView::getPath(){ @@ -58,7 +59,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 +70,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,17 +121,16 @@ 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(); } }catch(char* str){ std::cout << "Exception : " << str << '\n'; @@ -123,24 +143,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) +{ + return volmanager->GetTransferFunction(volumeid); +} +vtkColorTransferFunction* wxMaracasMultipleVolumeRendererView::GetColorFunction(int volumeid) +{ + return volmanager->GetColorFunction(volumeid); +} + +std::vector wxMaracasMultipleVolumeRendererView::GetOutputImages(){ + return imgVect; +} + +wxMaracasMultipleVolumeRendererManager* wxMaracasMultipleVolumeRendererView::getVolumeRenderManager() +{ + return volmanager; +} + /** ** **/ @@ -155,7 +205,7 @@ 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); + this->AddTool(1, wxString(_T("test")),bitmap0, NULL, wxITEM_NORMAL, wxString(_T("Open File"))); /*iconfil+= "/Open.png"; wxBitmap* bitmap2 = new wxBitmap(wxString(iconfil.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG);