2 #ifndef WX_PATHOLOGY_WIDGET_01
3 #define WX_PATHOLOGY_WIDGET_01
6 #include "vtkImageData.h"
8 #include "vtkMarchingCubes.h"
9 #include "vtkPolyDataMapper.h"
10 #include "vtkAppendFilter.h"
11 #include "vtkImageThreshold.h"
12 #include "vtkExtractVOI.h"
13 #include "vtkOutlineFilter.h"
14 #include "vtkImageGaussianSmooth.h"
15 #include "vtkImageCast.h"
16 #include "vtkImageEuclideanDistance.h"
17 #include "vtkPolyDataConnectivityFilter.h"
18 #include "vtkPointSet.h"
19 #include "vtkDataSetMapper.h"
20 #include "vtkImageContinuousDilate3D.h"
21 #include "vtkStripper.h"
22 #include "vtkImageResample.h"
23 #include "vtkPolyDataNormals.h"
24 #include "vtkCellCenters.h"
25 #include "vtkImageEuclideanDistance.h"
26 //#include "vtkSphericalVOI.h"
29 #include "wxVTKRenderWindowInteractor.h"
30 #include "wxSurfaceWidget.h"
31 #include "wxVtkBaseView.h"
34 #include "kernel/marInterface.h"
35 #include "kernel/axisExtractor02.h"
36 #include "kernel/vtkSTLExtractor.h"
37 #include "kernel/vtkDijkstraImageData.h"
41 class wxPathologyWidget_01: public wxPanel{
43 wxPathologyWidget_01(wxWindow *parentmar,marInterface *mar);
44 ~wxPathologyWidget_01();
46 void ConfigureVTK(vtkImageData *imagedata, int x, int y, int z, double param);
49 // --------------------------------------
51 // --------------------------------------
53 void generateSTLSurfaces();
54 void OnBtnFileSTL(wxCommandEvent& event);
55 void OnBtnLoadBinaryForSTL(wxCommandEvent& event);
56 void OnChangeSTLGaussLevel(wxScrollEvent& event);
57 void OnChangeSTLMarchingCubesLevel(wxScrollEvent& event);
58 void OnOpacitySTLExternal(wxScrollEvent& event);
59 void OnOpacitySTLInternal(wxScrollEvent& event);
60 void OnSTLSubdivisionLevel(wxScrollEvent& event);
62 //---------------------------------------
63 // PATHOLOGY FUNCTIONS
64 //---------------------------------------
65 void generatePathologySurface();
66 void OnBtnSetP1(wxCommandEvent& event);
67 void OnBtnSetP2(wxCommandEvent& event);
68 void OnBtnSetPat(wxCommandEvent& event);
69 void OnBtnExtractPat(wxCommandEvent& event);
70 void OnChangePatOpacity(wxScrollEvent& event);
71 void OnChangePatMarchingCubes(wxScrollEvent& event);
72 void OnBtnExtractAxis(wxCommandEvent& event);
78 wxVtk3DBaseView *_imageviewer3D;
79 wxPanel *CreateControlPanel(wxWindow *parent);
80 wxPanel *CreateViewPanel(wxWindow *parent);
84 wxSurfaceWidget *_maracasSurfaceWidget;
88 //---------------------
90 //---------------------
92 double stlDeltaGaussLevel;
93 double stlMarchingCubesLevel;
94 int stlSubdivisionLevel;
96 vtkImageData * stlImageData;
97 vtkPolyData *stlInterna;
98 vtkPolyData *stlExterna;
100 wxSlider *stlSliderDeltaGauss;
101 wxSlider *stlSliderMarchingCubes;
102 wxSlider *stlSliderSubdivision;
104 vtkPolyDataMapper *dsm1;
105 vtkActor *actorInternal;
106 wxSlider *stlSliderOpacityInternal;
108 vtkPolyDataMapper *dsm2;
109 vtkActor *actorExternal;
110 wxSlider *stlSliderOpacityExternal;
112 vtkSTLExtractor *stlExtractor;
115 //------------------------
117 //------------------------
120 vtkSphereSource *mprSphereSource;
121 vtkPolyDataMapper *mprMapper;
126 //--------------------------
128 //--------------------------
129 void ConfigurePathologyExtraction();
131 vtkSphereSource *p1SphereSource;
132 vtkPolyDataMapper *p1Mapper;
135 vtkSphereSource *p2SphereSource;
136 vtkPolyDataMapper *p2Mapper;
139 vtkSphereSource *patSphereSource;
140 vtkPolyDataMapper *patMapper;
143 vtkOutlineFilter *outlineFilter;
144 vtkPolyDataMapper *outlineMapper;
145 vtkActor *outlineActor;
148 vtkSphereSource *p3SphereSource;
149 vtkPolyDataMapper *p3Mapper;
153 wxFrame *pathologyFrame;
159 vtkImageData *patImageData;
160 vtkImageData *segImageData;
161 vtkExtractVOI *voiFilter;
163 vtkMarchingCubes *cubesFilter;
164 vtkPolyDataMapper *dataMapper;
167 vtkPolyDataMapper *caminoMapper;
168 vtkActor *caminoActor;
170 wxSlider *patSliderOpacity;
171 wxSlider *patSliderMarchingCubes;
172 wxSlider *patSliderDeltaGauss;
173 double patOpacityLevel;
175 double patDeltaGauss;
176 vtkImageGaussianSmooth *gaussFilter;
177 vtkImageSeedConnectivity *connectivityFilter;
178 vtkImageThreshold *thresholdFilter;
179 vtkImageCast *castFilter;
180 wxSlider *porcentajeSlider;
181 double thresholdOTSU;
184 vtkDijkstraImageData *dijkstraFilter;
187 vtkImageContinuousDilate3D *dilateFilter;
188 vtkStripper *stripper;
189 vtkPolyDataConnectivityFilter *polyUnico;
192 vtkImageData *isoBinaria;
193 vtkImageEuclideanDistance *isoDistance;
197 #endif // WX_PATHOLOGY_WIDGET_01