]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/include/wxSTLWidget_02.h
858948ae064425ab2966abdd1c73ed57e9b96d10
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / include / wxSTLWidget_02.h
1
2 #ifndef WX_STL_WIDGET_02
3 #define WX_STL_WIDGET_02
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
25 #include <kernel/marInterface.h>
26 #include <kernel/axisExtractor02.h>
27
28
29 #include "kernel/vtkSTLExtractor.h"    
30 #include "kernel/vtkJoiner.h"
31
32
33
34
35 //------------------------------------------------------------------
36 //------------------------------------------------------------------
37 //------------------------------------------------------------------
38
39 class wxSTLWidget_02: public wxPanel{
40 public:
41         wxSTLWidget_02(wxWindow *parentmar,marInterface *mar);
42         ~wxSTLWidget_02();
43         void ConfigureVTK();
44         void Refresh();
45
46         void OnOpacity_Res2VolJF(wxScrollEvent& event);         // Result 2 Volume JF
47
48
49         void OnBtnExtractTree2_JF(wxCommandEvent& event);
50         void OnBtnEraseTree2_JF(wxCommandEvent& event);
51
52         void OnSensibility(wxScrollEvent& event);
53         void OnMaxSphereSize_JF(wxScrollEvent& event);          // radio Max
54         void OnMinSphereSize_JF(wxScrollEvent& event);          // radio Min
55
56         //
57         void Reset_vtk_STLFile();
58         void OnBtnSTLFileLoad(wxCommandEvent& event);
59         void OnBtnSTLFileErase(wxCommandEvent& event);
60         void OnOpacitySTLFile(wxScrollEvent& event);            
61
62
63         // --------------------------------------
64         // STL FUNCTIONS DHC
65         // --------------------------------------
66         void generateSTLSurfaces();
67         void OnBtnCreateFileSTL(wxCommandEvent& event); 
68         void OnChangeSTLGaussLevel(wxScrollEvent& event);
69         void OnChangeSTLMarchingCubesLevel(wxScrollEvent& event);
70         void OnOpacitySTLExternal(wxScrollEvent& event);
71         void OnOpacitySTLInternal(wxScrollEvent& event);
72
73         //---------------------------------------
74         // JOIN REGIONS FUNCTIONS
75         //---------------------------------------
76         void OnJoinRegions(wxCommandEvent& event);
77
78 private:
79
80
81         // Result 1 volume + Axis   
82 //      vtkPolyDataMapper       *_1_mapfinal;
83 //      vtkActor                        *_1_stripfinal;
84 //      vtkPolyDataMapper       *_1_isoMapperMC6;
85 //      vtkActor                        *_1_isoActorMC6;
86 //      vtkMarchingCubes        *_1_isoMC6;
87
88         // Result 2 volume + Axis   
89         axisExtractor02         *_2_prgov;
90         vtkPolyDataMapper       *_2_mapfinal;
91         vtkActor                        *_2_stripfinal;
92         vtkPolyDataMapper       *_2_isoMapperMC6;
93         vtkActor                        *_2_isoActorMC6;
94         vtkMarchingCubes        *_2_isoMC6;
95         double                          _sensibility_JF;
96         int                                     _maxSphereSize_JF;
97         int                                     _minSphereSize_JF;
98
99         // Load STL file
100         vtkPolyDataMapper *_loadSTLMapper;
101         vtkActor                  *_loadActorSTL;
102
103
104         wxSlider                        *_opacity_Res2VolJF;
105         wxSlider                        *_sl_sensibility_JF;
106         wxSlider                        *_sl_maxSphereSize_JF;
107         wxSlider                        *_sl_minSphereSize_JF;
108         
109         wxVtk3DBaseView         *_imageviewer3D;
110         wxPanel                         *CreateControlPanel(wxWindow *parent);
111         wxPanel                         *CreateViewPanel(wxWindow *parent);
112
113         //Maracas
114         marInterface            *_mar;
115         wxMaracasMPR            *_wxMaracasMPR;
116
117         void ResetTree2_JF();
118         void ExtractTree2_JF(int x, int y, int z);
119
120
121
122         //---------------------
123         // STL SURFACES DHC
124         //---------------------
125         void            ConfigureSTL();
126         double          _stlDeltaGaussLevel;
127         double          _stlMarchingCubesLevel;
128
129         
130         vtkPolyData *stlInterna;
131         vtkPolyData *stlExterna;
132         
133         wxSlider        *stlSliderDeltaGauss;
134         wxSlider        *stlSliderMarchingCubes;
135         
136         vtkPolyDataMapper *dsm1;
137     vtkActor    *actorInternal;
138         wxSlider        *stlSliderOpacityInternal;
139     
140         vtkPolyDataMapper *dsm2; 
141     vtkActor    *actorExternal;
142         wxSlider        *stlSliderOpacityExternal;
143
144         vtkSTLExtractor *stlExtractor;   
145
146         wxSlider        *_sl_opacity_STL_file;
147
148
149
150         //--------------------------
151         // JOIN REGIONS
152         //--------------------------
153         void ConfigureJoinRegions();
154
155         vtkImageData            *arteryImageData;
156         vtkJoiner                       *joiner;
157         vtkMarchingCubes        *joinMarchingCubes;
158     vtkPolyDataMapper   *joinMapper; 
159         vtkActor                        *joinActor; 
160
161 };
162
163 #endif // WX_STL_WIDGET_02
164
165
166
167