]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialogComboBox.h
c50d11a3d1f9902e45fbed243dd2254690ed422a
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / pPlotter / HistogramDialogComboBox.h
1
2 /*# ---------------------------------------------------------------------
3 #
4 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
5 #                        pour la Sant�)
6 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
7 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
8 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
9 #
10 #  This software is governed by the CeCILL-B license under French law and
11 #  abiding by the rules of distribution of free software. You can  use,
12 #  modify and/ or redistribute the software under the terms of the CeCILL-B
13 #  license as circulated by CEA, CNRS and INRIA at the following URL
14 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
15 #  or in the file LICENSE.txt.
16 #
17 #  As a counterpart to the access to the source code and  rights to copy,
18 #  modify and redistribute granted by the license, users are provided only
19 #  with a limited warranty  and the software's author,  the holder of the
20 #  economic rights,  and the successive licensors  have only  limited
21 #  liability.
22 #
23 #  The fact that you are presently reading this means that you have had
24 #  knowledge of the CeCILL-B license and that you accept its terms.
25 # ------------------------------------------------------------------------ */
26
27 #ifndef __HistogramDialogComboBox__
28 #define __HistogramDialogComboBox__
29
30
31 // ----------------------------------------------------------------------------
32 // wx headers inclusion.
33 // For compilers that support precompilation, includes <wx/wx.h>.
34 // ----------------------------------------------------------------------------
35
36 #ifdef __BORLANDC__
37 #pragma hdrstop
38 #endif
39
40 #include <wx/wx.h>
41 #include <vector>
42
43 #include "HistogramDialogComboBoxItem.h"
44 #include <fstream>
45 #include <wx/bmpcbox.h>
46 #include "vtkImageData.h"
47
48 #ifdef WIN32
49 #define FILENAME "/data/colorsfunction.txt"
50 #else
51 #define FILENAME "colorsfunction.txt"
52 #endif
53
54
55 class HistogramDialogComboBox : public wxPanel
56 {
57 public:
58         /*
59          Constructor
60         */
61         HistogramDialogComboBox(wxWindow* parent);
62         //HistogramDialogComboBox(int bar_width,int bar_height);
63         ~HistogramDialogComboBox();
64
65         void SetColors(std::vector<double> greyvect, std::vector<double> redvect, std::vector<double> greenvect, std::vector<double> bluevect);
66         wxBitmap GetBitmap();
67
68         std::vector<double> getGreyVector(){return _greyvect;}
69         std::vector<double> getRedVector(){return _redvect;}
70         std::vector<double> getGreenVector(){return _greenvect;}
71         std::vector<double> getBlueVector(){return _bluevect;}
72
73         void OnEditBitmapCombo(wxCommandEvent& event);
74         void OnBitmapComboItemSelected(wxCommandEvent& event);
75
76         void OnColorLevelChanged(wxCommandEvent& event);        
77         void OnWindowLevelChanged(wxCommandEvent& event);       
78
79         void setImageData(vtkImageData* img);
80
81         /**
82         **      Returns two vectors, the grey level of the point and its value, the value is between [0,1]
83         **/
84         void GetValuesPointsFunction(std::vector<double>& greylevel,std::vector<double>& value);
85
86         /**
87         **      Returns two vectors, the grey level of the point and its value, the red, green
88         **      and blue value is between [0,1]
89         **/
90         void GetValuesColorPointsFunction(std::vector<double>& greylevel,
91                                                                         std::vector<double>& red,
92                                                                         std::vector<double>& green,
93                                                                         std::vector<double>& blue);
94
95         double GetWindowLevel();
96         double GetColorLevel();
97
98 private:
99
100         std::vector<double> _greyvect;
101         std::vector<double> _redvect;
102         std::vector<double> _greenvect;
103         std::vector<double> _bluevect;
104         std::vector<double> _greyvecttransfer;
105         std::vector<double> _value;
106         vtkImageData* _img;
107         double _maxgreyvalue;
108         int _currentitem;       
109
110         /*
111         * Represents the color of the backGround. Default color is the parent color. 
112         */              
113
114         wxBitmapComboBox*       _bitmapcombo;
115         wxSlider*       _slidercolor;
116         wxSlider*       _sliderwindowlevel;
117         std::vector<HistogramDialogComboBoxItem*> _bitmapsitems;
118         wxBitmap* colorBar_Bitmap;
119         wxSizer* _bitmapsizer;
120
121         wxSizer* getBitmapCombo();
122         wxSizer* getSlidersWlCo();
123         wxBitmapComboBox* getBitmapComboElements();
124         void OnLoadComboBoxData(std::vector<HistogramDialogComboBoxItem*>& itembitmaps,std::string filename);
125         void saveCurrentConfiguration(std::vector<HistogramDialogComboBoxItem*>& itembitmaps,std::string filename);
126         void setSlidersValue();
127
128
129         
130 };
131
132 #endif
133
134
135