#ifndef __wxContourMainFrame_h_INCLUDED_H__ #define __wxContourMainFrame_h_INCLUDED_H__ // ----------------------------------------------------------------------------------------------------------- // WX headers inclusion. // For compilers that support precompilation, includes . // ----------------------------------------------------------------------------------------------------------- #include #ifdef __BORLANDC__ #pragma hdrstop #endif #ifndef WX_PRECOMP #include #endif //------------------------------------------------------------------------------------------------------------ // Includes //------------------------------------------------------------------------------------------------------------ #include "wx/aui/aui.h" #include "interfMainPanel.h" #include "KernelManagerContour.h" //#include "wxVtkBaseView_SceneManager.h" #include "wxInstantChooserPanel.h" #include "wxContourViewPanel.h" //#include "ContourWorkspace.h" #include "ContourExtractData.h" #include "PerformingOperation.h" //#include "ContourThing.h" //#include "AxeThing.h" //#include "ImageSourceThing.h" //#include "ImageSectionThing.h" //#include "InstantMembersNameList.h" //#include "OutlineGroup.h" //#include "SomeEnvironment.h" //#include "ContourWorkspace.h" //#include "ContourWrap_ViewControl.h" //#include "Instant.h" //#include "PerformingOperation.h" //#include "ContourThing.h" //#include "OutlineModelManager.h" //#include "wxContour_ButtonsBar.h" //#include "wxContour_ControlPanel.h" //#include "wxContour_Grid.h" //#include "wxContour_DrawToolsPanel.h" //#include "wxContour_OperationsToolsPanel.h" //#include "wxContour_AutomaticFormsToolsPanel.h" //#include "wxContour_StandardToolsPanel.h" //#include "wxContour_EdtionToolsPanel.h" //#include "wxContour_ListViewPanel.h" //ITK #include "itkImage.h" #include "itkGeodesicActiveContourLevelSetImageFilter.h" #include "itkCurvatureAnisotropicDiffusionImageFilter.h" #include "itkGradientMagnitudeRecursiveGaussianImageFilter.h" #include "itkSigmoidImageFilter.h" #include "itkFastMarchingImageFilter.h" #include "itkRescaleIntensityImageFilter.h" #include "itkBinaryThresholdImageFilter.h" #include "itkZeroCrossingImageFilter.h" #include "itkCastImageFilter.h" #include "itkImageFileWriter.h" #include "itkImageToVTKImageFilter.h" #include "itkVTKImageToImageFilter.h" //VTK #include #include #include "vtkContourFilter.h" #include "vtkMarchingContourFilter.h" #include "vtkPolyDataConnectivityFilter.h" #include "vtkCleanPolyData.h" #include "vtkImageReslice.h" #include "vtkMetaImageWriter.h" #include "vtkImageData.h" #include "vtkTransform.h" #include "vtkCamera.h" #include "vtkImageActor.h" #include #include #include //#include "vtkMetaImageReader.h" //------------------------------------------------------------------------------------------------------------ // Events declaration //------------------------------------------------------------------------------------------------------------ //BEGIN_DECLARE_EVENT_TYPES() //END_DECLARE_EVENT_TYPES() /** file wxContourMainFrame.h */ //------------------------------------------------------------------------------------------------------------ // Class definition //------------------------------------------------------------------------------------------------------------ class interfMainPanel; class wxContourMainFrame : public wxPanel { public: //------------------------------------------------------------------------------------------------------------ // Constructors & Destructors //------------------------------------------------------------------------------------------------------------ wxContourMainFrame(wxWindow* parent, wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,long style = wxDEFAULT_FRAME_STYLE | wxSUNKEN_BORDER); wxContourMainFrame(wxWindow* parent, wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,std::vector images, long style = wxDEFAULT_FRAME_STYLE | wxSUNKEN_BORDER,std::string datadir="C:/Creatis/creaContoursBin/RelWithDebInfo/"); ~wxContourMainFrame(); //------------------------------------------------------------------------------------------------------------ // Creational and initialization methods //------------------------------------------------------------------------------------------------------------ void setVectImages( std::vector images ); bool configurePanels(wxAuiNotebook * theNoteBook ); void setNotebook( wxAuiNotebook * theNoteBook ); wxAuiNotebook * createNotebook(); void createInstantChooserPanel(wxAuiNotebook * parent); void createViewPanel(wxAuiNotebook * parent); void createInstantChooserPanel(wxWindow * parent); void createViewPanel(wxWindow * parent); void setInstantChooserPanel( wxInstantChooserPanel * theInstantChooserPanel ); // void setButtonsBar( wxContour_ButtonsBar * theButtonsBar ); // void setGrid( wxContour_Grid * theGridPanel ); // void setDrawToolsPanel( wxContour_DrawToolsPanel * theDrawToolsPanel ); // void setOperationsToolsPanel( wxContour_OperationsToolsPanel * theDrawToolsPanel ); // void setAutomaticFormsPanel( wxContour_AutomaticFormsToolsPanel * theAutoFormsPanel ); // void setStandardToolsPanel( wxContour_StandardToolsPanel * theStandardToolsPanel ); // void setEditionToolsPanel( wxContour_EdtionToolsPanel * theEditionToolsPanel ); // void setListViewPanel( wxContour_ListViewPanel * theListViewPanel ); ////------------------------------------------------------------------------------------------------------------ //// Methods for capturing events ////------------------------------------------------------------------------------------------------------------ ////------------------------------------------------------------------------------------------------------------ //// Model management methods ////------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------ // Attributes getters and setters //------------------------------------------------------------------------------------------------------------ static wxContourMainFrame* getInstance(wxWindow* parent, wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,std::vector images, long style = wxDEFAULT_FRAME_STYLE | wxSUNKEN_BORDER, std::string datadir="C:/Creatis/creaContoursBin/RelWithDebInfo/"); static wxContourMainFrame* getInstance(); static void resetInstance(); //------------------------------------------------------------------------------------------------------------ // Other functional methods //------------------------------------------------------------------------------------------------------------ /* ** This method returns the vector of images selected by the user ** return value std::vector */ std::vector getVectImages(); /** ** This methods connect the event in the class interfMainPanel with the world of the appli **/ void onCreateContourSpline( ); void onCreateContourRectangle( ); void onCreateContourCircle( ); void onCreateContourLine( ); void onCreateContourBullEye(wxPanel* pan); ///////////////////////////////// void onDeleteContour(); void deleteContours( std::vector keyNamesVector ); void deleteContour( std::string theKeyName ); void onDeleteContoursActSlice(); void onDeleteAllContours(); void deleteAllContours(); void setConceptValue( std::string name, int value ); ConceptDataWrap* getLastConceptData(); bool getIfConceptCheckedAt( std::string name, int pos ); void changeInstant(); int getNamesWrappingSize(); std::string getNameWrapping(int i); void updateInstantOutlines(); void updateInstantImageData(); void updateInstantAxes(); void onChangeDeep(int val); /////////////////////////// void onCopy(); void onPaste(); void onUndo(); void onRedo(); void createCopyContourOf ( std::string anExistingKName, std::vector &instantNoTouchData, bool append ); void createMirrorContourOf ( std::string anExistingKName, std::vector &instantNoTouchData, bool append ); ///////////////////////7 void onLoad(); void onSave(); void openContours( FILE *pFile, bool staticContour ); void RefreshInterface(); vtkImageData* getImageData(); void onSegmentationOneSlice(int isovalue,int sampling,int method); void onSegmentationOneSliceITK(wxString distance, wxString sigma, wxString alfa, wxString beta, wxString propagation, wxString iterations, wxString inflation); void SegmentationOneSlice( int x, int y, int z, int isovalue, int sampling, int method ); void SegmentationOneSliceITK(int x, int y, int z, wxString distance, wxString sigma, wxString alfa, wxString beta, wxString propagation, wxString iterations, wxString inflation); void Mirror( int x, int y, int z, int isovalue, int sampling, int method ); int GetImageDataSizeZ(); void GetImageDataRange(double *range); void onSegmentationAllSlice(int minZ,int maxZ,int isovalue,int sampling,int method); //AD void referenceLine(); void refLineHide(); void refLineShow(); void refLineChangeWidth(int width); //AD void onMirror(); void onThreshold(int minVal, int maxVal); void showAxis(bool show); void onRigidPressed(); void onWidthOfContour(double width); int getColorWindow(); int getWindowLevel(); void onBrigthnessColorWindowLevel(int colorwindow,int windowlevel); void onInterpolation(bool interpolate); void onChangeInstant(std::string name,int actual); void resetAppend(); void onSpreadAdd(); void onSpreadGo(int type); void getInstantVector(std::vector& tempVector); std::vector getOutlinesName(int slide); void onInformationContourLabels(int typeContourGroup,int selection,int minimumZ,int maximumZ); void onSaveResults(std::string directory,std::string namefile, std::string filename, int typeContourGroup); void SaveValuesXYZ(std::string directory,std::string namefile, int typeContourGroup); void SaveImageResult(std::string directory,std::string namefile, int typeContourGroup); void onChangeInstantInstantPanel(std::string name,int value, int minshow, int maxshow); void onSnakePressed(); void saveFileWithContoursAutomatique(); private: //------------------------------------------------------------------------------------------------------------ // Private methods //------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------ // Attributtes //------------------------------------------------------------------------------------------------------------ static wxContourMainFrame* instance; KernelManagerContour* kernelManager; interfMainPanel* _pannew; PerformingOperation* _performingOperation; std::string _datadir; wxContourViewPanel* _theViewPanel; wxInstantChooserPanel * _instantPanel; //AD: 03-09: This attributes represents the reference line that is going to be used for the mirroring manualLineControler * _refLineControl; manualContourModelLine * _refLineModel; manualViewLine * _refLineView; wxAuiManager m_mgr; /* wxArrayString m_perspectives; wxMenu* m_perspectives_menu; */ long m_notebook_style; long m_notebook_theme; int _numberOfVariablesStatistics; //OutlineModelManager * _modelManager; //wxContour_ButtonsBar * _buttonsBar; //wxContour_Grid * _gridPanel; //wxContour_DrawToolsPanel * _drawToolsPanel; //wxContour_OperationsToolsPanel * _operationsToolsPanel; //wxContour_AutomaticFormsToolsPanel * _autoFormsPanel; //wxContour_StandardToolsPanel *_standardToolsPanel; //wxContour_EdtionToolsPanel * _editionToolsPanel; //wxContour_ListViewPanel * _listViewPanel; //wxVtkBaseView_SceneManager * _sceneManager; //Instant * _actualInstant; /*DECLARE_CLASS(wxContourMainFrame) // any class wishing to process wxWindows events must use this macro DECLARE_EVENT_TABLE()*/ bool _creatingContoursActive; ////////JCP 21 - 11 - 08 void createContour( int typeContour ); //manualContourModel * factoryManualContourModel(int typeContour); manualContourModel * factoryManualContourModel(wxPanel* panel); void saveState(); void loadState(std::string filename); void saveFileWithContours( std::string filename ); int inredo; int inundo; std::string stundoredo; static char COPY; }; #endif