X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxMaracasIRMView.cxx;h=9225874c8c3042b4afbc1ff138b6d69418f172e0;hb=1bf58cfa1758464b422d1d0cca808e528043e691;hp=3355f76d85462b697083efc78e3102736f81d9c6;hpb=21c2226cf3dcad1daf3fb04818583b559694fa81;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasIRMView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasIRMView.cxx index 3355f76..9225874 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasIRMView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasIRMView.cxx @@ -3,8 +3,8 @@ Program: wxMaracas Module: $RCSfile: wxMaracasIRMView.cxx,v $ Language: C++ - Date: $Date: 2009/04/09 13:58:38 $ - Version: $Revision: 1.2 $ + Date: $Date: 2009/05/04 15:06:42 $ + Version: $Revision: 1.7 $ Copyright: (c) 2002, 2003 License: @@ -24,6 +24,9 @@ #include #include +#include +#include + wxMaracasIRMView* wxMaracasIRMView::instance=NULL; wxMaracasIRMView::wxMaracasIRMView( wxWindow* parent,std::string path) @@ -36,7 +39,7 @@ wxMaracasIRMView::wxMaracasIRMView( wxWindow* parent,std::string path) _path = path; std::string iconsdir = path; - iconsdir+="/Data/Icons"; + iconsdir+="/data/Icons"; wxToolBar* toolbar = new ToolBar(this,iconsdir); wxAuiPaneInfo paneinfo; wxauimanager->AddPane(toolbar,paneinfo.ToolbarPane().Top()); @@ -84,7 +87,7 @@ void wxMaracasIRMView::changeOpacity(int _propid, int value){ irmmanager->changeOpacity(_propid,value); } -void wxMaracasIRMView::changeIsoValue(int propid, int value){ +void wxMaracasIRMView::changeIsoValue(int propid, double value){ irmmanager->changeIsoValue(propid, value); } @@ -94,9 +97,10 @@ void wxMaracasIRMView::changeColor(int propid, double red, double green, double }catch(char* str){ - std::cout << "Exception : " << str << '\n'; - wxMessageDialog* diag = new wxMessageDialog(this, wxString(str), wxString(str), wxICON_ERROR); + wxString s( str,wxConvUTF8 ); + wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR); diag->ShowModal(); + delete diag; } } @@ -107,7 +111,7 @@ void wxMaracasIRMView::onLoadImageFile(){ wxString stl(_T("stl")); wxFileDialog* fildial = new wxFileDialog(this, wxString(_T("Select a STL file")),wxString(_T("")), - wxString(_T("")),"STL files (*.stl)|*.stl|MHD files (*.mhd)|*.mhd" ); + wxString(_T("")),wxString(_T("STL files (*.stl)|*.stl|MHD files (*.mhd)|*.mhd")) ); if(fildial->ShowModal()==wxID_OK){ wxString filename = fildial->GetFilename(); @@ -125,10 +129,11 @@ void wxMaracasIRMView::onLoadImageFile(){ } void wxMaracasIRMView::loadPropMHD(wxString filename, wxString dataname){ - - vtkImageData* img = irmmanager->getImageData(filename.c_str()); + std::string s = std::string(filename.mb_str()); + vtkImageData* img = irmmanager->getImageData(s); if(img!=NULL){ - addPropMHD(img, dataname.c_str()); + s = std::string(dataname.mb_str()); + addPropMHD(img, s); } @@ -149,17 +154,18 @@ void wxMaracasIRMView::addPropMHD(vtkImageData* imgdata, std::string dataname){ }catch(char* str){ std::cout << "Exception : " << str << '\n'; - wxMessageDialog* diag = new wxMessageDialog(this, wxString(str), wxString(str), wxICON_ERROR); + wxMessageDialog* diag = new wxMessageDialog(this, wxString( str,wxConvUTF8 ), wxString( str,wxConvUTF8 ), wxICON_ERROR); diag->ShowModal(); } } void wxMaracasIRMView::loadProp3D(wxString filename, wxString dataname){ - - vtkProp3D* prop3D = irmmanager->getProp3D(filename.c_str()); + std::string s = std::string(filename.mb_str()); + vtkProp3D* prop3D = irmmanager->getProp3D(s); if(prop3D != NULL){ - this->addProp3D(prop3D,dataname.c_str()); + s = std::string(dataname.mb_str() ); + this->addProp3D(prop3D,s); }else{ //TODO msj to the user indicating error in file } @@ -177,18 +183,27 @@ void wxMaracasIRMView::addProp3D(vtkProp3D* prop3D, std::string dataname){ } }catch(char* str){ std::cout << "Exception : " << str << '\n'; - wxMessageDialog* diag = new wxMessageDialog(this, wxString(str), wxString(str), wxICON_ERROR); + wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR); diag->ShowModal(); } } void wxMaracasIRMView::addIRMViewPanel(wxMaracasIRMViewPanel* irmview, std::string dataname){ - wxString s(dataname.c_str()); + wxString s(dataname.c_str(),wxConvUTF8 ); wxAuiPaneInfo paneinfo; wxauimanager->AddPane(irmview, paneinfo.DefaultPane().Centre().DestroyOnClose().Caption(s)); wxauimanager->Update(); + + +} +void wxMaracasIRMView::deleteActor(int propid){ + try{ + irmmanager->deleteActor(propid); + }catch(char* e){ + + } } /** @@ -200,45 +215,48 @@ wxMaracasIRMViewProp3D::wxMaracasIRMViewProp3D(wxWindow* parent,int propid) createControls(); } -wxMaracasIRMViewProp3D::~wxMaracasIRMViewProp3D(){ - wxMaracasIRMView::getInstance()->addRemoveActor(_propid, false); +wxMaracasIRMViewProp3D::~wxMaracasIRMViewProp3D(){ + //wxMaracasIRMView::getInstance()->addRemoveActor(_propid, false); + wxMaracasIRMView::getInstance()->deleteActor(_propid); } void wxMaracasIRMViewProp3D::createControls(){ + wxFlexGridSizer* sizerirmprop = new wxFlexGridSizer(1,1,1); + wxString choices[2]; - choices[0] = "On"; - choices[1] = "Off"; + choices[0] = wxString(_T("On")); + choices[1] = wxString(_T("Off")); checkbox = new wxCheckBox(this,-1,wxString(_T("Show Actor"))); - this->addControl(checkbox); Connect(checkbox->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onCheckBoxChange); - checkbox->SetValue(true); + checkbox->SetValue(true); + sizerirmprop->Add(checkbox,wxFIXED_MINSIZE); + + //this->addControl(checkbox); - wxBoxSizer* sizercolor = new wxBoxSizer(wxVERTICAL); - std::string iconfile = wxMaracasIRMView::getInstance()->getPath(); - iconfile+= "/Data/Icons/Color.png"; - wxBitmap* bitmap = new wxBitmap(wxString(iconfile.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG); - _colorchoose = new wxBitmapButton(this, -1, *bitmap); - sizercolor->Add(_colorchoose,wxFIXED_MINSIZE); - Connect(_colorchoose->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onColorChange); - - this->addControl(sizercolor); + wxBitmap bitmap(Color_xpm); + _colorchoose = new wxBitmapButton(this, -1, bitmap,wxDefaultPosition,wxSize(30,30)); + Connect(_colorchoose->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onColorChange); + sizerirmprop->Add(_colorchoose,wxFIXED_MINSIZE); + + //sizercolor->Add(checkbox,wxFIXED_MINSIZE); + //sizercolor->Add(_colorchoose,wxFIXED_MINSIZE); + //this->addControl(sizercolor); - - wxBoxSizer* sizeropacity = new wxBoxSizer(wxVERTICAL); - wxStaticText* label = new wxStaticText(this, -1, wxString(_T("Opacity"))); + + 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)&wxMaracasIRMViewProp3D::onOpacityRelease); + wxFlexGridSizer* sizeropacity = new wxFlexGridSizer(1,1,1); sizeropacity->Add(label,wxFIXED_MINSIZE); - opacity = new wxSlider(this, -1,100,0,100,wxDefaultPosition,wxDefaultSize,wxSL_HORIZONTAL|wxSL_LABELS); sizeropacity->Add(opacity,wxFIXED_MINSIZE); - Connect(opacity->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onOpacityRelease); - this->addControl(sizeropacity); - + sizerirmprop->Add(sizeropacity,wxFIXED_MINSIZE); - /*isovalue = new wxSlider(this, -1,0,0,100); - this->addControl(isovalue); - Connect(isovalue->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onIsoValueRelease); */ + //this->addControl(sizeropacity); + this->addControl(sizerirmprop); + } void wxMaracasIRMViewProp3D::onCheckBoxChange(wxCommandEvent& event){ wxMaracasIRMView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue()); @@ -249,9 +267,9 @@ void wxMaracasIRMViewProp3D::onColorChange(wxCommandEvent& event){ wxColour colour = colourdiag->GetColourData().GetColour(); _colorchoose->SetBackgroundColour(colour); - float r = colour.Red()/255; - float g = colour.Green()/255; - float b = colour.Blue()/255; + double r = (double)(colour.Red())/255.0; + double g = (double)(colour.Green())/255.0; + double b = (double)(colour.Blue())/255.0; wxMaracasIRMView::getInstance()->changeColor(this->getPropId(),r,g,b); } @@ -277,11 +295,12 @@ wxMaracasIRMViewProp3DMHD::wxMaracasIRMViewProp3DMHD(wxWindow* parent, int propi } wxMaracasIRMViewProp3DMHD::~wxMaracasIRMViewProp3DMHD(){ - + //this->Show(false); + //wxMaracasIRMView::getInstance()->addRemoveActor(_propid, false); } void wxMaracasIRMViewProp3DMHD::createControls(int maxisovalue){ - - wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL); + + wxFlexGridSizer* sizer = new wxFlexGridSizer(1,1,1); wxStaticText* label = new wxStaticText(this, -1, wxString(_T("IsoValue"))); sizer->Add(label, wxGROW); @@ -296,7 +315,7 @@ void wxMaracasIRMViewProp3DMHD::createControls(int maxisovalue){ void wxMaracasIRMViewProp3DMHD::onIsoValueRelease(wxScrollEvent& event ){ - wxMaracasIRMView::getInstance()->changeIsoValue(this->getPropId(), isovalue->GetValue()); + wxMaracasIRMView::getInstance()->changeIsoValue(this->getPropId(), isovalue->GetValue()/1.0); } /** @@ -310,9 +329,10 @@ ToolBar::ToolBar(wxWindow * parent,std::string iconsdir) std::string iconfil = iconsdir; - iconfil+= "/OpenImage.png"; - wxBitmap* bitmap0 = new wxBitmap(wxString(iconfil.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG); - this->AddTool(0, wxString(_T("test")),*bitmap0); + //iconfil+= "/OpenImage.png"; + //wxBitmap* bitmap0 = new wxBitmap(wxString(iconfil.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG); + wxBitmap bitmap0(OpenImage_xpm); + this->AddTool(0, wxString(_T("test")),bitmap0); /*iconfil+= "/Open.png"; wxBitmap* bitmap2 = new wxBitmap(wxString(iconfil.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG);