--- /dev/null
+
+#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
+
+
+
+