X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FInterface_Icons_NDimensions%2FinterfMainPanel.h;h=e6eb6e8c2256c30b977c3c758d403183c02f768c;hb=86f5e10e3c87848b546e96700c4d94233246c94e;hp=cb17e22cc118d30c3c2c938ccb6290490ae3d346;hpb=4d5574beaa0d2f56951b00a9fcca5dd945506e13;p=creaContours.git diff --git a/lib/Interface_Icons_NDimensions/interfMainPanel.h b/lib/Interface_Icons_NDimensions/interfMainPanel.h index cb17e22..e6eb6e8 100644 --- a/lib/Interface_Icons_NDimensions/interfMainPanel.h +++ b/lib/Interface_Icons_NDimensions/interfMainPanel.h @@ -1,3 +1,31 @@ +/*# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ */ + +#ifndef __interfMainPanel_h_INCLUDED_H__ +#define __interfMainPanel_h_INCLUDED_H__ + #pragma once #include @@ -11,8 +39,9 @@ #include "interfToolsSpreadPanel.h" #include "interfSegmentationMenu.h" #include "interfMenuBar.h" -#include "interfSegmentationPanels.h" #include "interfToolsPanels.h" +#include "interfSegmentationPanels.h" +#include "interfImageToolsMenu.h" #include #include @@ -26,7 +55,7 @@ class interfMainPanel : public wxPanel { public: - + interfMainPanel(wxWindow * parent, int sizex, int sizey, wxEvtHandler * evtHandler, std::string datadir = "data/Icons"); ~interfMainPanel(void); @@ -42,19 +71,22 @@ public: ** Gets the instance of the class **/ static interfMainPanel* getInstance(); - + /** + ** Ressts the instance of the class + **/ + static void resetInstance(); /** ** Adds a new checkbox to the scrolledwindow using the checkboxsizer ** @Params id of contour - ** + ** **/ void addContourCheckBox(std::string id); /** ** Removes a checkbox from the list of checkboxes in the flexsizer (checkboxsizer) ** @Params id of contour - ** + ** **/ void removeContourCheckBox(std::string id); @@ -68,14 +100,20 @@ public: void onActionButtonPressed1( wxCommandEvent& event ); /** - ** Shows the panel in the + ** Shows the panel in the **/ void showPanel(wxWindow* panel); + + /** + ** Hides the panel in the + **/ + void hidePanel( ); + /** ** Gets the Information panel **/ wxPanel* getInfoPanel(); - + /** ** This methods connect the event in the class interfNewContourMenu with the world of the appli **/ @@ -83,10 +121,18 @@ public: void onCreateContourRectangle( ); void onCreateContourCircle( ); void onCreateContourLine( ); + // RaC 09-09 --------------------- + void onCreateContourPoints( ); + // RaC 09-09 --------------------- + + // RaC 10-09 --------------------- + void onCreateContourPolygon( ); + // RaC 10-09 --------------------- + void onCreateContoursBullEye(wxPanel* panBull); ///////////////////////////////// - void onDeleteContour(); void onDeleteContoursActSlice(); + void onDeleteContour(); void onDeleteAllContours(); ///////////////////////// void onCopy(); @@ -97,98 +143,130 @@ public: ////////////////////////// void onLoad(); void onSave(); + void onImport(); + void onTest(); /////////////////////////////7 void RefreshInterface(); - vtkImageData* getImageData(); - + void getImageRange(double[2]); void onSegmentationOneSlice(int isovalue,int sampling,int method); - + void onSegmentationOneSliceITK(wxString distance, wxString sigma, wxString alfa, wxString beta, wxString propagation, wxString iterations, wxString inflation); int GetImageDataSizeZ(); - - void GetImageDataRange(double *range); - - void onSegmentationAllSlice(int minZ,int maxZ,int isovalue,int sampling,int method); - + void onSegmentationAllSlices(int minZ,int maxZ,int isovalue,int sampling,int method); + void onMirrorPressed(); void onMirror(); - + void onMirrorAxisShow(); + void onMirrorAxisHide(); + void onMirrorChangeWidth(int width); + void onThresholdPressed(); + void onColorLayerImagePressed(); void setLabelSegmentationPanelVTK(wxString tmpString); - void onSegmentationPressed(); - void onSegmentationPressedITK(); - void onRigidPressed(); - void onWidthOfContour(double width); - int getColorWindow(); int getWindowLevel(); - void onBrigthnessColorWindowLevel(int colorwindow,int windowlevel); - void onInterpolation(bool interpolate); - + void onShowTextContour(bool show); + void onBeforAfterContour(bool before, bool after); + void onJumpSlice(int step,int shift); void onSpreadPressed(); - void onConfigurationPressed(); - void resetAppend(); - void onSpreadAdd(); - + void onSpreadAddAll(); void appendStringSpread(std::string val); - void onSpreadGo(int type); - void setStringSpread(std::string stringtemp); - void onInformationPressed(); - - void getInstantVector(std::vector& tempVector); - std::vector getOutlinesName(int slide); - - void onInformationContourLabels(int typeContourGroup,int selection,int minZ,int maxZ); - - void setStringInfoPanel(wxString tmpString); - + void onInformationContourLabels(int typeContourGroup,int selection,int minZ,int maxZ,int grayRangeMin,int grayRangeMax); + void setStringInfoPanel(wxString tmpString); void setRowLabelInfoPanel(int z, wxString tempString); - int getNumberColsInformationPanel(); - void appendColsInformationPanel(int _numberOfVariablesStatistics); - void setCellValueInfoPanel(int z,int tmpIntA,wxString tempString); - void setColLableInfoPanel(int tmpIntB ,wxString tmpTitleString); + void SetScalarRange(int grayRangeMin,int grayRangeMax); + 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); + wxString getCellValue(int j,int i); + void onSnakePressed(); + virtual bool Show(bool show); + void ShowResultImages(int typeContourGroup, int selection, int minZ, int maxZ); + void SetContourGroup(int contourGroup); + void onFlipContours(); + void FlipContours(int typeContourFlip, int flipDirection); - void onSaveResults(std::string directory,std::string namefile, std::string filename,int typeContourGroup); + +//CMRU 29-08-09----------------------------------------------------------------------------------------------- - wxString getCellValue(int j,int i); + /** + * Associates the current selected contour with a label + */ + void onPrintLabel(); - void onSnakePressed(); + /** + * Calculates the pixel value in milimeters according to the current contour if the selected contour is a Line Contour + * @param size Size in milimeters of the selected contour + * @param unit Measurement unit + */ + void onCalibration(wxString size, int unit); - void onMirrorPressed(); + /** + * Calculate the pixel value in milimeters + * @param realSize Size of the contour in milimeters + * @param sizePixel Size of the contour in pixels + */ + double onePixelSize (double realSize,double sizePixel); + + /** + * Returns the value of a pixel in milimeters + */ + double GetPixelValue(); +//------------------------------------------------------------------------------------------------------------ private: - + static interfMainPanel* interfmainpanel; + static wxFrame* _newframe; wxPanel* menubar; wxPanel* menubar1; wxPanel* menubar2; wxPanel* menubar3; wxPanel* menubar4; wxPanel* menubar5; + wxPanel* menubar6; wxWindow* currentWindow; wxSplitterWindow* splitterwindow; wxPanel* infoPanel; + wxPanel* infoPanelMask; + +//CMRU 17-08-09 ------------------------------------------------------------------ + + /** + * Panel with the calibration options + */ + wxPanel* infoPanelCalibration; + + /** + * Panel who contains the calibration panel and the information panel mask + */ + wxPanel* panelAux; + + /** + * Value of a pixel in milimeters + */ + double _pixelValue; +//-------------------------------------------------------------------------------- wxStaticText* statictext; wxStaticText* statictext1; @@ -196,6 +274,7 @@ private: wxStaticText* statictext3; wxStaticText* statictext4; wxStaticText* statictext5; + wxStaticText* statictext6; std::string PANEL; std::string PANEL1; @@ -203,21 +282,32 @@ private: std::string PANEL3; std::string PANEL4; std::string PANEL5; + std::string PANEL6; + + wxPanel *segmentPanel; + wxPanel *segmentationPanel; + wxPanel *segmentPanelITK; + wxPanel *configPanel; + wxPanel *spreadPanel; + interfSpreadPanel *panelSpread; + wxWindow *infoWin; + wxPanel *informationPanel; + + wxPanel *testPanel; + interfTestPanel *panelTest; + + wxPanel *flipPanel; + interfFlipPanel *panelFlip; + + wxPanel *mirrorPanel; + interfMirrorPanel *panelMirror; - wxPanel* segmentPanel; - wxPanel* segmentationPanel; - wxPanel* segmentPanelITK; - wxPanel* configPanel; - wxPanel* spreadPanel; - interfSpreadPanel* panelSpread; - wxPanel* mirrorPanel; - interfMirrorPanel* panelMirror; - wxWindow* infoWin; - wxPanel* informationPanel; + wxPanel *thresholdPanel; + wxPanel *colorImageLayerPanel; bool axisshown; + bool refLineShown; - //This attribute contains the panel in charge of adding and removing the corresponding checkboxes in //list of contours interfToolsSpreadPanel* toolspread; @@ -244,5 +334,8 @@ private: **/ wxPanel* setMenuTextSizer(wxWindow* parent, wxPanel* panel, wxStaticText* text); - + }; + +#endif +