2 #ifndef WX_STL_WIDGET_03
3 #define WX_STL_WIDGET_03
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"
24 #include "pPlotter/mBarRange.h"//SIL//
26 //#include <marInterface.h>
27 #include <axisExtractor02.h>
30 #include "vtkSTLExtractor.h"
31 #include "vtkJoiner.h"
38 //------------------------------------------------------------------
39 //------------------------------------------------------------------
40 //------------------------------------------------------------------
42 class creaMaracasVisu_EXPORT wxSTLWidget_03: public wxPanel{
44 wxSTLWidget_03(wxWindow *parentmar);//,marInterface *mar);
49 void OnOpacity_Vol(wxScrollEvent& event); // Result Volume
50 void OnMinSpin ( wxScrollEvent & event );
51 void OnMaxSpin ( wxScrollEvent & event );
54 void OnRangeSpin( wxScrollEvent & event );
56 //Handled events form the bar
57 void OnStartChanged_range(wxCommandEvent& event);
58 void OnEndChanged_range(wxCommandEvent& event);
59 void OnBarMoved_range(wxCommandEvent& event);
62 void OnBtnExtraction(wxCommandEvent& event);
63 void OnBtnSaveBinaryFile(wxCommandEvent& event);
66 void Reset_vtk_STLFile();
67 void OnBtnSTLFileLoad(wxCommandEvent& event);
68 void OnBtnSTLFileErase(wxCommandEvent& event);
69 void OnOpacitySTLFile(wxScrollEvent& event);
72 // --------------------------------------
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);
83 //---------------------------------------
84 // JOIN REGIONS FUNCTIONS
85 //---------------------------------------
86 void OnJoinRegions(wxCommandEvent& event);
89 void setImage(vtkImageData* img);
94 vtkImageData *_imagedata;
98 vtkImageCast *cast4; // binary segmentation result
99 vtkImageThreshold *_thresh;
100 vtkImageThreshold *_thresh2;
101 vtkImageSeedConnectivity *_connect;
102 vtkImageSeedConnectivity *_connect2;
106 vtkPolyDataMapper *_2_mapfinal;
107 vtkActor *_2_stripfinal;
108 vtkPolyDataMapper *_2_isoMapperMC6;
109 vtkActor *_2_isoActorMC6;
110 vtkMarchingCubes *_2_isoMC6;
111 double _sensibility_JF;
116 vtkPolyDataMapper *_loadSTLMapper;
117 vtkActor *_loadActorSTL;
120 wxSlider *_opacity_Vol;
121 wxSlider *_sl_minSize;
122 wxSlider *_sl_maxSize;
123 wxSlider *_sl_minSizeSpin;
124 wxSlider *_sl_maxSizeSpin;
125 wxSlider *_sl_RangeSizeSpin;
129 * Represents the bar of min and max for merging the functionality of two sliders for controlling the segmentation parameters
131 mBarRange * sl_barrange_segmentation;
132 int lastResizeRef_Value;
136 wxVtk3DBaseView *_imageviewer3D;
137 wxPanel *CreateControlPanel(wxWindow *parent);
138 wxPanel *CreateViewPanel(wxWindow *parent);
141 //marInterface *_mar;
142 wxMaracasMPR *_wxMaracasMPR;
144 void ResetTree2_JF();
145 void ExtractSurface(int x, int y, int z);
147 wxWindow* CreateSelectAPointPanel(wxWindow *parent);
148 wxWindow* CreateSegmentationPanel(wxWindow *parent);
149 wxWindow* CreateSmoothingPanel(wxWindow *parent);
150 wxWindow* CreateReadSTLFilePanel(wxWindow *parent);
152 //---------------------
154 //---------------------
155 void ConfigureProcessing(marImageData *marimagedata, int x, int y, int z);
158 //---------------------
160 //---------------------
162 double _stlDeltaGaussLevel;
163 double _stlMarchingCubesLevel;
166 vtkPolyData *stlInterna;
167 vtkPolyData *stlExterna;
169 wxSlider *stlSliderDeltaGauss;
170 wxSlider *stlSliderMarchingCubes;
172 vtkPolyDataMapper *dsm1;
173 vtkActor *actorInternal;
174 wxSlider *stlSliderOpacityInternal;
176 vtkPolyDataMapper *dsm2;
177 vtkActor *actorExternal;
178 wxSlider *stlSliderOpacityExternal;
180 vtkSTLExtractor *stlExtractor;
182 wxSlider *_sl_opacity_STL_file;
186 //--------------------------
188 //--------------------------
190 vtkImageData *arteryImageData;
192 vtkMarchingCubes *joinMarchingCubes;
193 vtkPolyDataMapper *joinMapper;
198 #endif // WX_STL_WIDGET_03