00001 00002 00003 #ifndef __WX__PROCESSING__CT__WIDGET__ 00004 #define __WX__PROCESSING__CT__WIDGET__ 00005 00006 00007 00008 #include <vtkActor.h> 00009 #include <vtkMarchingCubes.h> 00010 #include <vtkPolyDataMapper.h> 00011 #include <vtkImageThreshold.h> 00012 #include <vtkImageData.h> 00013 #include <vtkImageSeedConnectivity.h> 00014 00015 00016 00017 00018 #include "wxMPRWidget.h" 00019 #include "wxVTKRenderWindowInteractor.h" 00020 #include <kernel/axisExtractor02.h> 00021 00022 #include <kernel/marInterfaceCT.h> 00023 #include <kernel/marAxis.h> 00024 00025 00026 #include <wx/wx.h> 00027 #include <wx/panel.h> 00028 00029 //------------------------------------------------------------------ 00030 //------------------------------------------------------------------ 00031 //------------------------------------------------------------------ 00032 00033 class wxProcessingCTWidget: public wxPanel{ 00034 public: 00035 wxProcessingCTWidget(wxWindow *parent, marInterfaceCT *mar); 00036 ~wxProcessingCTWidget(); 00037 void ConfigureVTK(marImageData *marimagedata, int x, int y, int z); 00038 void Refresh(); 00039 void OnLowThreshold(wxScrollEvent& event); // Umbral inferior 00040 void OnMidThreshold(wxScrollEvent& event); // Umbral medio 00041 void LowThreshold(); 00042 void MidThreshold(); 00043 00044 // MAZV 27 sep 2006 00045 // void OnHighThreshold(wxScrollEvent& event); // Umbral alto 00046 void OnZSlice(wxScrollEvent& event); // Z Slice 00047 void OnExtract(wxCommandEvent& event); 00048 void OnRefreshView(wxCommandEvent & event); 00049 00050 void SetThreshold(int min ,int max); 00051 void GetThreshold(int *min ,int *max); 00052 00053 void OnSpinLowThresholdSpin1(wxScrollEvent& event); 00054 void OnSpinLowThresholdSpin2(wxScrollEvent& event); 00055 00056 00057 00058 private: 00059 wxWindow *_parent; 00060 00061 // Original Volume 00062 vtkMarchingCubes *_mCubes; 00063 vtkPolyDataMapper *_surfMapper; 00064 vtkActor *_surfActor; 00065 00066 marInterfaceCT *_mar; 00067 00068 // New vtk - thresholding 00069 00070 vtkImageThreshold *_thresh; //Lower - Upper 00071 vtkImageThreshold *_thresh2; //Lower - Medium 00072 00073 00074 vtkImageSeedConnectivity *_connect; 00075 vtkImageSeedConnectivity *_connect2; 00076 vtkImageCast *cast3; 00077 vtkImageCast *cast4; 00078 vtkImageData *data; 00079 00080 00081 wxSlider *_lowthreshold; 00082 wxSlider *_midthreshold; 00083 00084 wxSlider *_lowthresholdSpin1; 00085 wxSlider *_lowthresholdSpin2; 00086 00087 00088 // MAZV 27 sep 2006 00089 //wxSlider *_highthreshold; 00090 wxSlider *_zslice; 00091 wxVtk2DBaseView *_imageviewer2D_1; 00092 wxVtk2DBaseView *_imageviewer2D_2; 00093 wxVtk2DBaseView *_imageviewer2D_3; 00094 00095 wxButton *_extract; 00096 00097 vtkBaseData *_vtkbasedata_1; 00098 vtkBaseData *_vtkbasedata_2; 00099 vtkBaseData *_vtkbasedata_3; 00100 00101 wxPanel *CreateControlPanel(wxWindow *parent); 00102 wxPanel *CreateViewPanel(wxWindow *parent); 00103 00104 int _x, _y, _z; 00105 double _range[2]; 00106 00107 DECLARE_EVENT_TABLE( ); 00108 00109 00110 }; 00111 00112 #endif // __WX__PROCESSING__CT__WIDGET__ 00113 00114 00115 00116