00001 /*========================================================================= 00002 00003 Program: wxMaracas 00004 Module: $RCSfile: wxSegmentationFM3DWidget.h,v $ 00005 Language: C++ 00006 Date: $Date: 2009/05/14 13:54:57 $ 00007 Version: $Revision: 1.1 $ 00008 00009 Copyright: (c) 2002, 2003 00010 License: 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notice for more information. 00015 00016 =========================================================================*/ 00017 00018 #ifndef __WX__SEGMENTATION__FM3D__HXX__ 00019 #define __WX__SEGMENTATION__FM3D__HXX__ 00020 00021 /* 00022 #include <vector> 00023 00024 #include <vtkObjectBase.h> 00025 #include <vtkCommand.h> 00026 #include <vtkActor.h> 00027 #include <vtkPoints.h> 00028 #include <vtkPolyData.h> 00029 #include <vtkPolyDataMapper.h> 00030 #include <vtkProbeFilter.h> 00031 #include <vtkPlaneSource.h> 00032 #include <vtkImageChangeInformation.h> 00033 #include <vtkStructuredPoints.h> 00034 #include <vtkTransform.h> 00035 #include <vtkImageViewer2.h> 00036 #include <vtkBoxWidget.h> 00037 */ 00038 00039 /* 00040 #include "kernel/marInterface.h" 00041 00042 #include "wxMPRBaseData.h" 00043 #include "wxVtkBaseView.h" 00044 */ 00045 00046 00047 #include <wx/notebook.h> 00048 00049 #include "vtkImageGaussianSmooth.h" 00050 #include "vtkSmoothPolyDataFilter.h" 00051 00052 #include "wxMPRWidget.h" 00053 #include "../manualContour.h" 00054 00055 #include "itkFM3D.h" 00056 00057 00058 //------------------------------------------------------------------ 00059 //------------------------------------------------------------------ 00060 //------------------------------------------------------------------ 00061 00062 00063 class wxSegmentationFM3DWidget : public wxPanel 00064 { 00065 public: 00066 wxSegmentationFM3DWidget(wxWindow* parent,marImageData *marimageData,double voxelSize); 00067 ~wxSegmentationFM3DWidget( ); 00068 00069 void ConfigureVTK(); 00070 00071 void RefreshView(); 00072 void OnRefreshView(wxCommandEvent & event); 00073 00074 00075 vtkMPRBaseData *GetVtkMPRBaseData(); 00076 vtkPlane2DView *GetVtkPlane2DView(); 00077 00078 00079 00080 private: 00081 double _voxelSize; 00082 marImageData *_marimageData; 00083 wxMPRWidget2 *_MPRWidget2; 00084 00085 // 00086 wxVtk3DBaseView *_wxvtk3Dbaseview_Clipping3D_C; 00087 wxVtkMPR3DView *_wxvtkmpr3Dview_C; 00088 wxVtkClipping3DView *_wxvtkclipping3Dview_C; 00089 00090 wxPanel *Create3DViewContour( wxWindow *parent, vtkMPRBaseData *vtkmprbasedata); 00091 void ConfigureContour(); 00092 00093 //DCH: CONTROLES INTERFAZ GRAFICA 00094 00095 wxSlider* slAlpha; 00096 wxSlider* slBeta; 00097 wxButton* btnSegment; 00098 wxButton* btnUndo; 00099 wxSlider* slVolumeOpacity; 00100 wxSlider* slSigmaLevel; 00101 wxSlider* slLaplacianConvergence; 00102 wxSlider* slLaplacianIterations; 00103 00104 00105 void OnChangeAlpha(wxScrollEvent& event); 00106 void OnChangeBeta(wxScrollEvent& event); 00107 void OnBtnSegment(wxCommandEvent& event); 00108 void OnBtnUndo(wxCommandEvent& event); 00109 void OnChangeOpacity(wxScrollEvent& event); 00110 void OnChangeSigmaLevel(wxScrollEvent& event); 00111 void OnChangeLaplacianConvergence(wxScrollEvent& event); 00112 void OnChangeLaplacianIteration(wxScrollEvent& event); 00113 00114 00115 // DHC: MODELO 00116 itkFM3D* filtroSegmentacion; 00117 double alphaValue; 00118 double betaValue; 00119 double opacityValue; 00120 double sigmaValue; 00121 float convergenceValue; 00122 int iterationsValue; 00123 00124 // DHC: RENDERIZACION VTK 00125 vtkImageGaussianSmooth* f_gauss; 00126 vtkMarchingCubes* f_cubes; 00127 vtkSmoothPolyDataFilter* f_laplace; 00128 vtkPolyDataMapper* f_mapper; 00129 vtkActor* f_actor; 00130 00131 00132 00133 DECLARE_EVENT_TABLE( ); 00134 00135 00136 00137 }; 00138 00139 00140 00141 00142 #endif // __WX__SEGMENTATION__FM3D__HXX__ 00143 00144 // EOF - wxSegmentationFM3DWidget.h