]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxSTLWidget_03.h
*** empty log message ***
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxSTLWidget_03.h
1
2 #ifndef WX_STL_WIDGET_03
3 #define WX_STL_WIDGET_03
4
5 #include <vector>
6
7 #include <vtkImageData.h>
8 #include <vtkActor.h>
9 #include <vtkMarchingCubes.h>
10 #include <vtkPolyDataMapper.h>
11 #include <vtkAppendFilter.h>
12 #include <vtkImageThreshold.h>
13 #include <vtkExtractVOI.h>
14 #include <vtkOutlineFilter.h>
15 #include <vtkImageSeedConnectivity.h>
16 #include <vtkImageCast.h>
17
18 #include "wxVTKRenderWindowInteractor.h"
19 //#include "wxSurfaceWidget.h"
20 #include "wxVtkBaseView.h"
21
22
23 #include "../wxMaracasMPR.h"
24 #include "pPlotter/mBarRange.h"//SIL//
25
26 //#include <marInterface.h>
27 //#include <include/axisExtractor02.h>
28
29
30 #include "vtkSTLExtractor.h"    
31 #include "include/vtkJoiner.h"
32
33 #include "marTypes.h"
34
35
36
37
38 //------------------------------------------------------------------
39 //------------------------------------------------------------------
40 //------------------------------------------------------------------
41
42 class creaMaracasVisu_EXPORT wxSTLWidget_03: public wxPanel{
43 public:
44         wxSTLWidget_03(wxWindow *parentmar);//,marInterface *mar);
45         ~wxSTLWidget_03();
46         void ConfigureVTK();
47         void Refresh();
48
49         void OnOpacity_Vol(wxScrollEvent& event);               // Result Volume 
50         void OnMinSpin ( wxScrollEvent & event );
51         void OnMaxSpin ( wxScrollEvent & event ); 
52
53         //SIL new// 
54         void OnRangeSpin( wxScrollEvent & event );
55
56         //Handled events form the bar
57         void OnStartChanged_range(wxCommandEvent& event);
58         void OnEndChanged_range(wxCommandEvent& event);
59         void OnBarMoved_range(wxCommandEvent& event);
60
61
62         void OnBtnExtraction(wxCommandEvent& event);
63         void OnBtnSaveBinaryFile(wxCommandEvent& event);
64
65         //
66         void Reset_vtk_STLFile();
67         void OnBtnSTLFileLoad(wxCommandEvent& event);
68         void OnBtnSTLFileErase(wxCommandEvent& event);
69         void OnOpacitySTLFile(wxScrollEvent& event);            
70
71
72         // --------------------------------------
73         // STL FUNCTIONS DHC
74         // --------------------------------------
75         void generateSTLSurfaces();
76         void OnBtnCreateFileSTL(wxCommandEvent& event); 
77         void OnChangeSTLGaussLevel(wxScrollEvent& event);
78         void OnChangeSTLMarchingCubesLevel(wxScrollEvent& event);
79         void OnOpacitySTLExternal(wxScrollEvent& event);
80         void OnOpacitySTLInternal(wxScrollEvent& event);
81
82         
83         //---------------------------------------
84         // JOIN REGIONS FUNCTIONS
85         //---------------------------------------
86         void OnJoinRegions(wxCommandEvent& event);
87
88         //JCP 01-03-08
89         void setImage(vtkImageData* img);
90
91 private:
92
93         //Processing
94         vtkImageData                            *_imagedata;
95         double                                          _range[2];
96         vtkImageCast                            *cast2;
97         vtkImageCast                            *cast3;
98         vtkImageCast                            *cast4; // binary segmentation result
99         vtkImageThreshold                       *_thresh;
100         vtkImageThreshold                       *_thresh2;
101         vtkImageCast * _cast;
102         vtkImageSeedConnectivity        *_connect;
103         vtkImageSeedConnectivity        *_connect2;
104
105
106
107         vtkPolyDataMapper       *_2_mapfinal;
108         vtkActor                        *_2_stripfinal;
109         vtkPolyDataMapper       *_2_isoMapperMC6;
110         vtkActor                        *_2_isoActorMC6;
111         vtkMarchingCubes        *_2_isoMC6;
112         double                          _sensibility_JF;
113         int                                     _maxSize;
114         int                                     _minSize;
115
116         // Load STL file
117         vtkPolyDataMapper *_loadSTLMapper;
118         vtkActor                  *_loadActorSTL;
119
120
121         wxSlider                        *_opacity_Vol;
122         wxSlider                        *_sl_minSize;
123         wxSlider                        *_sl_maxSize;
124         wxSlider                        *_sl_minSizeSpin;
125         wxSlider                        *_sl_maxSizeSpin;
126         wxSlider                        *_sl_RangeSizeSpin;
127
128         
129         /*
130         * Represents the bar of min and max for merging the functionality of two sliders for controlling the segmentation parameters
131         */
132         mBarRange                       * sl_barrange_segmentation;
133         int                                     lastResizeRef_Value;
134         int                                     minRangeValue;
135         int                                     maxRangeValue;
136         
137         wxVtk3DBaseView         *_imageviewer3D;
138         wxPanel                         *CreateControlPanel(wxWindow *parent);
139         wxPanel                         *CreateViewPanel(wxWindow *parent);
140
141         //Maracas
142         //marInterface          *_mar;
143         wxMaracasMPR            *_wxMaracasMPR;
144
145         void ResetTree2_JF();
146         void ExtractSurface(int x, int y, int z);
147
148         wxWindow* CreateSelectAPointPanel(wxWindow *parent);
149         wxWindow* CreateSegmentationPanel(wxWindow *parent);
150         wxWindow* CreateSmoothingPanel(wxWindow *parent);
151         wxWindow* CreateReadSTLFilePanel(wxWindow *parent);
152
153         //---------------------
154         // Processing
155         //---------------------
156         void ConfigureProcessing(vtkImageData *img, int x, int y, int z);
157
158
159         //---------------------
160         // STL SURFACES DHC
161         //---------------------
162         void            ConfigureSTL();
163         double          _stlDeltaGaussLevel;
164         double          _stlMarchingCubesLevel;
165
166         
167         vtkPolyData *stlInterna;
168         vtkPolyData *stlExterna;
169         
170         wxSlider        *stlSliderDeltaGauss;
171         wxSlider        *stlSliderMarchingCubes;
172         
173         vtkPolyDataMapper *dsm1;
174     vtkActor    *actorInternal;
175         wxSlider        *stlSliderOpacityInternal;
176     
177         vtkPolyDataMapper *dsm2; 
178     vtkActor    *actorExternal;
179         wxSlider        *stlSliderOpacityExternal;
180
181         vtkSTLExtractor *stlExtractor;   
182
183         wxSlider        *_sl_opacity_STL_file;
184
185
186
187         //--------------------------
188         // JOIN REGIONS
189         //--------------------------
190
191         vtkImageData            *arteryImageData;
192         vtkJoiner                       *joiner;
193         vtkMarchingCubes        *joinMarchingCubes;
194     vtkPolyDataMapper   *joinMapper; 
195         vtkActor                        *joinActor; 
196
197 };
198
199 #endif // WX_STL_WIDGET_03
200
201
202
203