]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialogComboBox.h
*** empty log message ***
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / pPlotter / HistogramDialogComboBox.h
1
2 #ifndef __HistogramDialogComboBox__
3 #define __HistogramDialogComboBox__
4
5
6 // ----------------------------------------------------------------------------
7 // wx headers inclusion.
8 // For compilers that support precompilation, includes <wx/wx.h>.
9 // ----------------------------------------------------------------------------
10
11 #ifdef __BORLANDC__
12 #pragma hdrstop
13 #endif
14
15 #include <wx/wx.h>
16 #include <vector>
17
18 #include "HistogramDialogComboBoxItem.h"
19 #include <fstream>
20 #include <wx/bmpcbox.h>
21 #include "vtkImageData.h"
22
23
24 #define FILENAME "/Data/colorsfunction.txt"
25
26
27 class HistogramDialogComboBox : public wxPanel
28 {
29 public:
30         /*
31          Constructor
32         */
33         HistogramDialogComboBox(wxWindow* parent);
34         //HistogramDialogComboBox(int bar_width,int bar_height);
35         ~HistogramDialogComboBox();
36
37         void SetColors(std::vector<double> greyvect, std::vector<double> redvect, std::vector<double> greenvect, std::vector<double> bluevect);
38         wxBitmap GetBitmap();
39
40         std::vector<double> getGreyVector(){return _greyvect;}
41         std::vector<double> getRedVector(){return _redvect;}
42         std::vector<double> getGreenVector(){return _greenvect;}
43         std::vector<double> getBlueVector(){return _bluevect;}
44
45         void OnEditBitmapCombo(wxCommandEvent& event);
46         void OnBitmapComboItemSelected(wxCommandEvent& event);
47
48         void OnColorLevelChanged(wxCommandEvent& event);        
49         void OnWindowLevelChanged(wxCommandEvent& event);       
50
51         void setImageData(vtkImageData* img);
52
53         /**
54         **      Returns two vectors, the grey level of the point and its value, the value is between [0,1]
55         **/
56         void GetValuesPointsFunction(std::vector<double>& greylevel,std::vector<double>& value);
57
58         /**
59         **      Returns two vectors, the grey level of the point and its value, the red, green
60         **      and blue value is between [0,1]
61         **/
62         void GetValuesColorPointsFunction(std::vector<double>& greylevel,
63                                                                         std::vector<double>& red,
64                                                                         std::vector<double>& green,
65                                                                         std::vector<double>& blue);
66
67         double GetWindowLevel();
68         double GetColorLevel();
69
70 private:
71
72         std::vector<double> _greyvect;
73         std::vector<double> _redvect;
74         std::vector<double> _greenvect;
75         std::vector<double> _bluevect;
76         std::vector<double> _greyvecttransfer;
77         std::vector<double> _value;
78         vtkImageData* _img;
79         double _maxgreyvalue;
80         int _currentitem;       
81
82         /*
83         * Represents the color of the backGround. Default color is the parent color. 
84         */              
85
86         wxBitmapComboBox*       _bitmapcombo;
87         wxSlider*       _slidercolor;
88         wxSlider*       _sliderwindowlevel;
89         std::vector<HistogramDialogComboBoxItem*> _bitmapsitems;
90         wxBitmap* colorBar_Bitmap;
91         wxSizer* _bitmapsizer;
92
93         wxSizer* getBitmapCombo();
94         wxSizer* getSlidersWlCo();
95         wxBitmapComboBox* getBitmapComboElements();
96         void OnLoadComboBoxData(std::vector<HistogramDialogComboBoxItem*>& itembitmaps,std::string filename);
97         void saveCurrentConfiguration(std::vector<HistogramDialogComboBoxItem*>& itembitmaps,std::string filename);
98         void setSlidersValue();
99
100
101         
102 };
103
104 #endif
105
106
107