Copie de 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 #include "wxSurfaceWidget.h"
00020 #include "wxVtkBaseView.h"
00021 
00022 
00023 #include "../wxMaracasMPR.h"
00024 #include "pPlotter/mBarRange.h"//SIL//
00025 
00026 #include <kernel/marInterface.h>
00027 #include <kernel/axisExtractor02.h>
00028 
00029 
00030 #include "kernel/vtkSTLExtractor.h"    
00031 #include "kernel/vtkJoiner.h"
00032 
00033 
00034 
00035 
00036 //------------------------------------------------------------------
00037 //------------------------------------------------------------------
00038 //------------------------------------------------------------------
00039 
00040 class wxSTLWidget_03: public wxPanel{
00041 public:
00042         wxSTLWidget_03(wxWindow *parentmar,marInterface *mar);
00043         ~wxSTLWidget_03();
00044         void ConfigureVTK();
00045         void Refresh();
00046 
00047         void OnOpacity_Vol(wxScrollEvent& event);               // Result Volume 
00048         void OnMinSpin ( wxScrollEvent & event );
00049         void OnMaxSpin ( wxScrollEvent & event ); 
00050 
00051         //SIL new// 
00052         void OnRangeSpin( wxScrollEvent & event );
00053 
00054         //Handled events form the bar
00055         void OnStartChanged_range(wxCommandEvent& event);
00056         void OnEndChanged_range(wxCommandEvent& event);
00057         void OnBarMoved_range(wxCommandEvent& event);
00058 
00059 
00060         void OnBtnExtraction(wxCommandEvent& event);
00061         void OnBtnSaveBinaryFile(wxCommandEvent& event);
00062 
00063         //
00064         void Reset_vtk_STLFile();
00065         void OnBtnSTLFileLoad(wxCommandEvent& event);
00066         void OnBtnSTLFileErase(wxCommandEvent& event);
00067         void OnOpacitySTLFile(wxScrollEvent& event);            
00068 
00069 
00070         // --------------------------------------
00071         // STL FUNCTIONS DHC
00072         // --------------------------------------
00073         void generateSTLSurfaces();
00074         void OnBtnCreateFileSTL(wxCommandEvent& event); 
00075         void OnChangeSTLGaussLevel(wxScrollEvent& event);
00076         void OnChangeSTLMarchingCubesLevel(wxScrollEvent& event);
00077         void OnOpacitySTLExternal(wxScrollEvent& event);
00078         void OnOpacitySTLInternal(wxScrollEvent& event);
00079 
00080         
00081         //---------------------------------------
00082         // JOIN REGIONS FUNCTIONS
00083         //---------------------------------------
00084         void OnJoinRegions(wxCommandEvent& event);
00085 
00086 private:
00087 
00088         //Processing
00089         vtkImageData                            *_imagedata;
00090         double                                          _range[2];
00091         vtkImageCast                            *cast2;
00092         vtkImageCast                            *cast3;
00093         vtkImageCast                            *cast4; // binary segmentation result
00094         vtkImageThreshold                       *_thresh;
00095         vtkImageThreshold                       *_thresh2;
00096         vtkImageSeedConnectivity        *_connect;
00097         vtkImageSeedConnectivity        *_connect2;
00098 
00099 
00100 
00101         vtkPolyDataMapper       *_2_mapfinal;
00102         vtkActor                        *_2_stripfinal;
00103         vtkPolyDataMapper       *_2_isoMapperMC6;
00104         vtkActor                        *_2_isoActorMC6;
00105         vtkMarchingCubes        *_2_isoMC6;
00106         double                          _sensibility_JF;
00107         int                                     _maxSize;
00108         int                                     _minSize;
00109 
00110         // Load STL file
00111         vtkPolyDataMapper *_loadSTLMapper;
00112         vtkActor                  *_loadActorSTL;
00113 
00114 
00115         wxSlider                        *_opacity_Vol;
00116         wxSlider                        *_sl_minSize;
00117         wxSlider                        *_sl_maxSize;
00118         wxSlider                        *_sl_minSizeSpin;
00119         wxSlider                        *_sl_maxSizeSpin;
00120         wxSlider                        *_sl_RangeSizeSpin;
00121 
00122         
00123         /*
00124         * Represents the bar of min and max for merging the functionality of two sliders for controlling the segmentation parameters
00125         */
00126         mBarRange                       * sl_barrange_segmentation;
00127         int                                     lastResizeRef_Value;
00128         int                                     minRangeValue;
00129         int                                     maxRangeValue;
00130         
00131         wxVtk3DBaseView         *_imageviewer3D;
00132         wxPanel                         *CreateControlPanel(wxWindow *parent);
00133         wxPanel                         *CreateViewPanel(wxWindow *parent);
00134 
00135         //Maracas
00136         marInterface            *_mar;
00137         wxMaracasMPR            *_wxMaracasMPR;
00138 
00139         void ResetTree2_JF();
00140         void ExtractSurface(int x, int y, int z);
00141 
00142         wxWindow* CreateSelectAPointPanel(wxWindow *parent);
00143         wxWindow* CreateSegmentationPanel(wxWindow *parent);
00144         wxWindow* CreateSmoothingPanel(wxWindow *parent);
00145         wxWindow* CreateReadSTLFilePanel(wxWindow *parent);
00146 
00147         //---------------------
00148         // Processing
00149         //---------------------
00150         void ConfigureProcessing(marImageData *marimagedata, int x, int y, int z);
00151 
00152 
00153         //---------------------
00154         // STL SURFACES DHC
00155         //---------------------
00156         void            ConfigureSTL();
00157         double          _stlDeltaGaussLevel;
00158         double          _stlMarchingCubesLevel;
00159 
00160         
00161         vtkPolyData *stlInterna;
00162         vtkPolyData *stlExterna;
00163         
00164         wxSlider        *stlSliderDeltaGauss;
00165         wxSlider        *stlSliderMarchingCubes;
00166         
00167         vtkPolyDataMapper *dsm1;
00168     vtkActor    *actorInternal;
00169         wxSlider        *stlSliderOpacityInternal;
00170     
00171         vtkPolyDataMapper *dsm2; 
00172     vtkActor    *actorExternal;
00173         wxSlider        *stlSliderOpacityExternal;
00174 
00175         vtkSTLExtractor *stlExtractor;   
00176 
00177         wxSlider        *_sl_opacity_STL_file;
00178 
00179 
00180 
00181         //--------------------------
00182         // JOIN REGIONS
00183         //--------------------------
00184 
00185         vtkImageData            *arteryImageData;
00186         vtkJoiner                       *joiner;
00187         vtkMarchingCubes        *joinMarchingCubes;
00188     vtkPolyDataMapper   *joinMapper; 
00189         vtkActor                        *joinActor; 
00190 
00191 };
00192 
00193 #endif // WX_STL_WIDGET_03
00194 
00195 
00196 
00197 

Generated on Wed Jul 29 16:35:26 2009 for creaMaracasVisu_lib by  doxygen 1.5.3