#ifndef WX_STL_WIDGET_03 #define WX_STL_WIDGET_03 #include #include #include #include #include #include #include #include #include #include #include #include "wxVTKRenderWindowInteractor.h" #include "wxSurfaceWidget.h" #include "wxVtkBaseView.h" #include "../wxMaracasMPR.h" #include "pPlotter/mBarRange.h"//SIL// #include #include #include "kernel/vtkSTLExtractor.h" #include "kernel/vtkJoiner.h" //------------------------------------------------------------------ //------------------------------------------------------------------ //------------------------------------------------------------------ class wxSTLWidget_03: public wxPanel{ public: wxSTLWidget_03(wxWindow *parentmar,marInterface *mar); ~wxSTLWidget_03(); void ConfigureVTK(); void Refresh(); void OnOpacity_Vol(wxScrollEvent& event); // Result Volume void OnMinSpin ( wxScrollEvent & event ); void OnMaxSpin ( wxScrollEvent & event ); //SIL new// void OnRangeSpin( wxScrollEvent & event ); //Handled events form the bar void OnStartChanged_range(wxCommandEvent& event); void OnEndChanged_range(wxCommandEvent& event); void OnBarMoved_range(wxCommandEvent& event); void OnBtnExtraction(wxCommandEvent& event); void OnBtnSaveBinaryFile(wxCommandEvent& event); // void Reset_vtk_STLFile(); void OnBtnSTLFileLoad(wxCommandEvent& event); void OnBtnSTLFileErase(wxCommandEvent& event); void OnOpacitySTLFile(wxScrollEvent& event); // -------------------------------------- // STL FUNCTIONS DHC // -------------------------------------- void generateSTLSurfaces(); void OnBtnCreateFileSTL(wxCommandEvent& event); void OnChangeSTLGaussLevel(wxScrollEvent& event); void OnChangeSTLMarchingCubesLevel(wxScrollEvent& event); void OnOpacitySTLExternal(wxScrollEvent& event); void OnOpacitySTLInternal(wxScrollEvent& event); //--------------------------------------- // JOIN REGIONS FUNCTIONS //--------------------------------------- void OnJoinRegions(wxCommandEvent& event); private: //Processing vtkImageData *_imagedata; double _range[2]; vtkImageCast *cast2; vtkImageCast *cast3; vtkImageCast *cast4; // binary segmentation result vtkImageThreshold *_thresh; vtkImageThreshold *_thresh2; vtkImageSeedConnectivity *_connect; vtkImageSeedConnectivity *_connect2; vtkPolyDataMapper *_2_mapfinal; vtkActor *_2_stripfinal; vtkPolyDataMapper *_2_isoMapperMC6; vtkActor *_2_isoActorMC6; vtkMarchingCubes *_2_isoMC6; double _sensibility_JF; int _maxSize; int _minSize; // Load STL file vtkPolyDataMapper *_loadSTLMapper; vtkActor *_loadActorSTL; wxSlider *_opacity_Vol; wxSlider *_sl_minSize; wxSlider *_sl_maxSize; wxSlider *_sl_minSizeSpin; wxSlider *_sl_maxSizeSpin; wxSlider *_sl_RangeSizeSpin; /* * Represents the bar of min and max for merging the functionality of two sliders for controlling the segmentation parameters */ mBarRange * sl_barrange_segmentation; int lastResizeRef_Value; int minRangeValue; int maxRangeValue; wxVtk3DBaseView *_imageviewer3D; wxPanel *CreateControlPanel(wxWindow *parent); wxPanel *CreateViewPanel(wxWindow *parent); //Maracas marInterface *_mar; wxMaracasMPR *_wxMaracasMPR; void ResetTree2_JF(); void ExtractSurface(int x, int y, int z); wxWindow* CreateSelectAPointPanel(wxWindow *parent); wxWindow* CreateSegmentationPanel(wxWindow *parent); wxWindow* CreateSmoothingPanel(wxWindow *parent); wxWindow* CreateReadSTLFilePanel(wxWindow *parent); //--------------------- // Processing //--------------------- void ConfigureProcessing(marImageData *marimagedata, int x, int y, int z); //--------------------- // STL SURFACES DHC //--------------------- void ConfigureSTL(); double _stlDeltaGaussLevel; double _stlMarchingCubesLevel; vtkPolyData *stlInterna; vtkPolyData *stlExterna; wxSlider *stlSliderDeltaGauss; wxSlider *stlSliderMarchingCubes; vtkPolyDataMapper *dsm1; vtkActor *actorInternal; wxSlider *stlSliderOpacityInternal; vtkPolyDataMapper *dsm2; vtkActor *actorExternal; wxSlider *stlSliderOpacityExternal; vtkSTLExtractor *stlExtractor; wxSlider *_sl_opacity_STL_file; //-------------------------- // JOIN REGIONS //-------------------------- vtkImageData *arteryImageData; vtkJoiner *joiner; vtkMarchingCubes *joinMarchingCubes; vtkPolyDataMapper *joinMapper; vtkActor *joinActor; }; #endif // WX_STL_WIDGET_03