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 <marInterface.h>
00027 //#include <include/axisExtractor02.h>
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);//,marInterface *mar);
00045         ~wxSTLWidget_03();
00046         void ConfigureVTK();
00047         void Refresh();
00048 
00049         void OnOpacity_Vol(wxScrollEvent& event);               // Result Volume 
00050         void OnMinSpin ( wxScrollEvent & event );
00051         void OnMaxSpin ( wxScrollEvent & event ); 
00052 
00053         //SIL new// 
00054         void OnRangeSpin( wxScrollEvent & event );
00055 
00056         //Handled events form the bar
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         // STL FUNCTIONS DHC
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         // JOIN REGIONS FUNCTIONS
00085         //---------------------------------------
00086         void OnJoinRegions(wxCommandEvent& event);
00087 
00088         //JCP 01-03-08
00089         void setImage(vtkImageData* img);
00090 
00091 private:
00092 
00093         //Processing
00094         vtkImageData                            *_imagedata;
00095         double                                          _range[2];
00096         vtkImageCast                            *cast2;
00097         vtkImageCast                            *cast3;
00098         vtkImageCast                            *cast4; // binary segmentation result
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         // Load STL file
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         * Represents the bar of min and max for merging the functionality of two sliders for controlling the segmentation parameters
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         //Maracas
00142         //marInterface          *_mar;
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         // Processing
00155         //---------------------
00156         void ConfigureProcessing(vtkImageData *img, int x, int y, int z);
00157 
00158 
00159         //---------------------
00160         // STL SURFACES DHC
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         // JOIN REGIONS
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 

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1