]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/include/wxQuantificationWidget_base.h
Support #1768 CREATIS Licence insertion
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / include / wxQuantificationWidget_base.h
1 /*# ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
4 #                        pour la Sant�)
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
8 #
9 #  This software is governed by the CeCILL-B license under French law and
10 #  abiding by the rules of distribution of free software. You can  use,
11 #  modify and/ or redistribute the software under the terms of the CeCILL-B
12 #  license as circulated by CEA, CNRS and INRIA at the following URL
13 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
14 #  or in the file LICENSE.txt.
15 #
16 #  As a counterpart to the access to the source code and  rights to copy,
17 #  modify and redistribute granted by the license, users are provided only
18 #  with a limited warranty  and the software's author,  the holder of the
19 #  economic rights,  and the successive licensors  have only  limited
20 #  liability.
21 #
22 #  The fact that you are presently reading this means that you have had
23 #  knowledge of the CeCILL-B license and that you accept its terms.
24 # ------------------------------------------------------------------------ */
25
26 /*=========================================================================
27
28   Program:   wxMaracas
29   Module:    $RCSfile: wxQuantificationWidget_base.h,v $
30   Language:  C++
31   Date:      $Date: 2012/11/15 14:15:18 $
32   Version:   $Revision: 1.2 $
33
34   Copyright: (c) 2002, 2003
35   License:
36   
37      This software is distributed WITHOUT ANY WARRANTY; without even 
38      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
39      PURPOSE.  See the above copyright notice for more information.
40
41 =========================================================================*/
42
43 #ifndef __WX__MARACAS__QUANTIF__WDG__BASE__HXX__
44 #define __WX__MARACAS__QUANTIF__WDG__BASE__HXX__
45
46
47 #include "vtk3DQuantSurfaceWidget.h"
48 #include "vtk2DQuantSliceWidget.h"
49 #include "wxImageViewerWidget.h"
50
51 #include "wxChart.h"
52
53 #include <wx/wx.h>
54 #include <wx/slider.h>
55 #include <wx/panel.h>
56 #include <wx/minifram.h>
57 #include <wx/splitter.h>
58 #include <kernel/marInterface.h>
59
60
61 //------------------------------------------------------------------------
62 //------------------------------------------------------------------------
63
64
65 //------------------------------------------------------------------------
66 //------------------------------------------------------------------------
67 //------------------------------------------------------------------------
68
69
70
71 class wxQuantificationWidget_base : public wxPanel, public InterfaceVtkPanelWidgets
72 {
73 public:
74
75         // Constructor &  Destructor
76         wxQuantificationWidget_base(wxWindow* parent, wxWindowID id,
77                                                const wxPoint& pos, const wxSize& size, long style,
78                                                const wxString& name);
79   
80         virtual ~wxQuantificationWidget_base();
81
82         virtual void SetManualContour_ReplaceContour();
83         virtual void SetManualContour_2DWorld(bool ok);
84     virtual void SetManualContour_AddPoint_2DWorld();
85         virtual void SetAnalysisTypeStenosis(int analysisTypeStenosis);
86         virtual int  GetActualSlice();
87         virtual void SetHealthySlice(int healthySlice=-1);      
88         virtual void GetSliceLimites(int type, int &sliceStart,int &sliceEnd);
89         virtual void Set3DStartRegionSliceActor( int type, int k );
90         virtual void RefreshAxis( );
91         virtual kVolume *GetVolumeAxisExtended(int wz1,int wz2);
92         virtual int  GetMaxActualSlice();
93         virtual void Set3DRegionSliceActor( int type, int k1,int k2 );
94         virtual void DetectHealthySickSlice( bool minSurf , bool maxSurf );
95         virtual void Show3DStartRegionSliceActor(int type );
96         virtual void Set3DEndRegionSliceActor( int type, int k );
97         virtual void Show3DEndRegionSliceActor(int type );
98         virtual void Hide3DStartRegionSliceActor(int type );
99         virtual void Hide3DEndRegionSliceActor(int type );
100         virtual int  GetSizeHealthyRegion();
101         virtual void SetSizeHealthyRegion(int size);
102         virtual int  GetHealthySlice();
103         virtual void OnContourWall();
104         virtual void OnContourLumen();
105         virtual void OnContourHypo();
106         virtual void OnContourCalc();
107         virtual void OnReplaceContourWall();
108         virtual void OnReplaceContourLumen();
109         virtual void OnReplaceContourHypo();
110         virtual void OnReplaceContourCalc();
111         virtual void OnSliderDiscontinuityScroll(int percentage);
112         virtual void OnSliderLumenPercentageScroll(int percentage);
113         virtual void OnSliderCalcPercentageScroll(int percentage);
114         virtual void OnCalibration(); 
115         virtual void OnFile();
116         virtual void OnShowAll(bool value); 
117         virtual void OnShowWall(bool value);
118         virtual void OnShowLumen(bool value);
119         virtual void OnShowCalc(bool value);
120         virtual void OnShowHypo(bool value);
121         
122
123 private:
124
125
126
127 };
128
129 //------------------------------------------------------------------------
130 //------------------------------------------------------------------------
131 class wxPnlSearchStenosisAutomatic: public wxPanel{
132 public:
133         wxPnlSearchStenosisAutomatic(wxWindow* parent, wxQuantificationWidget_base *quantificationWidget_base);
134         void OnBtHealthySlice(wxCommandEvent& event);
135         void OnBtEndRegion(wxCommandEvent& event);
136         void OnBtStart(wxCommandEvent& event);
137         void OnBtPlus(wxCommandEvent& event);
138         void OnBeginSlider(wxScrollEvent& event);
139         void OnEndSlider(wxScrollEvent& event);
140         void OnBtMaxSurf(wxCommandEvent& event);
141         void OnRbArea(wxCommandEvent& event);
142         void OnRbDiameter(wxCommandEvent& event);
143         void OnBtAxisMPR(wxCommandEvent& event);
144
145         void SetRange(int min, int max);
146
147 private:
148         wxQuantificationWidget_base                             *_quantificationWidget_base;
149
150 //    wxStaticText      *_st1_blank;
151     wxStaticText        *_st1_text1;
152     wxStaticText        *_st1_next1;
153     wxStaticText        *_st1_next2;
154     wxStaticText        *_st1_next3;
155     wxStaticText        *_st1_cero;
156     wxStaticText        *_st1_one;
157     wxStaticText        *_st1_two;
158     wxStaticText        *_st1_three;
159     wxButton            *_bt1_HealthySlice;
160     wxButton            *_bt1_EndRegion;
161     wxButton            *_bt1_Start;
162
163         // Special Panel
164         wxButton                *_bt_plus;
165         wxPanel                 *_panelSpecial;
166         wxStaticText    *_st_BeginRegion;
167         wxStaticText    *_st_EndRegion;
168         wxSlider                *_sl_BeginRegion;
169         wxSlider                *_sl_EndRegion;
170     wxRadioButton       *_rb_diameter;
171     wxRadioButton       *_rb_surface;
172         wxButton                *_bt_MaxSurface;
173
174 }; 
175 //------------------------------------------------------------------------
176 //------------------------------------------------------------------------
177 class wxPnlSearchStenosisManual : public wxPanel{
178 public:
179         wxPnlSearchStenosisManual(wxWindow* parent, wxQuantificationWidget_base *quantificationWidget_base);
180         void OnBtHealthySlice(wxCommandEvent& event);
181
182 private:
183         wxQuantificationWidget_base                             *_quantificationWidget_base;
184 //    wxStaticText      *_st2_blank;
185     wxStaticText        *_st2_text1;
186     wxStaticText        *_st2_text2;
187     wxStaticText        *_st2_next1;
188     wxStaticText        *_st2_next2;
189     wxStaticText        *_st2_cero;
190     wxStaticText        *_st2_one;
191     wxStaticText        *_st2_two;
192     wxButton            *_bt2_HealthySlice;
193 }; 
194 //------------------------------------------------------------------------
195 //------------------------------------------------------------------------
196 class wxPnlSearchStenosis : public wxPanel{
197 public:
198         wxPnlSearchStenosis(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base);
199         void OnRbAutomatic(wxCommandEvent& event);
200         void OnRbManual(wxCommandEvent& event);
201         wxPnlSearchStenosisAutomatic* GetPanelAutomatic();
202
203 private:
204         wxQuantificationWidget_base     *_quantificationWidget_base;
205         // Automatic Stenosis Quantification Panel
206         wxPnlSearchStenosisAutomatic    *_panelAutomatic;
207         // Manual Stenosis Quantification Panel
208         wxPanel                                                 *_panelManual;
209 }; 
210 //------------------------------------------------------------------------
211 //------------------------------------------------------------------------
212
213 class wxPanelSizeHealthyRegion : public wxPanel {
214 public :
215         wxPanelSizeHealthyRegion(wxWindow* parent, wxQuantificationWidget_base *quantificationWidget_base);
216 private:
217         wxQuantificationWidget_base     *_quantificationWidget_base;
218         wxSlider                                        *_sl_Size;
219
220         void OnButtonRefresh(wxScrollEvent& event);
221 };
222 //------------------------------------------------------------------------
223 //------------------------------------------------------------------------
224 class wxPnlModifyContour : public wxPanel{
225 public:
226         wxPnlModifyContour(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base);
227         void OnNewContour(wxCommandEvent& event);
228         void OnFixContour(wxCommandEvent& event);
229
230         
231 private:
232     wxQuantificationWidget_base                         *_quantificationWidget_base;
233         wxButton                *_newContour;
234         wxButton                *_editContour;
235         wxButton                *_fixContour;
236         wxButton                *_cancelContour;
237         wxRadioButton   *_insert;
238         wxRadioButton   *_erase;
239         wxRadioButton   *_move;
240
241         wxStaticText    *_one;
242         wxStaticText    *_two;
243         wxStaticText    *_three;
244         wxStaticText    *_msg;
245
246 }; 
247
248
249 //------------------------------------------------------------------------
250 //------------------------------------------------------------------------
251 //------------------------------------------------------------------------
252 class wxPanelControlsHealthySickSlice2 : public wxPanel{
253 public:
254         wxPanelControlsHealthySickSlice2(wxWindow* parent , wxQuantificationWidget_base *quantificationWidget_base);
255         wxPnlSearchStenosis *GetPnlSearStenosis();
256 private: 
257         wxPnlSearchStenosis                     *wxpnlsearchstenosis;
258 };  
259
260 //------------------------------------------------------------------------
261 //------------------------------------------------------------------------
262 //------------------------------------------------------------------------
263 class wxPnlContourControl : public wxPanel{
264 public:
265
266
267         wxPnlContourControl(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base);
268         void OnSliderDiscontinuityScroll(wxScrollEvent& event);
269         void OnSliderLumenPercentageScroll(wxScrollEvent& event);
270         void OnSliderCalcPercentageScroll(wxScrollEvent& event);
271         void OnCalibration(wxScrollEvent& event);
272         void OnFile(wxScrollEvent& event);
273
274 private:
275         wxQuantificationWidget_base     *_quantificationWidget_base;
276         wxSlider                                        *_sl_Discontinuity;
277         wxSlider                                        *_sl_LumenPercentage;
278         wxSlider                                        *_sl_CalcPercentage;
279         wxButton                                        *btnCalibration;
280         wxButton                                        *btnFile;
281
282         wxStaticText                            *_st_Discontinuity;
283         wxStaticText                            *_st_LumenPercentage;
284         wxStaticText                            *_st_CalcPercentage;
285 };
286
287 //------------------------------------------------------------------------
288 //------------------------------------------------------------------------
289 //------------------------------------------------------------------------
290 class wxPanelControlsHealthySickSliceCT : public wxPanel{
291 public:
292         wxPanelControlsHealthySickSliceCT(wxWindow* parent , wxQuantificationWidget_base *quantificationWidget_base);
293 private: 
294 };
295
296
297 //------------------------------------------------------------------------
298 //------------------------------------------------------------------------
299 //------------------------------------------------------------------------
300 class wxPnlManualContour : public wxPanel{
301 public:
302         wxPnlManualContour(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base);
303         void OnContourWall(wxCommandEvent& event);
304         void OnContourLumen(wxCommandEvent& event);
305         void OnContourHypo(wxCommandEvent& event);
306         void OnContourCalc(wxCommandEvent& event);
307         void OnReplaceContourWall(wxCommandEvent& event);
308         void OnReplaceContourLumen(wxCommandEvent& event);
309         void OnReplaceContourHypo(wxCommandEvent& event);
310         void OnReplaceContourCalc(wxCommandEvent& event);
311         void OnShowAll(wxCommandEvent& event);
312         void OnShowWall(wxCommandEvent& event);
313         void OnShowLumen(wxCommandEvent& event);
314         void OnShowCalc(wxCommandEvent& event);
315         void OnShowHypo(wxCommandEvent& event);
316
317 private:
318         wxQuantificationWidget_base     *_quantificationWidget_base;
319         wxButton                                        *btnContourWall;
320         wxButton                                        *btnContourLumen;
321         wxButton                                        *btnContourCalc;
322         wxButton                                        *btnContourHypo;
323         wxButton                                        *btnContourAB;
324         wxButton                                        *fixContourWall;
325         wxButton                                        *fixContourLumen;
326         wxButton                                        *fixContourCalc;
327         wxButton                                        *fixContourHypo;
328         wxCheckBox                                      *cbShowAllManual; 
329         wxCheckBox                                      *cbShowWall;
330         wxCheckBox                                      *cbShowLumen;
331         wxCheckBox                                      *cbShowCalc;
332         wxCheckBox                                      *cbShowHypo;
333         
334 };
335
336 #endif // __WX__MARACAS__QUANTIF__WDG__BASE__HXX__
337