wxEmptyPanelWidget_2.h
Go to the documentation of this file.00001
00002 #ifndef EMPTY_PANEL_WIDGET_2_H
00003 #define EMPTY_PANEL_WIDGET_2_H
00004
00005 #include <vector>
00006
00007 #include <vtkImageData.h>
00008 #include <vtkActor.h>
00009 #include <vtkMarchingCubes.h>
00010 #include <vtkPolyDataMapper.h>
00011
00012 #include "wxVTKRenderWindowInteractor.h"
00013 #include "wxSurfaceWidget.h"
00014 #include "wxVtkBaseView.h"
00015 #include <kernel/marInterface.h>
00016 #include <kernel/axisExtractor.h>
00017 #include <kernel/axisExtractor02.h>
00018 #include <kernel/carotidaBifurcacion.h>
00019
00020
00021
00022
00023
00024 class TreeExtraction_MH_JFC : public vtkObject
00025 {
00026 public:
00027 static TreeExtraction_MH_JFC *New();
00028 virtual void SetInput(marExperiment *input);
00029 void SetBranchLevel(int branchLevel);
00030 marExperiment *GetInput();
00031 vtkImageData *GetVolume();
00032 void Update();
00033 void SetCleanTreeLevel( int cleanLevel );
00034
00035 protected:
00036 TreeExtraction_MH_JFC();
00037 ~TreeExtraction_MH_JFC();
00038 void Execute( int count , int sens=1 , double *vit=NULL , int cleanLevel=0);
00039
00040 private:
00041 double _cleanLevel;
00042 int _branchLevel;
00043 carotidaBifurcacion *_prgov;
00044 vtkImageData *_imagedataResult;
00045 marExperiment *_marExperiment;
00046 void Reset();
00047 void InitImagaDataResult();
00048 void BruleVolume( vtkImageData *imagedata, int x,int y,int z,int r,int value );
00049 void BruleVolume( vtkImageData *imagedata, vtkPolyData *inputAxisRadio,int value );
00050 void FindVit( marExperiment *newExperiment , int actualAxis , double *pointBif , double *vit );
00051 };
00052
00053
00054
00055
00056
00057 class wxEmptyPanelWidget_2: public wxPanel{
00058 public:
00059 wxEmptyPanelWidget_2(wxWindow *parentmar,marInterface *mar);
00060 ~wxEmptyPanelWidget_2();
00061 void ConfigureVTK();
00062 void Refresh();
00063 void OnOpacity_OrigVol(wxScrollEvent& event);
00064 void OnOpacity_Res1VolJF(wxScrollEvent& event);
00065 void OnOpacity_Res2VolJF(wxScrollEvent& event);
00066 void OnIsoValue(wxScrollEvent& event);
00067 void OnBtnExtractTree1_JF(wxCommandEvent& event);
00068 void OnBtnExtractTree2_JF(wxCommandEvent& event);
00069 void OnBtnEraseTree1_JF(wxCommandEvent& event);
00070 void OnBtnEraseTree2_JF(wxCommandEvent& event);
00071 void OnBtnExtractTree_MH_JFC(wxCommandEvent& event);
00072 void OnBtnEraseTree_MH_JFC(wxCommandEvent& event);
00073 void OnOpacity_ResVolMHJF(wxScrollEvent& event);
00074 void OnBranchLevel(wxScrollEvent& event);
00075 void OnIsoValue_MH_JFC(wxScrollEvent& event);
00076 void OnCleanTree_MH_JFC(wxScrollEvent& event);
00077 void OnSensibility(wxScrollEvent& event);
00078
00079 private:
00080
00081 TreeExtraction_MH_JFC *_treeExtraction;
00082
00083
00084 vtkMarchingCubes *_mCubes;
00085 vtkPolyDataMapper *_surfMapper;
00086 vtkActor *_surfActor;
00087
00088
00089 axisExtractor *_1_prgov;
00090 vtkPolyDataMapper *_1_mapfinal;
00091 vtkActor *_1_stripfinal;
00092 vtkPolyDataMapper *_1_isoMapperMC6;
00093 vtkActor *_1_isoActorMC6;
00094 vtkMarchingCubes *_1_isoMC6;
00095
00096
00097 axisExtractor02 *_2_prgov;
00098 vtkPolyDataMapper *_2_mapfinal;
00099 vtkActor *_2_stripfinal;
00100 vtkPolyDataMapper *_2_isoMapperMC6;
00101 vtkActor *_2_isoActorMC6;
00102 vtkMarchingCubes *_2_isoMC6;
00103 double _sensibility_JF;
00104
00105
00106
00107 vtkPolyDataMapper *_isoMapperMC1;
00108 vtkActor *_isoActorMC1;
00109 vtkMarchingCubes *_isoMC1;
00110 vtkImageThreshold *_imageThresholdMC1;
00111
00112 std::vector< vtkActor* > _lstBranchActor;
00113 std::vector< vtkPolyData* > _lstAxisVtk;
00114 std::vector< vtkPolyDataMapper* > _lstBranchMapper;
00115
00116 wxSlider *_opacity_OrigVol;
00117 wxSlider *_opacity_Res1VolJF;
00118 wxSlider *_opacity_Res2VolJF;
00119 wxSlider *_sl_sensibility_JF;
00120 wxSlider *_isoValue;
00121 wxSlider *_branchLevel;
00122 wxSlider *_opacity_ResVolMHJF;
00123 wxSlider *_isoValue_MH_JFC;
00124 wxSlider *_cleanTree_MH_JFC;
00125
00126 wxVtk3DBaseView *_imageviewer3D;
00127 wxPanel *CreateControlPanel(wxWindow *parent);
00128 wxPanel *CreateViewPanel(wxWindow *parent);
00129
00130
00131 marInterface *_mar;
00132 wxSurfaceWidget *_maracasSurfaceWidget;
00133
00134 void ResetTree1_JF();
00135 void ResetTree2_JF();
00136 void ExtractTree1_JF(int x, int y, int z);
00137 void ExtractTree2_JF(int x, int y, int z);
00138
00139 void ResetTree_MH_JFC();
00140 void PaintVascularTree_MH_JFC(marExperiment * newExperiment);
00141 void PaintVascularVolume_MH_JFC(vtkImageData * image);
00142 void WriteSignals(marExperiment *newExperiment);
00143 };
00144
00145 #endif // EMPTY_PANEL_WIDGET_2_H
00146
00147
00148
00149