wxSTLWidget_03.h
Go to the documentation of this file.00001
00002 #ifndef WX_STL_WIDGET_03
00003 #define WX_STL_WIDGET_03
00004
00005 #include <vector>
00006
00007 #include <vtkImageData.h>
00008 #include <vtkActor.h>
00009 #include <vtkMarchingCubes.h>
00010 #include <vtkPolyDataMapper.h>
00011 #include <vtkAppendFilter.h>
00012 #include <vtkImageThreshold.h>
00013 #include <vtkExtractVOI.h>
00014 #include <vtkOutlineFilter.h>
00015 #include <vtkImageSeedConnectivity.h>
00016 #include <vtkImageCast.h>
00017
00018 #include "wxVTKRenderWindowInteractor.h"
00019
00020 #include "wxVtkBaseView.h"
00021
00022
00023 #include "../wxMaracasMPR.h"
00024 #include "pPlotter/mBarRange.h"
00025
00026
00027
00028
00029
00030 #include "vtkSTLExtractor.h"
00031 #include "include/vtkJoiner.h"
00032
00033 #include "marTypes.h"
00034
00035
00036
00037
00038
00039
00040
00041
00042 class creaMaracasVisu_EXPORT wxSTLWidget_03: public wxPanel{
00043 public:
00044 wxSTLWidget_03(wxWindow *parentmar);
00045 ~wxSTLWidget_03();
00046 void ConfigureVTK();
00047 void Refresh();
00048
00049 void OnOpacity_Vol(wxScrollEvent& event);
00050 void OnMinSpin ( wxScrollEvent & event );
00051 void OnMaxSpin ( wxScrollEvent & event );
00052
00053
00054 void OnRangeSpin( wxScrollEvent & event );
00055
00056
00057 void OnStartChanged_range(wxCommandEvent& event);
00058 void OnEndChanged_range(wxCommandEvent& event);
00059 void OnBarMoved_range(wxCommandEvent& event);
00060
00061
00062 void OnBtnExtraction(wxCommandEvent& event);
00063 void OnBtnSaveBinaryFile(wxCommandEvent& event);
00064
00065
00066 void Reset_vtk_STLFile();
00067 void OnBtnSTLFileLoad(wxCommandEvent& event);
00068 void OnBtnSTLFileErase(wxCommandEvent& event);
00069 void OnOpacitySTLFile(wxScrollEvent& event);
00070
00071
00072
00073
00074
00075 void generateSTLSurfaces();
00076 void OnBtnCreateFileSTL(wxCommandEvent& event);
00077 void OnChangeSTLGaussLevel(wxScrollEvent& event);
00078 void OnChangeSTLMarchingCubesLevel(wxScrollEvent& event);
00079 void OnOpacitySTLExternal(wxScrollEvent& event);
00080 void OnOpacitySTLInternal(wxScrollEvent& event);
00081
00082
00083
00084
00085
00086 void OnJoinRegions(wxCommandEvent& event);
00087
00088
00089 void setImage(vtkImageData* img);
00090
00091 private:
00092
00093
00094 vtkImageData *_imagedata;
00095 double _range[2];
00096 vtkImageCast *cast2;
00097 vtkImageCast *cast3;
00098 vtkImageCast *cast4;
00099 vtkImageThreshold *_thresh;
00100 vtkImageThreshold *_thresh2;
00101 vtkImageCast * _cast;
00102 vtkImageSeedConnectivity *_connect;
00103 vtkImageSeedConnectivity *_connect2;
00104
00105
00106
00107 vtkPolyDataMapper *_2_mapfinal;
00108 vtkActor *_2_stripfinal;
00109 vtkPolyDataMapper *_2_isoMapperMC6;
00110 vtkActor *_2_isoActorMC6;
00111 vtkMarchingCubes *_2_isoMC6;
00112 double _sensibility_JF;
00113 int _maxSize;
00114 int _minSize;
00115
00116
00117 vtkPolyDataMapper *_loadSTLMapper;
00118 vtkActor *_loadActorSTL;
00119
00120
00121 wxSlider *_opacity_Vol;
00122 wxSlider *_sl_minSize;
00123 wxSlider *_sl_maxSize;
00124 wxSlider *_sl_minSizeSpin;
00125 wxSlider *_sl_maxSizeSpin;
00126 wxSlider *_sl_RangeSizeSpin;
00127
00128
00129
00130
00131
00132 mBarRange * sl_barrange_segmentation;
00133 int lastResizeRef_Value;
00134 int minRangeValue;
00135 int maxRangeValue;
00136
00137 wxVtk3DBaseView *_imageviewer3D;
00138 wxPanel *CreateControlPanel(wxWindow *parent);
00139 wxPanel *CreateViewPanel(wxWindow *parent);
00140
00141
00142
00143 wxMaracasMPR *_wxMaracasMPR;
00144
00145 void ResetTree2_JF();
00146 void ExtractSurface(int x, int y, int z);
00147
00148 wxWindow* CreateSelectAPointPanel(wxWindow *parent);
00149 wxWindow* CreateSegmentationPanel(wxWindow *parent);
00150 wxWindow* CreateSmoothingPanel(wxWindow *parent);
00151 wxWindow* CreateReadSTLFilePanel(wxWindow *parent);
00152
00153
00154
00155
00156 void ConfigureProcessing(vtkImageData *img, int x, int y, int z);
00157
00158
00159
00160
00161
00162 void ConfigureSTL();
00163 double _stlDeltaGaussLevel;
00164 double _stlMarchingCubesLevel;
00165
00166
00167 vtkPolyData *stlInterna;
00168 vtkPolyData *stlExterna;
00169
00170 wxSlider *stlSliderDeltaGauss;
00171 wxSlider *stlSliderMarchingCubes;
00172
00173 vtkPolyDataMapper *dsm1;
00174 vtkActor *actorInternal;
00175 wxSlider *stlSliderOpacityInternal;
00176
00177 vtkPolyDataMapper *dsm2;
00178 vtkActor *actorExternal;
00179 wxSlider *stlSliderOpacityExternal;
00180
00181 vtkSTLExtractor *stlExtractor;
00182
00183 wxSlider *_sl_opacity_STL_file;
00184
00185
00186
00187
00188
00189
00190
00191 vtkImageData *arteryImageData;
00192 vtkJoiner *joiner;
00193 vtkMarchingCubes *joinMarchingCubes;
00194 vtkPolyDataMapper *joinMapper;
00195 vtkActor *joinActor;
00196
00197 };
00198
00199 #endif // WX_STL_WIDGET_03
00200
00201
00202
00203