2 #ifndef WX_STL_WIDGET_02
3 #define WX_STL_WIDGET_02
7 #include <vtkImageData.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>
18 #include "wxVTKRenderWindowInteractor.h"
19 #include "wxSurfaceWidget.h"
20 #include "wxVtkBaseView.h"
23 #include "../wxMaracasMPR.h"
25 #include <kernel/marInterface.h>
26 #include <kernel/axisExtractor02.h>
29 #include "kernel/vtkSTLExtractor.h"
30 #include "kernel/vtkJoiner.h"
35 //------------------------------------------------------------------
36 //------------------------------------------------------------------
37 //------------------------------------------------------------------
39 class wxSTLWidget_02: public wxPanel{
41 wxSTLWidget_02(wxWindow *parentmar,marInterface *mar);
46 void OnOpacity_Res2VolJF(wxScrollEvent& event); // Result 2 Volume JF
49 void OnBtnExtractTree2_JF(wxCommandEvent& event);
50 void OnBtnEraseTree2_JF(wxCommandEvent& event);
52 void OnSensibility(wxScrollEvent& event);
53 void OnMaxSphereSize_JF(wxScrollEvent& event); // radio Max
54 void OnMinSphereSize_JF(wxScrollEvent& event); // radio Min
57 void Reset_vtk_STLFile();
58 void OnBtnSTLFileLoad(wxCommandEvent& event);
59 void OnBtnSTLFileErase(wxCommandEvent& event);
60 void OnOpacitySTLFile(wxScrollEvent& event);
63 // --------------------------------------
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);
73 //---------------------------------------
74 // JOIN REGIONS FUNCTIONS
75 //---------------------------------------
76 void OnJoinRegions(wxCommandEvent& event);
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;
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;
100 vtkPolyDataMapper *_loadSTLMapper;
101 vtkActor *_loadActorSTL;
104 wxSlider *_opacity_Res2VolJF;
105 wxSlider *_sl_sensibility_JF;
106 wxSlider *_sl_maxSphereSize_JF;
107 wxSlider *_sl_minSphereSize_JF;
109 wxVtk3DBaseView *_imageviewer3D;
110 wxPanel *CreateControlPanel(wxWindow *parent);
111 wxPanel *CreateViewPanel(wxWindow *parent);
115 wxMaracasMPR *_wxMaracasMPR;
117 void ResetTree2_JF();
118 void ExtractTree2_JF(int x, int y, int z);
122 //---------------------
124 //---------------------
126 double _stlDeltaGaussLevel;
127 double _stlMarchingCubesLevel;
130 vtkPolyData *stlInterna;
131 vtkPolyData *stlExterna;
133 wxSlider *stlSliderDeltaGauss;
134 wxSlider *stlSliderMarchingCubes;
136 vtkPolyDataMapper *dsm1;
137 vtkActor *actorInternal;
138 wxSlider *stlSliderOpacityInternal;
140 vtkPolyDataMapper *dsm2;
141 vtkActor *actorExternal;
142 wxSlider *stlSliderOpacityExternal;
144 vtkSTLExtractor *stlExtractor;
146 wxSlider *_sl_opacity_STL_file;
150 //--------------------------
152 //--------------------------
153 void ConfigureJoinRegions();
155 vtkImageData *arteryImageData;
157 vtkMarchingCubes *joinMarchingCubes;
158 vtkPolyDataMapper *joinMapper;
163 #endif // WX_STL_WIDGET_02