X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FpPlotter%2FHistogramDialogComboBox.cxx;h=649ade65563bd4614e045f91e24a171ba7b17983;hb=8138ced89fa9f1cc6933ff739dfa28b1e3c3883b;hp=3a997d5d22b75a6a63546958fa5a60b258f6d709;hpb=6a3077638c3045db3888c8c5641d141ff078c8dc;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialogComboBox.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialogComboBox.cxx index 3a997d5..649ade6 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialogComboBox.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialogComboBox.cxx @@ -11,60 +11,67 @@ HistogramDialogComboBox::HistogramDialogComboBox(wxWindow* parent) : wxPanel(parent) { - - _img = NULL; - _bitmapcombo=NULL; - _slidercolor=NULL; - _sliderwindowlevel=NULL; - colorBar_Bitmap=NULL; - _bitmapsizer=NULL; + _img = NULL; + _bitmapcombo = NULL; + _slidercolor = NULL; + _sliderwindowlevel = NULL; + colorBar_Bitmap = NULL; + _bitmapsizer = NULL; this->SetSizer(getBitmapCombo()); - _img = NULL; - _currentitem = -1; - _maxgreyvalue=0; -} + _img = NULL; + _currentitem = -1; + _maxgreyvalue = 0; +printf("EED HistogramDialogComboBox\n"); +#ifdef LINUX + std::string currentpath = crea::System::GetExecutablePath(); + -HistogramDialogComboBox::~HistogramDialogComboBox(){ - - + currentpath.append("../share/creaMaracasVisu/data/"); +printf("EED JCP OOOOJJJOOO cambiar esto HistogramDialogComboBox::HistogramDialog writting in this directory\n"); + currentpath = "/home/davila/dataHistogram"; + + + crea::System::createDirectory(currentpath.c_str()); +#endif } -void HistogramDialogComboBox::SetColors(std::vector greyvect, std::vector redvect, std::vector greenvect, std::vector bluevect){ - _greyvect=greyvect; - _redvect=redvect; - _greenvect=greenvect; - _bluevect=bluevect; - +HistogramDialogComboBox::~HistogramDialogComboBox() +{ } +void HistogramDialogComboBox::SetColors(std::vector greyvect, std::vector redvect, std::vector greenvect, std::vector bluevect) +{ + _greyvect = greyvect; + _redvect = redvect; + _greenvect = greenvect; + _bluevect = bluevect; +} -wxSizer* HistogramDialogComboBox::getBitmapCombo(){ +wxSizer* HistogramDialogComboBox::getBitmapCombo() +{ //_bitmapsizer = new wxBoxSizer(wxVERTICAL); _bitmapsizer = new wxBoxSizer(wxVERTICAL); - - wxBoxSizer* comboeditsizer = new wxBoxSizer(wxHORIZONTAL); - _bitmapcombo = getBitmapComboElements(); wxBitmap bitmap1(Edit_xpm); - wxBitmapButton* edit = new wxBitmapButton(this, -1, bitmap1,wxDefaultPosition,wxSize(30,30)); - Connect(edit->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&HistogramDialogComboBox::OnEditBitmapCombo); - + wxBitmapButton* edit = new wxBitmapButton(this, -1, bitmap1,wxDefaultPosition,wxSize(30,30)); + Connect(edit->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&HistogramDialogComboBox::OnEditBitmapCombo); + comboeditsizer->Add(_bitmapcombo,wxSizerFlags().Center().FixedMinSize()); comboeditsizer->Add(edit,wxSizerFlags().Center()); - _bitmapsizer->Add(comboeditsizer,wxSizerFlags().FixedMinSize().Center()); _bitmapsizer->AddSpacer(5); _bitmapsizer->Add(getSlidersWlCo(),wxSizerFlags().Expand().Center()); return _bitmapsizer; - } -wxSizer* HistogramDialogComboBox::getSlidersWlCo(){ + +wxSizer* HistogramDialogComboBox::getSlidersWlCo() +{ wxBoxSizer* sizersliders = new wxBoxSizer(wxVERTICAL); _slidercolor = new wxSlider(this, -1,1,0,1,wxDefaultPosition,wxDefaultSize,wxSL_LABELS); @@ -73,46 +80,51 @@ wxSizer* HistogramDialogComboBox::getSlidersWlCo(){ sizersliders->Add(_slidercolor,wxSizerFlags().Expand().Center()); sizersliders->Add(_sliderwindowlevel,wxSizerFlags().Expand().Center()); - Connect(_slidercolor->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&HistogramDialogComboBox::OnColorLevelChanged); + Connect(_slidercolor->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&HistogramDialogComboBox::OnColorLevelChanged); Connect(_sliderwindowlevel->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&HistogramDialogComboBox::OnWindowLevelChanged); return sizersliders; - } -double HistogramDialogComboBox::GetWindowLevel(){ - if(_sliderwindowlevel != NULL){ - return _sliderwindowlevel->GetValue(); - } -} -double HistogramDialogComboBox::GetColorLevel(){ - if(_slidercolor != NULL){ - return _slidercolor->GetValue(); - } +double HistogramDialogComboBox::GetWindowLevel() +{ + double val(0.0); + if(_sliderwindowlevel != NULL) + val= _sliderwindowlevel->GetValue(); + return val; // JPR } -void HistogramDialogComboBox::OnColorLevelChanged(wxCommandEvent& event){ - _slidercolor->GetValue(); - - wxCommandEvent newevent(wxEVT_SCROLL_THUMBTRACK,this->GetId()); - ProcessEvent(newevent); - +double HistogramDialogComboBox::GetColorLevel() +{ + double val(0.0); + if(_slidercolor != NULL) + val = _slidercolor->GetValue(); + return val; // JPR } -void HistogramDialogComboBox::OnWindowLevelChanged(wxCommandEvent& event){ - _sliderwindowlevel->GetValue(); - - wxCommandEvent newevent(wxEVT_SCROLL_THUMBTRACK,this->GetId()); - ProcessEvent(newevent); +void HistogramDialogComboBox::OnColorLevelChanged(wxCommandEvent& event) +{ + _slidercolor->GetValue(); + wxCommandEvent newevent(wxEVT_SCROLL_THUMBTRACK,this->GetId()); + ProcessEvent(newevent); } -void HistogramDialogComboBox::setImageData(vtkImageData* img){ - _maxgreyvalue = img->GetScalarRange()[1]; - _img = img; - setSlidersValue(); +void HistogramDialogComboBox::OnWindowLevelChanged(wxCommandEvent& event) +{ + _sliderwindowlevel->GetValue(); + wxCommandEvent newevent(wxEVT_SCROLL_THUMBTRACK,this->GetId()); + ProcessEvent(newevent); +} +void HistogramDialogComboBox::setImageData(vtkImageData* img) +{ + _maxgreyvalue = img->GetScalarRange()[1]; + _img = img; + setSlidersValue(); } -void HistogramDialogComboBox::setSlidersValue(){ + +void HistogramDialogComboBox::setSlidersValue() +{ if(_img!=NULL){ if(_slidercolor!=NULL){ _slidercolor->SetRange(_img->GetScalarRange()[0],_img->GetScalarRange()[1]); @@ -124,22 +136,32 @@ void HistogramDialogComboBox::setSlidersValue(){ } } } -void HistogramDialogComboBox::OnEditBitmapCombo(wxCommandEvent& event){ - - if(_img!=NULL){ +void HistogramDialogComboBox::OnEditBitmapCombo(wxCommandEvent& event) +{ + if(_img!=NULL) + { bool createaddandremovecontrols = true; HistogramDialog* dialog = new HistogramDialog(this,_T("Color Configuration"),createaddandremovecontrols); - dialog->initializeHistogram(_img); + dialog->initializeHistogram(_img); dialog->setInfoPanExtraControls(_bitmapsitems); - if(dialog->ShowModal()==wxID_OK){ - + if(dialog->ShowModal()==wxID_OK) + { dialog->UpdateCurrentComboElement(); _bitmapsitems = dialog->getComboBoxItems(); - - std::string currentpath = crea::System::GetDllAppPath("bbcreaMaracasVisu"); + //std::string currentpath = crea::System::GetDllAppPath("bbcreaMaracasVisu"); // JPR + std::string dllLastName; + std::string currentpath; + #ifdef WIN32 + dllLastName = "bbcreaMaracasVisu"; + currentpath = crea::System::GetDllAppPath(dllLastName); + #endif + #ifdef LINUX + currentpath = crea::System::GetExecutablePath(); + currentpath.append("../share/creaMaracasVisu/data/"); + #endif currentpath.append(FILENAME); std::vector redvect,greenvect,bluevect; @@ -152,42 +174,40 @@ void HistogramDialogComboBox::OnEditBitmapCombo(wxCommandEvent& event){ } _bitmapsitems.clear(); _bitmapcombo = getBitmapComboElements(); - if(_bitmapsizer->Replace(tempbitmapcombo,_bitmapcombo)){ - + if(_bitmapsizer->Replace(tempbitmapcombo,_bitmapcombo)){ + tempbitmapcombo->Destroy(); } this->Layout(); - } + } dialog->Destroy(); } - - - } -void HistogramDialogComboBox::saveCurrentConfiguration(std::vector& itembitmaps,std::string filename){ - std::ofstream file; - file.open( (const char*) (filename.c_str()) ); +void HistogramDialogComboBox::saveCurrentConfiguration(std::vector& itembitmaps,std::string filename) +{ + std::ofstream file; + file.open( (const char*) (filename.c_str()) ); double gv=-1,red=-1,gr=-1,bl=-1; int in=-1; - - if(file.is_open()) { file << "" << std::endl; - for(int i = 0; i < itembitmaps.size();i++){ + for(int i = 0; i < itembitmaps.size();i++) + { HistogramDialogComboBoxItem* item = itembitmaps[i]; std::vector vecttransfer = item->getGreyVectorTransfer(); std::vector value = item->getValueVector(); file << " "<< std::endl; - for(int j = 0; j < vecttransfer.size();j++){ + for(int j = 0; j < vecttransfer.size();j++) + { if(j==0){ file << " "<< std::endl; } - file << " " << std::endl; - file << " " << vecttransfer[j] << "" <" << std::endl; + file << " " << vecttransfer[j] << "" <" << value[j] << " "<" << std::endl; if(j==vecttransfer.size()-1){ @@ -199,7 +219,7 @@ void HistogramDialogComboBox::saveCurrentConfiguration(std::vector green = item->getGreenVector(); std::vector blue = item->getBlueVector(); for(int j = 0; j < greyv.size();j++) - { + { if(j==0){ file << " " << std::endl; } @@ -208,92 +228,98 @@ void HistogramDialogComboBox::saveCurrentConfiguration(std::vector" << red[j] << "" <" << green[j] << "" <" << blue[j] << "" <" << std::endl; + file << " " << std::endl; if(j==greyv.size()-1){ file << " " << std::endl; } } - - file << " "<< std::endl; - + file << " "<< std::endl; } file << "" << std::endl; - } file.close(); - } -wxBitmapComboBox* HistogramDialogComboBox::getBitmapComboElements(){ - std::string currentpath = crea::System::GetDllAppPath("bbcreaMaracasVisu"); +wxBitmapComboBox* HistogramDialogComboBox::getBitmapComboElements() +{ + std::string currentpath = ""; +#ifdef WIN32 + currentpath = crea::System::GetDllAppPath("bbcreaMaracasVisu"); +#endif +#ifdef LINUX + currentpath = crea::System::GetExecutablePath(); + currentpath.append("../share/CreaMaracasVisu/data/"); + +printf("EED JCP OOOOJJJOOO cambiar esto HistogramDialogComboBox::HistogramDialog writting in this file ******************\n"); + currentpath = "/home/davila/dataHistogram"; + +#endif currentpath.append(FILENAME); + std::cout<<"current file name " < bitmapsitems; - OnLoadComboBoxData(bitmapsitems, currentpath); + OnLoadComboBoxData(bitmapsitems, currentpath); _bitmapsitems = bitmapsitems; wxString* choices; choices = new wxString[bitmapsitems.size()]; - for(int i = 0; i < bitmapsitems.size();i++){ + for(int i = 0; i < bitmapsitems.size();i++) + { choices[i] = _T(""); } wxBitmapComboBox* bitmapcombo = new wxBitmapComboBox(this, -1, _T(""), wxDefaultPosition, wxDefaultSize, bitmapsitems.size(),choices); bitmapcombo->SetSize(65,30); - Connect(bitmapcombo->GetId(), wxEVT_COMMAND_COMBOBOX_SELECTED, (wxObjectEventFunction)&HistogramDialogComboBox::OnBitmapComboItemSelected); + Connect(bitmapcombo->GetId(), wxEVT_COMMAND_COMBOBOX_SELECTED, (wxObjectEventFunction)&HistogramDialogComboBox::OnBitmapComboItemSelected); - - - for(int i = 0; i < bitmapsitems.size(); i++){ + for(int i = 0; i < bitmapsitems.size(); i++) + { bitmapcombo->SetItemBitmap(i, bitmapsitems[i]->GetBitmap()); } - - return bitmapcombo; } -void HistogramDialogComboBox::OnBitmapComboItemSelected(wxCommandEvent& event){ - - if(_bitmapcombo!=NULL){ + +void HistogramDialogComboBox::OnBitmapComboItemSelected(wxCommandEvent& event) +{ + if(_bitmapcombo!=NULL) + { _currentitem = event.GetInt(); - if(_bitmapsitems.size()>_currentitem){ + if(_bitmapsitems.size()>_currentitem) + { HistogramDialogComboBoxItem* currentconfig = _bitmapsitems[_currentitem]; _greyvect = currentconfig->getGreyVector(); _redvect = currentconfig->getRedVector(); _greenvect = currentconfig->getGreenVector(); _bluevect= currentconfig->getBlueVector(); - _greyvecttransfer = currentconfig->getGreyVectorTransfer(); _value = currentconfig->getValueVector(); wxCommandEvent newevent(wxEVT_COMMAND_COMBOBOX_SELECTED,this->GetId()); ProcessEvent(newevent); } - - - } - } void HistogramDialogComboBox::OnLoadComboBoxData(std::vector& itembitmaps, std::string filename) -{ +{ std::vector redvect, greenvect, bluevect; std::vector greyvect, greyvecttransfunct, value; - redvect.clear(); - greenvect.clear(); + redvect.clear(); + greenvect.clear(); bluevect.clear(); - greyvect.clear(); - greyvecttransfunct.clear(); + greyvect.clear(); + greyvecttransfunct.clear(); value.clear(); - std::ifstream file; - file.open( (const char*) (filename.c_str()) ); + std::ifstream file; + file.open( (const char*) (filename.c_str()) ); double gv=-1,gvtransfer=-1,intensity=-1,red=-1,gr=-1,bl=-1; int in=-1; //std::cout<")!=-1)) - { - item = new HistogramDialogComboBoxItem(); - }else if((int)(line.find(""))!=-1){ - int pos1=line.find(">"); - int pos2=line.find("<",pos1+1); - std::string x=line.substr(pos1+1,pos2-pos1-1); - gvtransfer=atof(x.c_str()); - greyvecttransfunct.push_back(gvtransfer); - }else if((int)(line.find(""))!=-1){ - int pos1=line.find(">"); - int pos2=line.find("<",pos1+1); - std::string x=line.substr(pos1+1,pos2-pos1-1); - intensity=atof(x.c_str()); - value.push_back(intensity); - } - else if( (int)(line.find(""))!=-1) - { - int pos1=line.find(">"); - int pos2=line.find("<",pos1+1); - std::string x=line.substr(pos1+1,pos2-pos1-1); - gv=atof(x.c_str()); - greyvect.push_back(gv); - } - else if( (int)(line.find(""))!=-1) - { - int pos1=line.find(">"); - int pos2=line.find("<",pos1+1); - std::string x=line.substr(pos1+1,pos2-pos1-1); - red=atof(x.c_str()); - redvect.push_back(red); - } - else if( (int)(line.find(""))!=-1) - { - int pos1=line.find(">"); - int pos2=line.find("<",pos1+1); - std::string x=line.substr(pos1+1,pos2-pos1-1); - gr=atof(x.c_str()); - greenvect.push_back(gr); - } - else if( (int)(line.find(""))!=-1 ) - { - int pos1=line.find(">"); - int pos2=line.find("<",pos1+1); - std::string x=line.substr(pos1+1,pos2-pos1-1); - bl=atof(x.c_str()); - bluevect.push_back(bl); - - }else if( (int)(line.find(""))!=-1 ){ - - item->SetColors(greyvect,redvect,greenvect,bluevect); - item->SetTransferFunction(greyvecttransfunct,value); - for(int i = 0; i < greyvecttransfunct.size();i++){ + { + item = new HistogramDialogComboBoxItem(); + }else if((int)(line.find(""))!=-1) { + int pos1=line.find(">"); + int pos2=line.find("<",pos1+1); + std::string x=line.substr(pos1+1,pos2-pos1-1); + gvtransfer=atof(x.c_str()); + greyvecttransfunct.push_back(gvtransfer); + }else if((int)(line.find(""))!=-1) { + int pos1=line.find(">"); + int pos2=line.find("<",pos1+1); + std::string x=line.substr(pos1+1,pos2-pos1-1); + intensity=atof(x.c_str()); + value.push_back(intensity); + } + else if( (int)(line.find(""))!=-1) + { + int pos1=line.find(">"); + int pos2=line.find("<",pos1+1); + std::string x=line.substr(pos1+1,pos2-pos1-1); + gv=atof(x.c_str()); + greyvect.push_back(gv); + } + else if( (int)(line.find(""))!=-1) + { + int pos1=line.find(">"); + int pos2=line.find("<",pos1+1); + std::string x=line.substr(pos1+1,pos2-pos1-1); + red=atof(x.c_str()); + redvect.push_back(red); + } + else if( (int)(line.find(""))!=-1) + { + int pos1=line.find(">"); + int pos2=line.find("<",pos1+1); + std::string x=line.substr(pos1+1,pos2-pos1-1); + gr=atof(x.c_str()); + greenvect.push_back(gr); + } + else if( (int)(line.find(""))!=-1 ) + { + int pos1=line.find(">"); + int pos2=line.find("<",pos1+1); + std::string x=line.substr(pos1+1,pos2-pos1-1); + bl=atof(x.c_str()); + bluevect.push_back(bl); + + }else if( (int)(line.find(""))!=-1 ) { + + item->SetColors(greyvect,redvect,greenvect,bluevect); + item->SetTransferFunction(greyvecttransfunct,value); + /*for(int i = 0; i < greyvecttransfunct.size();i++){ std::cout<<"HistogramDialogComboBox::OnLoadComboBoxData("<& greylevel,std::vector& value) -{ - for(int i = 0; i < _greyvecttransfer.size();i++){ +{ + for(int i = 0; i < _greyvecttransfer.size();i++) { greylevel.push_back(_greyvecttransfer[i]*_maxgreyvalue); value.push_back(_value[i]); - - } } @@ -406,11 +426,10 @@ void HistogramDialogComboBox::GetValuesColorPointsFunction(std::vector& std::vector& green, std::vector& blue) { - - for(int i = 0; i < _greyvect.size();i++){ + for(int i = 0; i < _greyvect.size();i++) { greylevel.push_back(_greyvect[i]*_maxgreyvalue); red.push_back(_redvect[i]); green.push_back(_greenvect[i]); - blue.push_back(_bluevect[i]); + blue.push_back(_bluevect[i]); } -} \ No newline at end of file +}