1 /*# ---------------------------------------------------------------------
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
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
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.
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
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 # ------------------------------------------------------------------------ */
26 /*=========================================================================
29 Module: $RCSfile: wxQuantificationWidget_base.h,v $
31 Date: $Date: 2012/11/15 14:15:18 $
32 Version: $Revision: 1.2 $
34 Copyright: (c) 2002, 2003
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.
41 =========================================================================*/
43 #ifndef __WX__MARACAS__QUANTIF__WDG__BASE__HXX__
44 #define __WX__MARACAS__QUANTIF__WDG__BASE__HXX__
47 #include "vtk3DQuantSurfaceWidget.h"
48 #include "vtk2DQuantSliceWidget.h"
49 #include "wxImageViewerWidget.h"
54 #include <wx/slider.h>
56 #include <wx/minifram.h>
57 #include <wx/splitter.h>
58 #include <kernel/marInterface.h>
61 //------------------------------------------------------------------------
62 //------------------------------------------------------------------------
65 //------------------------------------------------------------------------
66 //------------------------------------------------------------------------
67 //------------------------------------------------------------------------
71 class wxQuantificationWidget_base : public wxPanel, public InterfaceVtkPanelWidgets
75 // Constructor & Destructor
76 wxQuantificationWidget_base(wxWindow* parent, wxWindowID id,
77 const wxPoint& pos, const wxSize& size, long style,
78 const wxString& name);
80 virtual ~wxQuantificationWidget_base();
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);
129 //------------------------------------------------------------------------
130 //------------------------------------------------------------------------
131 class wxPnlSearchStenosisAutomatic: public wxPanel{
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);
145 void SetRange(int min, int max);
148 wxQuantificationWidget_base *_quantificationWidget_base;
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;
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;
175 //------------------------------------------------------------------------
176 //------------------------------------------------------------------------
177 class wxPnlSearchStenosisManual : public wxPanel{
179 wxPnlSearchStenosisManual(wxWindow* parent, wxQuantificationWidget_base *quantificationWidget_base);
180 void OnBtHealthySlice(wxCommandEvent& event);
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;
194 //------------------------------------------------------------------------
195 //------------------------------------------------------------------------
196 class wxPnlSearchStenosis : public wxPanel{
198 wxPnlSearchStenosis(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base);
199 void OnRbAutomatic(wxCommandEvent& event);
200 void OnRbManual(wxCommandEvent& event);
201 wxPnlSearchStenosisAutomatic* GetPanelAutomatic();
204 wxQuantificationWidget_base *_quantificationWidget_base;
205 // Automatic Stenosis Quantification Panel
206 wxPnlSearchStenosisAutomatic *_panelAutomatic;
207 // Manual Stenosis Quantification Panel
208 wxPanel *_panelManual;
210 //------------------------------------------------------------------------
211 //------------------------------------------------------------------------
213 class wxPanelSizeHealthyRegion : public wxPanel {
215 wxPanelSizeHealthyRegion(wxWindow* parent, wxQuantificationWidget_base *quantificationWidget_base);
217 wxQuantificationWidget_base *_quantificationWidget_base;
220 void OnButtonRefresh(wxScrollEvent& event);
222 //------------------------------------------------------------------------
223 //------------------------------------------------------------------------
224 class wxPnlModifyContour : public wxPanel{
226 wxPnlModifyContour(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base);
227 void OnNewContour(wxCommandEvent& event);
228 void OnFixContour(wxCommandEvent& event);
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;
243 wxStaticText *_three;
249 //------------------------------------------------------------------------
250 //------------------------------------------------------------------------
251 //------------------------------------------------------------------------
252 class wxPanelControlsHealthySickSlice2 : public wxPanel{
254 wxPanelControlsHealthySickSlice2(wxWindow* parent , wxQuantificationWidget_base *quantificationWidget_base);
255 wxPnlSearchStenosis *GetPnlSearStenosis();
257 wxPnlSearchStenosis *wxpnlsearchstenosis;
260 //------------------------------------------------------------------------
261 //------------------------------------------------------------------------
262 //------------------------------------------------------------------------
263 class wxPnlContourControl : public wxPanel{
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);
275 wxQuantificationWidget_base *_quantificationWidget_base;
276 wxSlider *_sl_Discontinuity;
277 wxSlider *_sl_LumenPercentage;
278 wxSlider *_sl_CalcPercentage;
279 wxButton *btnCalibration;
282 wxStaticText *_st_Discontinuity;
283 wxStaticText *_st_LumenPercentage;
284 wxStaticText *_st_CalcPercentage;
287 //------------------------------------------------------------------------
288 //------------------------------------------------------------------------
289 //------------------------------------------------------------------------
290 class wxPanelControlsHealthySickSliceCT : public wxPanel{
292 wxPanelControlsHealthySickSliceCT(wxWindow* parent , wxQuantificationWidget_base *quantificationWidget_base);
297 //------------------------------------------------------------------------
298 //------------------------------------------------------------------------
299 //------------------------------------------------------------------------
300 class wxPnlManualContour : public wxPanel{
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);
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;
336 #endif // __WX__MARACAS__QUANTIF__WDG__BASE__HXX__