1 /*=========================================================================
4 Module: $RCSfile: wxQuantificationWidget_base.h,v $
6 Date: $Date: 2009/05/14 13:54:57 $
7 Version: $Revision: 1.1 $
9 Copyright: (c) 2002, 2003
12 This software is distributed WITHOUT ANY WARRANTY; without even
13 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 PURPOSE. See the above copyright notice for more information.
16 =========================================================================*/
18 #ifndef __WX__MARACAS__QUANTIF__WDG__BASE__HXX__
19 #define __WX__MARACAS__QUANTIF__WDG__BASE__HXX__
22 #include "vtk3DQuantSurfaceWidget.h"
23 #include "vtk2DQuantSliceWidget.h"
24 #include "wxImageViewerWidget.h"
29 #include <wx/slider.h>
31 #include <wx/minifram.h>
32 #include <wx/splitter.h>
33 #include <kernel/marInterface.h>
36 //------------------------------------------------------------------------
37 //------------------------------------------------------------------------
40 //------------------------------------------------------------------------
41 //------------------------------------------------------------------------
42 //------------------------------------------------------------------------
46 class wxQuantificationWidget_base : public wxPanel, public InterfaceVtkPanelWidgets
50 // Constructor & Destructor
51 wxQuantificationWidget_base(wxWindow* parent, wxWindowID id,
52 const wxPoint& pos, const wxSize& size, long style,
53 const wxString& name);
55 virtual ~wxQuantificationWidget_base();
57 virtual void SetManualContour_ReplaceContour();
58 virtual void SetManualContour_2DWorld(bool ok);
59 virtual void SetManualContour_AddPoint_2DWorld();
60 virtual void SetAnalysisTypeStenosis(int analysisTypeStenosis);
61 virtual int GetActualSlice();
62 virtual void SetHealthySlice(int healthySlice=-1);
63 virtual void GetSliceLimites(int type, int &sliceStart,int &sliceEnd);
64 virtual void Set3DStartRegionSliceActor( int type, int k );
65 virtual void RefreshAxis( );
66 virtual kVolume *GetVolumeAxisExtended(int wz1,int wz2);
67 virtual int GetMaxActualSlice();
68 virtual void Set3DRegionSliceActor( int type, int k1,int k2 );
69 virtual void DetectHealthySickSlice( bool minSurf , bool maxSurf );
70 virtual void Show3DStartRegionSliceActor(int type );
71 virtual void Set3DEndRegionSliceActor( int type, int k );
72 virtual void Show3DEndRegionSliceActor(int type );
73 virtual void Hide3DStartRegionSliceActor(int type );
74 virtual void Hide3DEndRegionSliceActor(int type );
75 virtual int GetSizeHealthyRegion();
76 virtual void SetSizeHealthyRegion(int size);
77 virtual int GetHealthySlice();
78 virtual void OnContourWall();
79 virtual void OnContourLumen();
80 virtual void OnContourHypo();
81 virtual void OnContourCalc();
82 virtual void OnReplaceContourWall();
83 virtual void OnReplaceContourLumen();
84 virtual void OnReplaceContourHypo();
85 virtual void OnReplaceContourCalc();
86 virtual void OnSliderDiscontinuityScroll(int percentage);
87 virtual void OnSliderLumenPercentageScroll(int percentage);
88 virtual void OnSliderCalcPercentageScroll(int percentage);
89 virtual void OnCalibration();
90 virtual void OnFile();
91 virtual void OnShowAll(bool value);
92 virtual void OnShowWall(bool value);
93 virtual void OnShowLumen(bool value);
94 virtual void OnShowCalc(bool value);
95 virtual void OnShowHypo(bool value);
104 //------------------------------------------------------------------------
105 //------------------------------------------------------------------------
106 class wxPnlSearchStenosisAutomatic: public wxPanel{
108 wxPnlSearchStenosisAutomatic(wxWindow* parent, wxQuantificationWidget_base *quantificationWidget_base);
109 void OnBtHealthySlice(wxCommandEvent& event);
110 void OnBtEndRegion(wxCommandEvent& event);
111 void OnBtStart(wxCommandEvent& event);
112 void OnBtPlus(wxCommandEvent& event);
113 void OnBeginSlider(wxScrollEvent& event);
114 void OnEndSlider(wxScrollEvent& event);
115 void OnBtMaxSurf(wxCommandEvent& event);
116 void OnRbArea(wxCommandEvent& event);
117 void OnRbDiameter(wxCommandEvent& event);
118 void OnBtAxisMPR(wxCommandEvent& event);
120 void SetRange(int min, int max);
123 wxQuantificationWidget_base *_quantificationWidget_base;
125 // wxStaticText *_st1_blank;
126 wxStaticText *_st1_text1;
127 wxStaticText *_st1_next1;
128 wxStaticText *_st1_next2;
129 wxStaticText *_st1_next3;
130 wxStaticText *_st1_cero;
131 wxStaticText *_st1_one;
132 wxStaticText *_st1_two;
133 wxStaticText *_st1_three;
134 wxButton *_bt1_HealthySlice;
135 wxButton *_bt1_EndRegion;
136 wxButton *_bt1_Start;
140 wxPanel *_panelSpecial;
141 wxStaticText *_st_BeginRegion;
142 wxStaticText *_st_EndRegion;
143 wxSlider *_sl_BeginRegion;
144 wxSlider *_sl_EndRegion;
145 wxRadioButton *_rb_diameter;
146 wxRadioButton *_rb_surface;
147 wxButton *_bt_MaxSurface;
150 //------------------------------------------------------------------------
151 //------------------------------------------------------------------------
152 class wxPnlSearchStenosisManual : public wxPanel{
154 wxPnlSearchStenosisManual(wxWindow* parent, wxQuantificationWidget_base *quantificationWidget_base);
155 void OnBtHealthySlice(wxCommandEvent& event);
158 wxQuantificationWidget_base *_quantificationWidget_base;
159 // wxStaticText *_st2_blank;
160 wxStaticText *_st2_text1;
161 wxStaticText *_st2_text2;
162 wxStaticText *_st2_next1;
163 wxStaticText *_st2_next2;
164 wxStaticText *_st2_cero;
165 wxStaticText *_st2_one;
166 wxStaticText *_st2_two;
167 wxButton *_bt2_HealthySlice;
169 //------------------------------------------------------------------------
170 //------------------------------------------------------------------------
171 class wxPnlSearchStenosis : public wxPanel{
173 wxPnlSearchStenosis(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base);
174 void OnRbAutomatic(wxCommandEvent& event);
175 void OnRbManual(wxCommandEvent& event);
176 wxPnlSearchStenosisAutomatic* GetPanelAutomatic();
179 wxQuantificationWidget_base *_quantificationWidget_base;
180 // Automatic Stenosis Quantification Panel
181 wxPnlSearchStenosisAutomatic *_panelAutomatic;
182 // Manual Stenosis Quantification Panel
183 wxPanel *_panelManual;
185 //------------------------------------------------------------------------
186 //------------------------------------------------------------------------
188 class wxPanelSizeHealthyRegion : public wxPanel {
190 wxPanelSizeHealthyRegion(wxWindow* parent, wxQuantificationWidget_base *quantificationWidget_base);
192 wxQuantificationWidget_base *_quantificationWidget_base;
195 void OnButtonRefresh(wxScrollEvent& event);
197 //------------------------------------------------------------------------
198 //------------------------------------------------------------------------
199 class wxPnlModifyContour : public wxPanel{
201 wxPnlModifyContour(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base);
202 void OnNewContour(wxCommandEvent& event);
203 void OnFixContour(wxCommandEvent& event);
207 wxQuantificationWidget_base *_quantificationWidget_base;
208 wxButton *_newContour;
209 wxButton *_editContour;
210 wxButton *_fixContour;
211 wxButton *_cancelContour;
212 wxRadioButton *_insert;
213 wxRadioButton *_erase;
214 wxRadioButton *_move;
218 wxStaticText *_three;
224 //------------------------------------------------------------------------
225 //------------------------------------------------------------------------
226 //------------------------------------------------------------------------
227 class wxPanelControlsHealthySickSlice2 : public wxPanel{
229 wxPanelControlsHealthySickSlice2(wxWindow* parent , wxQuantificationWidget_base *quantificationWidget_base);
230 wxPnlSearchStenosis *GetPnlSearStenosis();
232 wxPnlSearchStenosis *wxpnlsearchstenosis;
235 //------------------------------------------------------------------------
236 //------------------------------------------------------------------------
237 //------------------------------------------------------------------------
238 class wxPnlContourControl : public wxPanel{
242 wxPnlContourControl(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base);
243 void OnSliderDiscontinuityScroll(wxScrollEvent& event);
244 void OnSliderLumenPercentageScroll(wxScrollEvent& event);
245 void OnSliderCalcPercentageScroll(wxScrollEvent& event);
246 void OnCalibration(wxScrollEvent& event);
247 void OnFile(wxScrollEvent& event);
250 wxQuantificationWidget_base *_quantificationWidget_base;
251 wxSlider *_sl_Discontinuity;
252 wxSlider *_sl_LumenPercentage;
253 wxSlider *_sl_CalcPercentage;
254 wxButton *btnCalibration;
257 wxStaticText *_st_Discontinuity;
258 wxStaticText *_st_LumenPercentage;
259 wxStaticText *_st_CalcPercentage;
262 //------------------------------------------------------------------------
263 //------------------------------------------------------------------------
264 //------------------------------------------------------------------------
265 class wxPanelControlsHealthySickSliceCT : public wxPanel{
267 wxPanelControlsHealthySickSliceCT(wxWindow* parent , wxQuantificationWidget_base *quantificationWidget_base);
272 //------------------------------------------------------------------------
273 //------------------------------------------------------------------------
274 //------------------------------------------------------------------------
275 class wxPnlManualContour : public wxPanel{
277 wxPnlManualContour(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base);
278 void OnContourWall(wxCommandEvent& event);
279 void OnContourLumen(wxCommandEvent& event);
280 void OnContourHypo(wxCommandEvent& event);
281 void OnContourCalc(wxCommandEvent& event);
282 void OnReplaceContourWall(wxCommandEvent& event);
283 void OnReplaceContourLumen(wxCommandEvent& event);
284 void OnReplaceContourHypo(wxCommandEvent& event);
285 void OnReplaceContourCalc(wxCommandEvent& event);
286 void OnShowAll(wxCommandEvent& event);
287 void OnShowWall(wxCommandEvent& event);
288 void OnShowLumen(wxCommandEvent& event);
289 void OnShowCalc(wxCommandEvent& event);
290 void OnShowHypo(wxCommandEvent& event);
293 wxQuantificationWidget_base *_quantificationWidget_base;
294 wxButton *btnContourWall;
295 wxButton *btnContourLumen;
296 wxButton *btnContourCalc;
297 wxButton *btnContourHypo;
298 wxButton *btnContourAB;
299 wxButton *fixContourWall;
300 wxButton *fixContourLumen;
301 wxButton *fixContourCalc;
302 wxButton *fixContourHypo;
303 wxCheckBox *cbShowAllManual;
304 wxCheckBox *cbShowWall;
305 wxCheckBox *cbShowLumen;
306 wxCheckBox *cbShowCalc;
307 wxCheckBox *cbShowHypo;
311 #endif // __WX__MARACAS__QUANTIF__WDG__BASE__HXX__