X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=lib%2FInterface_ManagerContour_NDimensions%2FwxContourMainFrame.h;h=9c50da0afd030bf51d8881996113a0619818707e;hb=7d61ec98f760736e883639ad6f71b0c88e35a1a2;hp=6259baff6ae56dbe6f5fbcd6f9dddf2cda2742c0;hpb=fce8424fdb8d78a343ccc1dd9551bbded44ab5fe;p=creaContours.git diff --git a/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.h b/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.h index 6259baf..9c50da0 100644 --- a/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.h +++ b/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.h @@ -28,12 +28,16 @@ #include "wxInstantChooserPanel.h" #include "wxContourViewPanel.h" - - //#include "ContourWorkspace.h" #include "ContourExtractData.h" #include "PerformingOperation.h" +#include "manualLineControler.h" +#include "manualContourModelLine.h" +#include "manualViewLine.h" + +#include "ThresholdImageView.h" +#include "ThresholdImageViewPanel.h" //#include "ContourThing.h" @@ -93,6 +97,13 @@ #include "vtkMetaImageWriter.h" #include "vtkImageData.h" #include "vtkTransform.h" + +#include "vtkCamera.h" +#include "vtkImageActor.h" +#include +#include +#include + //#include "vtkMetaImageReader.h" //------------------------------------------------------------------------------------------------------------ @@ -108,7 +119,7 @@ //------------------------------------------------------------------------------------------------------------ // Class definition //------------------------------------------------------------------------------------------------------------ - +class interfMainPanel; class wxContourMainFrame : public wxPanel { public: @@ -127,11 +138,11 @@ class wxContourMainFrame : public wxPanel { // Creational and initialization methods //------------------------------------------------------------------------------------------------------------ - void setVectImages( std::vector images ); + void setVectImages(std::vector imgs); - bool configurePanels(wxAuiNotebook * theNoteBook ); + bool configurePanels( ); - void setNotebook( wxAuiNotebook * theNoteBook ); + bool addNewPanel(wxPanel* panel); wxAuiNotebook * createNotebook(); @@ -145,20 +156,20 @@ class wxContourMainFrame : public wxPanel { void setInstantChooserPanel( wxInstantChooserPanel * theInstantChooserPanel ); -// void setButtonsBar( wxContour_ButtonsBar * theButtonsBar ); + void getMaskValue(vtkImageData ** mask,vtkImageData ** value,int typeContourGroup, int selection, int minZ, int maxZ); -// void setGrid( wxContour_Grid * theGridPanel ); + void SaveImageResult(std::string directory,std::string namefile, vtkImageData* mask,vtkImageData* value); -// void setDrawToolsPanel( wxContour_DrawToolsPanel * theDrawToolsPanel ); + void ShowToolsPanel(bool show); -// void setOperationsToolsPanel( wxContour_OperationsToolsPanel * theDrawToolsPanel ); +// 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 ); @@ -177,6 +188,8 @@ class wxContourMainFrame : public wxPanel { //------------------------------------------------------------------------------------------------------------ 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 //------------------------------------------------------------------------------------------------------------ @@ -194,6 +207,8 @@ class wxContourMainFrame : public wxPanel { void onCreateContourRectangle( ); void onCreateContourCircle( ); void onCreateContourLine( ); + void onCreateContourPoints( ); + void onCreateContourPolygon( ); void onCreateContourBullEye(wxPanel* pan); ///////////////////////////////// void onDeleteContour(); @@ -212,7 +227,6 @@ class wxContourMainFrame : public wxPanel { std::string getNameWrapping(int i); - void updateInstantOutlines(); void updateInstantImageData(); void updateInstantAxes(); @@ -229,36 +243,33 @@ class wxContourMainFrame : public wxPanel { ///////////////////////7 void onLoad(); void onSave(); - - void openContours( FILE *pFile, bool staticContour ); + void onImport(); + void openContours( FILE *pFile, FILE *pFileData, int version, 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(); - + 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 showAxis(bool show); @@ -285,19 +296,84 @@ class wxContourMainFrame : public wxPanel { std::vector getOutlinesName(int slide); - void onInformationContourLabels(int typeContourGroup,int selection,int minimumZ,int maximumZ); + // + // + // @param typeContourGroup - int The operation id (AND,OR,XOR,ALL=3) + // + void onInformationContourLabels(int typeContourGroup,int selection,int minimumZ,int maximumZ,int grayRangeMin, int grayRangeMax); - void onSaveResults(std::string directory,std::string namefile, std::string filename, int typeContourGroup); + void onSaveResults(std::string directory,std::string namefile, std::string filename, + int typeContourGroup, int selection, int minZ, int maxZ, bool XYZValues, bool contourImage, bool statistics); 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(); + + void ShowResultImages(int typeContourGroup, int selection, int minZ, int maxZ ); + + wxPanel *getMaskImageViewPanel(wxWindow *parent); + void SetContourGroup(int contourGroup); + wxPanel *getThresholdImageViewPanel(wxWindow *parent); + + +//CMRU 17-08-09----------------------------------------------------------------------------------------------- + + /** + * Associates the String parameter with the contour + * @param label Label entered by the user + * @param manualBaseModel Currently selected contour + */ + void onPrintLabel (wxString label, manualBaseModel* manualModel); + + /** + * Calculates the size of the contour received as a parameter. Uses the measure of a pixel in millimeters. + * @param manualBaseModel Currently selected contour + */ + void onInsertCalculation(manualBaseModel* manualModel); + + /** + * Assigns and returns the value of a pixel in millimeters + @ param value Measure of the pixel in millimeters + */ + double onePixelSize(double value); + + /** + * Returns the type of the currently selected contour + */ + int getType(); + + /** + * Returns the size in pixels of the currently selected contour + */ + double getContourSizeInPixels(); + + /** + * Returns the currently selected contour. If no contour is selected returns NULL + */ + manualBaseModel* getContour(); + + /** + * Returns the Path of the data persistence file + */ + std::string GetFileLocation(); + + /** + * Assign a new path to the data persistence file + @ param newFileLocation New path of the file + */ + void SetFileLocation(std::string newFileLocation); +//------------------------------------------------------------------------------------------------------------ + + void SetScalarRange(int grayRangeMin, int grayRangeMax); + +//------------------------------------------------------------------------------------------------------------ + private: //------------------------------------------------------------------------------------------------------------ // Private methods @@ -307,10 +383,17 @@ private: //------------------------------------------------------------------------------------------------------------ // Attributtes //------------------------------------------------------------------------------------------------------------ + + int _contourGroup; + static wxContourMainFrame* instance; KernelManagerContour* kernelManager; + interfMainPanel* _pannew; + + PerformingOperation* _performingOperation; + std::string _datadir; wxContourViewPanel* _theViewPanel; @@ -318,46 +401,36 @@ private: 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; + manualLineControler * _refLineControl; + manualContourModelLine * _refLineModel; + manualViewLine * _refLineView; wxAuiManager m_mgr; - /* - wxArrayString m_perspectives; - wxMenu* m_perspectives_menu; - */ + wxAuiNotebook * notebook; + long m_notebook_style; long m_notebook_theme; - int _numberOfVariablesStatistics; - - //OutlineModelManager * _modelManager; - + int _numberOfVariablesStatistics; - //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; + // Contour Image Mask + ThresholdImageView *_viewMaskImage; + ThresholdImageViewPanel *_viewMaskImagePanel; + + // Threshold Image + ThresholdImageView *_viewThresholdImage; + ThresholdImageViewPanel *_viewThresholdImagePanel; + + + std::vector _images; - //Instant * _actualInstant; + bool _actorPresent; + + /*DECLARE_CLASS(wxContourMainFrame) // any class wishing to process wxWindows events must use this macro @@ -368,26 +441,34 @@ private: //manualContourModel * factoryManualContourModel(int typeContour); - manualContourModel * factoryManualContourModel(wxPanel* panel); - - + manualBaseModel * factoryManualContourModel(wxPanel* panel); + + ContourExtractData *_contourextractdata; + void saveState(); void loadState(std::string filename); + void loadContours( FILE *pFile, bool staticContour ); void saveFileWithContours( std::string filename ); + void onLoadContours(std::string fileNameContourROI); int inredo; int inundo; std::string stundoredo; - - - //wxContourViewPanel* _viewPan; - PerformingOperation* _performingOperation; static char COPY; +//CMRU 17-08-09----------------------------------------------------------------------------------------------- + wxWindow *infoWin2; + wxPanel *calibrationPanel; + wxPanel *calibrationPanelError; + double _onePixelSize; + std::string _imageLocation; + std::string _fileLocation; +//------------------------------------------------------------------------------------------------------------ + }; #endif