HistogramDialogComboBox::HistogramDialogComboBox(wxWindow* parent)
: wxPanel(parent)
{
+ _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()
+{
+ //_bitmapsizer = new wxBoxSizer(wxVERTICAL);
+ _bitmapsizer = new wxBoxSizer(wxVERTICAL);
-wxSizer* HistogramDialogComboBox::getBitmapCombo(){
- _bitmapsizer = new wxBoxSizer(wxHORIZONTAL);
-
+ 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);
- _bitmapsizer->Add(_bitmapcombo,wxSizerFlags().Center().FixedMinSize());
- _bitmapsizer->Add(edit,wxSizerFlags().Center());
+ 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;
-
}
-void HistogramDialogComboBox::setImageData(vtkImageData* img){
+
+wxSizer* HistogramDialogComboBox::getSlidersWlCo(){
+ wxBoxSizer* sizersliders = new wxBoxSizer(wxVERTICAL);
+
+ _slidercolor = new wxSlider(this, -1,1,0,1,wxDefaultPosition,wxDefaultSize,wxSL_LABELS);
+ _sliderwindowlevel = new wxSlider(this, -1,1,0,1,wxDefaultPosition,wxDefaultSize,wxSL_LABELS);
+
+ sizersliders->Add(_slidercolor,wxSizerFlags().Expand().Center());
+ sizersliders->Add(_sliderwindowlevel,wxSizerFlags().Expand().Center());
+
+ 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();
+ }
+}
+
+void HistogramDialogComboBox::OnColorLevelChanged(wxCommandEvent& event)
+{
+ _slidercolor->GetValue();
+ wxCommandEvent newevent(wxEVT_SCROLL_THUMBTRACK,this->GetId());
+ ProcessEvent(newevent);
+}
+
+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::OnEditBitmapCombo(wxCommandEvent& event){
-
+
+void HistogramDialogComboBox::setSlidersValue()
+{
if(_img!=NULL){
+ if(_slidercolor!=NULL){
+ _slidercolor->SetRange(_img->GetScalarRange()[0],_img->GetScalarRange()[1]);
+ _slidercolor->SetValue((_img->GetScalarRange()[0]+_img->GetScalarRange()[1])/2);
+ }
+ if(_sliderwindowlevel!=NULL){
+ _sliderwindowlevel->SetRange(_img->GetScalarRange()[0],_img->GetScalarRange()[1]);
+ _sliderwindowlevel->SetValue((_img->GetScalarRange()[0]+_img->GetScalarRange()[1])/2);
+ }
+ }
+}
+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();
}
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;
}
file << " </Colors>" << std::endl;
}
}
-
file << " </ComboBoxItem>"<< std::endl;
-
}
- file << "</ComboBoxData>" << std::endl;
-
+ file << "</ComboBoxData>" << std::endl;
}
file.close();
-
}
-wxBitmapComboBox* HistogramDialogComboBox::getBitmapComboElements(){
+wxBitmapComboBox* HistogramDialogComboBox::getBitmapComboElements()
+{
std::string currentpath = crea::System::GetDllAppPath("bbcreaMaracasVisu");
currentpath.append(FILENAME);
_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);
-
- 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)
item->SetColors(greyvect,redvect,greenvect,bluevect);
item->SetTransferFunction(greyvecttransfunct,value);
- for(int i = 0; i < greyvecttransfunct.size();i++){
+ /*for(int i = 0; i < greyvecttransfunct.size();i++){
std::cout<<"HistogramDialogComboBox::OnLoadComboBoxData("<<greyvecttransfunct[i]<<std::endl;
std::cout<<value[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();
}
file.close();
//std::cout<<itembitmaps.size()<<std::endl;
- }
-
+ }
}
/**
{
for(int i = 0; i < _greyvecttransfer.size();i++){
greylevel.push_back(_greyvecttransfer[i]*_maxgreyvalue);
- value.push_back(_value[i]);
-
-
+ value.push_back(_value[i]);
}
}
std::vector<double>& red,
std::vector<double>& green,
std::vector<double>& blue)
-{
-
+{
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
+}