]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialogComboBox.cxx
{
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / pPlotter / HistogramDialogComboBox.cxx
index 3a997d5d22b75a6a63546958fa5a60b258f6d709..19cbf847bdf706a946971beb4e213cb6293e7e88 100644 (file)
 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");       
 }
 
-HistogramDialogComboBox::~HistogramDialogComboBox(){
-       
-       
+HistogramDialogComboBox::~HistogramDialogComboBox()
+{      
 }
-void HistogramDialogComboBox::SetColors(std::vector<double> greyvect, std::vector<double> redvect, std::vector<double> greenvect, std::vector<double> bluevect){
 
-       _greyvect=greyvect;
-       _redvect=redvect;
-       _greenvect=greenvect;
-       _bluevect=bluevect;
-       
+void HistogramDialogComboBox::SetColors(std::vector<double> greyvect, std::vector<double> redvect, std::vector<double> greenvect, std::vector<double> 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);
@@ -56,15 +52,15 @@ wxSizer* HistogramDialogComboBox::getBitmapCombo(){
        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 +69,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 +125,24 @@ 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("bbcreaMaracasVisu");
+                       std::string currentpath = crea::System::GetDllAppPath(dllLastName);     
                        currentpath.append(FILENAME);
 
                        std::vector<double> redvect,greenvect,bluevect;
@@ -160,29 +163,27 @@ void HistogramDialogComboBox::OnEditBitmapCombo(wxCommandEvent& event){
                }       
                dialog->Destroy();
        }
-       
-
-       
 }
-void HistogramDialogComboBox::saveCurrentConfiguration(std::vector<HistogramDialogComboBoxItem*>& itembitmaps,std::string filename){
 
+void HistogramDialogComboBox::saveCurrentConfiguration(std::vector<HistogramDialogComboBoxItem*>& 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 << "<ComboBoxData>" << std::endl;
-               for(int i = 0; i < itembitmaps.size();i++){
+               for(int i = 0; i < itembitmaps.size();i++)
+               {
                        HistogramDialogComboBoxItem* item = itembitmaps[i];
                        std::vector<double> vecttransfer = item->getGreyVectorTransfer();
                        std::vector<double> value = item->getValueVector();
 
                        file << " <ComboBoxItem>"<< std::endl;
-                       for(int j = 0; j < vecttransfer.size();j++){
+                       for(int j = 0; j < vecttransfer.size();j++)
+                       {
                                if(j==0){
                                        file << " <TransferenceFunction>"<< std::endl;
                                }
@@ -213,27 +214,30 @@ void HistogramDialogComboBox::saveCurrentConfiguration(std::vector<HistogramDial
                                        file << "       </Colors>" << std::endl;
                                }
                        }
-
                        file << "       </ComboBoxItem>"<< std::endl;           
-
                }
-               file << "</ComboBoxData>" << std::endl;
-               
+               file << "</ComboBoxData>" << 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
        currentpath.append(FILENAME);
+       
+       std::cout<<"current file name " <<currentpath<<std::endl;
 
        std::vector<HistogramDialogComboBoxItem*> bitmapsitems;
        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);
@@ -241,36 +245,31 @@ wxBitmapComboBox* HistogramDialogComboBox::getBitmapComboElements(){
 
        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<HistogramDialogComboBoxItem*>& itembitmaps, std::string filename)
@@ -302,86 +301,82 @@ void HistogramDialogComboBox::OnLoadComboBoxData(std::vector<HistogramDialogComb
                        std::getline(file,line);
                        //std::cout<<line<<std::endl;
             if( (int)(line.find("<ComboBoxItem>")!=-1))
-                       {
-                               item = new HistogramDialogComboBoxItem();
-                       }else if((int)(line.find("<greyValue>"))!=-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("<intensity>"))!=-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("<RGBgreyValue>"))!=-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("<red>"))!=-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("<green>"))!=-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("<blue>"))!=-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);
+               {
+                       item = new HistogramDialogComboBoxItem();
+               }else if((int)(line.find("<greyValue>"))!=-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("<intensity>"))!=-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("<RGBgreyValue>"))!=-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("<red>"))!=-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("<green>"))!=-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("<blue>"))!=-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("</ComboBoxItem>"))!=-1 ){
+               }else if( (int)(line.find("</ComboBoxItem>"))!=-1 ) {
 
-                               item->SetColors(greyvect,redvect,greenvect,bluevect);
-                               item->SetTransferFunction(greyvecttransfunct,value);
-                               for(int i = 0; i < greyvecttransfunct.size();i++){
+                       item->SetColors(greyvect,redvect,greenvect,bluevect);
+                       item->SetTransferFunction(greyvecttransfunct,value);
+                       /*for(int i = 0; i < greyvecttransfunct.size();i++){
                                        std::cout<<"HistogramDialogComboBox::OnLoadComboBoxData("<<greyvecttransfunct[i]<<std::endl;
                                        std::cout<<value[i]<<std::endl;
-                               }
-                               for(int i = 0; i < greyvect.size();i++){
+                       }
+                       for(int i = 0; i < greyvect.size();i++){
                                        std::cout<<"HistogramDialogComboBox::OnLoadComboBoxData("<<greyvect[i]<<std::endl;
                                        std::cout<<redvect[i]<<std::endl;
                                        std::cout<<greenvect[i]<<std::endl;
                                        std::cout<<bluevect[i]<<std::endl;
-                               }
+                       }*/
                                
-                               itembitmaps.push_back(item);
-
-
-                               greyvecttransfunct.clear();
-                               value.clear();
-                               greyvect.clear();
-                               redvect.clear();
-                               greenvect.clear();
-                               bluevect.clear();
-
-                       }
-                       
-                       line.clear();
+                       itembitmaps.push_back(item);
+
+                       greyvecttransfunct.clear();
+                       value.clear();
+                       greyvect.clear();
+                       redvect.clear();
+                       greenvect.clear();
+                       bluevect.clear();
                }
-               file.close();                   
-               //std::cout<<itembitmaps.size()<<std::endl;
-     } 
-       
+               line.clear();
+       }
+       file.close();                   
+       //std::cout<<itembitmaps.size()<<std::endl;
+     }         
 }
 
 /**
@@ -389,11 +384,9 @@ void HistogramDialogComboBox::OnLoadComboBoxData(std::vector<HistogramDialogComb
 **/
 void HistogramDialogComboBox::GetValuesPointsFunction(std::vector<double>& greylevel,std::vector<double>& 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]);
-
-               
+               value.push_back(_value[i]);     
        }
 }
 
@@ -405,12 +398,11 @@ void HistogramDialogComboBox::GetValuesColorPointsFunction(std::vector<double>&
                                                                std::vector<double>& red,
                                                                std::vector<double>& green,
                                                                std::vector<double>& 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]);           
        }
-}
\ No newline at end of file
+}