]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/include/Copie de wxSTLWidget_03.h
*** empty log message ***
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / include / Copie de wxSTLWidget_03.h
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/include/Copie de wxSTLWidget_03.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/include/Copie de wxSTLWidget_03.h
new file mode 100644 (file)
index 0000000..f120b4f
--- /dev/null
@@ -0,0 +1,197 @@
+
+#ifndef WX_STL_WIDGET_03
+#define WX_STL_WIDGET_03
+
+#include <vector>
+
+#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 <vtkImageSeedConnectivity.h>
+#include <vtkImageCast.h>
+
+#include "wxVTKRenderWindowInteractor.h"
+#include "wxSurfaceWidget.h"
+#include "wxVtkBaseView.h"
+
+
+#include "../wxMaracasMPR.h"
+#include "pPlotter/mBarRange.h"//SIL//
+
+#include <kernel/marInterface.h>
+#include <kernel/axisExtractor02.h>
+
+
+#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
+
+
+
+