#ifndef WX_PATHOLOGY_WIDGET_01 #define WX_PATHOLOGY_WIDGET_01 #include #include "vtkImageData.h" #include "vtkActor.h" #include "vtkMarchingCubes.h" #include "vtkPolyDataMapper.h" #include "vtkAppendFilter.h" #include "vtkImageThreshold.h" #include "vtkExtractVOI.h" #include "vtkOutlineFilter.h" #include "vtkImageGaussianSmooth.h" #include "vtkImageCast.h" #include "vtkImageEuclideanDistance.h" #include "vtkPolyDataConnectivityFilter.h" #include "vtkPointSet.h" #include "vtkDataSetMapper.h" #include "vtkImageContinuousDilate3D.h" #include "vtkStripper.h" #include "vtkImageResample.h" #include "vtkPolyDataNormals.h" #include "vtkCellCenters.h" #include "vtkImageEuclideanDistance.h" //#include "vtkSphericalVOI.h" #include "wxVTKRenderWindowInteractor.h" #include "wxSurfaceWidget.h" #include "wxVtkBaseView.h" #include "kernel/marInterface.h" #include "kernel/axisExtractor02.h" #include "kernel/vtkSTLExtractor.h" #include "kernel/vtkDijkstraImageData.h" class wxPathologyWidget_01: public wxPanel{ public: wxPathologyWidget_01(wxWindow *parentmar,marInterface *mar); ~wxPathologyWidget_01(); void ConfigureVTK(); void ConfigureVTK(vtkImageData *imagedata, int x, int y, int z, double param); void Refresh(); // -------------------------------------- // STL FUNCTIONS DHC // -------------------------------------- void ConfigureSTL(); void generateSTLSurfaces(); void OnBtnFileSTL(wxCommandEvent& event); void OnBtnLoadBinaryForSTL(wxCommandEvent& event); void OnChangeSTLGaussLevel(wxScrollEvent& event); void OnChangeSTLMarchingCubesLevel(wxScrollEvent& event); void OnOpacitySTLExternal(wxScrollEvent& event); void OnOpacitySTLInternal(wxScrollEvent& event); void OnSTLSubdivisionLevel(wxScrollEvent& event); //--------------------------------------- // PATHOLOGY FUNCTIONS //--------------------------------------- void generatePathologySurface(); void OnBtnSetP1(wxCommandEvent& event); void OnBtnSetP2(wxCommandEvent& event); void OnBtnSetPat(wxCommandEvent& event); void OnBtnExtractPat(wxCommandEvent& event); void OnChangePatOpacity(wxScrollEvent& event); void OnChangePatMarchingCubes(wxScrollEvent& event); void OnBtnExtractAxis(wxCommandEvent& event); private: wxVtk3DBaseView *_imageviewer3D; wxPanel *CreateControlPanel(wxWindow *parent); wxPanel *CreateViewPanel(wxWindow *parent); //Maracas marInterface *_mar; wxSurfaceWidget *_maracasSurfaceWidget; //--------------------- // STL SURFACES DHC //--------------------- char* workingDir; double stlDeltaGaussLevel; double stlMarchingCubesLevel; int stlSubdivisionLevel; vtkImageData * stlImageData; vtkPolyData *stlInterna; vtkPolyData *stlExterna; wxSlider *stlSliderDeltaGauss; wxSlider *stlSliderMarchingCubes; wxSlider *stlSliderSubdivision; vtkPolyDataMapper *dsm1; vtkActor *actorInternal; wxSlider *stlSliderOpacityInternal; vtkPolyDataMapper *dsm2; vtkActor *actorExternal; wxSlider *stlSliderOpacityExternal; vtkSTLExtractor *stlExtractor; //------------------------ // MPR //------------------------ void ConfigureMPR(); int px, py, pz; vtkSphereSource *mprSphereSource; vtkPolyDataMapper *mprMapper; vtkActor *mprActor; //-------------------------- // PATHOLOGY //-------------------------- void ConfigurePathologyExtraction(); vtkSphereSource *p1SphereSource; vtkPolyDataMapper *p1Mapper; vtkActor *p1Actor; vtkSphereSource *p2SphereSource; vtkPolyDataMapper *p2Mapper; vtkActor *p2Actor; vtkSphereSource *patSphereSource; vtkPolyDataMapper *patMapper; vtkActor *patActor; vtkOutlineFilter *outlineFilter; vtkPolyDataMapper *outlineMapper; vtkActor *outlineActor; vtkSphereSource *p3SphereSource; vtkPolyDataMapper *p3Mapper; vtkActor *p3Actor; wxFrame *pathologyFrame; double p1Center[3]; double p2Center[3]; vtkImageData *patImageData; vtkImageData *segImageData; vtkExtractVOI *voiFilter; vtkMarchingCubes *cubesFilter; vtkPolyDataMapper *dataMapper; vtkActor *dataActor; vtkPolyDataMapper *caminoMapper; vtkActor *caminoActor; wxSlider *patSliderOpacity; wxSlider *patSliderMarchingCubes; wxSlider *patSliderDeltaGauss; double patOpacityLevel; double patMCLevel; double patDeltaGauss; vtkImageGaussianSmooth *gaussFilter; vtkImageSeedConnectivity *connectivityFilter; vtkImageThreshold *thresholdFilter; vtkImageCast *castFilter; wxSlider *porcentajeSlider; double thresholdOTSU; vtkDijkstraImageData *dijkstraFilter; vtkImageContinuousDilate3D *dilateFilter; vtkStripper *stripper; vtkPolyDataConnectivityFilter *polyUnico; vtkImageData *isoBinaria; vtkImageEuclideanDistance *isoDistance; }; #endif // WX_PATHOLOGY_WIDGET_01