wxPathologyWidget_01.h

Go to the documentation of this file.
00001 
00002 #ifndef WX_PATHOLOGY_WIDGET_01
00003 #define WX_PATHOLOGY_WIDGET_01
00004 #include <vector>
00005 
00006 #include "vtkImageData.h"
00007 #include "vtkActor.h"
00008 #include "vtkMarchingCubes.h"
00009 #include "vtkPolyDataMapper.h"
00010 #include "vtkAppendFilter.h"
00011 #include "vtkImageThreshold.h"
00012 #include "vtkExtractVOI.h"
00013 #include "vtkOutlineFilter.h"
00014 #include "vtkImageGaussianSmooth.h"
00015 #include "vtkImageCast.h"
00016 #include "vtkImageEuclideanDistance.h"
00017 #include "vtkPolyDataConnectivityFilter.h"
00018 #include "vtkPointSet.h"
00019 #include "vtkDataSetMapper.h"
00020 #include "vtkImageContinuousDilate3D.h"
00021 #include "vtkStripper.h"
00022 #include "vtkImageResample.h"
00023 #include "vtkPolyDataNormals.h"
00024 #include "vtkCellCenters.h"
00025 #include "vtkImageEuclideanDistance.h"
00026 //#include "vtkSphericalVOI.h"
00027 
00028 
00029 #include "wxVTKRenderWindowInteractor.h"
00030 #include "wxSurfaceWidget.h"
00031 #include "wxVtkBaseView.h"
00032 
00033 
00034 #include "kernel/marInterface.h"
00035 #include "kernel/axisExtractor02.h"
00036 #include "kernel/vtkSTLExtractor.h"
00037 #include "kernel/vtkDijkstraImageData.h"    
00038 
00039 
00040 
00041 class wxPathologyWidget_01: public wxPanel{
00042 public:
00043         wxPathologyWidget_01(wxWindow *parentmar,marInterface *mar);
00044         ~wxPathologyWidget_01();
00045         void ConfigureVTK();
00046         void ConfigureVTK(vtkImageData *imagedata, int x, int y, int z, double param);
00047         void Refresh();
00048         
00049         // --------------------------------------
00050         // STL FUNCTIONS DHC
00051         // --------------------------------------
00052         void ConfigureSTL();
00053         void generateSTLSurfaces();
00054         void OnBtnFileSTL(wxCommandEvent& event); 
00055         void OnBtnLoadBinaryForSTL(wxCommandEvent& event);
00056         void OnChangeSTLGaussLevel(wxScrollEvent& event);
00057         void OnChangeSTLMarchingCubesLevel(wxScrollEvent& event);
00058         void OnOpacitySTLExternal(wxScrollEvent& event);
00059         void OnOpacitySTLInternal(wxScrollEvent& event);
00060         void OnSTLSubdivisionLevel(wxScrollEvent& event);
00061 
00062         //---------------------------------------
00063         // PATHOLOGY FUNCTIONS
00064         //---------------------------------------
00065         void generatePathologySurface();
00066         void OnBtnSetP1(wxCommandEvent& event);
00067         void OnBtnSetP2(wxCommandEvent& event);
00068         void OnBtnSetPat(wxCommandEvent& event);
00069         void OnBtnExtractPat(wxCommandEvent& event);
00070         void OnChangePatOpacity(wxScrollEvent& event);
00071         void OnChangePatMarchingCubes(wxScrollEvent& event);
00072         void OnBtnExtractAxis(wxCommandEvent& event);
00073         
00074 
00075 private:
00076 
00077         
00078         wxVtk3DBaseView         *_imageviewer3D;
00079         wxPanel                         *CreateControlPanel(wxWindow *parent);
00080         wxPanel                         *CreateViewPanel(wxWindow *parent);
00081 
00082         //Maracas
00083         marInterface            *_mar;
00084         wxSurfaceWidget         *_maracasSurfaceWidget;
00085 
00086 
00087 
00088         //---------------------
00089         // STL SURFACES DHC
00090         //---------------------
00091         char* workingDir;
00092         double stlDeltaGaussLevel;
00093         double stlMarchingCubesLevel;
00094         int stlSubdivisionLevel;
00095 
00096         vtkImageData * stlImageData;
00097         vtkPolyData *stlInterna;
00098         vtkPolyData *stlExterna;
00099         
00100         wxSlider        *stlSliderDeltaGauss;
00101         wxSlider        *stlSliderMarchingCubes;
00102         wxSlider    *stlSliderSubdivision;
00103         
00104         vtkPolyDataMapper *dsm1;
00105     vtkActor *actorInternal;
00106         wxSlider *stlSliderOpacityInternal;
00107     
00108         vtkPolyDataMapper *dsm2; 
00109     vtkActor *actorExternal;
00110         wxSlider *stlSliderOpacityExternal;
00111 
00112         vtkSTLExtractor *stlExtractor;
00113         
00114 
00115         //------------------------
00116         // MPR
00117         //------------------------
00118         void ConfigureMPR();
00119         int px, py, pz;
00120         vtkSphereSource                         *mprSphereSource;
00121     vtkPolyDataMapper                   *mprMapper;
00122     vtkActor                                    *mprActor;
00123 
00124 
00125 
00126         //--------------------------
00127         // PATHOLOGY
00128         //--------------------------
00129         void ConfigurePathologyExtraction();
00130 
00131         vtkSphereSource         *p1SphereSource;
00132         vtkPolyDataMapper       *p1Mapper;
00133         vtkActor                        *p1Actor;
00134 
00135         vtkSphereSource         *p2SphereSource;
00136         vtkPolyDataMapper       *p2Mapper;
00137         vtkActor                        *p2Actor;
00138 
00139         vtkSphereSource         *patSphereSource;
00140         vtkPolyDataMapper       *patMapper;
00141         vtkActor                        *patActor;
00142 
00143         vtkOutlineFilter    *outlineFilter;
00144         vtkPolyDataMapper   *outlineMapper;
00145         vtkActor            *outlineActor;
00146 
00147 
00148         vtkSphereSource         *p3SphereSource;
00149         vtkPolyDataMapper       *p3Mapper;
00150         vtkActor                        *p3Actor;
00151 
00152 
00153         wxFrame                         *pathologyFrame;
00154         
00155         
00156         double p1Center[3];
00157         double p2Center[3];
00158 
00159         vtkImageData            *patImageData;
00160         vtkImageData            *segImageData;
00161         vtkExtractVOI           *voiFilter;
00162         
00163         vtkMarchingCubes        *cubesFilter;
00164         vtkPolyDataMapper       *dataMapper;
00165         vtkActor                        *dataActor;
00166 
00167         vtkPolyDataMapper       *caminoMapper;
00168         vtkActor                        *caminoActor;
00169         
00170         wxSlider        *patSliderOpacity;
00171         wxSlider        *patSliderMarchingCubes;
00172         wxSlider        *patSliderDeltaGauss;
00173         double patOpacityLevel;
00174         double patMCLevel;
00175         double patDeltaGauss;
00176         vtkImageGaussianSmooth          *gaussFilter; 
00177         vtkImageSeedConnectivity        *connectivityFilter;
00178         vtkImageThreshold                       *thresholdFilter;
00179         vtkImageCast                            *castFilter;
00180         wxSlider        *porcentajeSlider;
00181         double thresholdOTSU;
00182                 
00183 
00184         vtkDijkstraImageData *dijkstraFilter;
00185 
00186 
00187         vtkImageContinuousDilate3D *dilateFilter;
00188         vtkStripper *stripper;
00189         vtkPolyDataConnectivityFilter *polyUnico;
00190 
00191         
00192         vtkImageData *isoBinaria;
00193         vtkImageEuclideanDistance *isoDistance;
00194 
00195 };
00196 
00197 #endif // WX_PATHOLOGY_WIDGET_01
00198 
00199 
00200 
00201 

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1