X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FInterface_ManagerContour_NDimensions%2FwxContourMainFrame.h;h=cceebd807b59ba75a1b6c77df7d56832b4181a2a;hb=d8ae77db08ab2e951c0e984c20fc47b615744abb;hp=32adc0fdc3ea420d6386875133142b03763011fa;hpb=6383d69864c69a97539b59d3e39406c79408577b;p=creaContours.git diff --git a/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.h b/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.h index 32adc0f..cceebd8 100644 --- a/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.h +++ b/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.h @@ -1,3 +1,28 @@ +/*# --------------------------------------------------------------------- +# +# 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 __wxContourMainFrame_h_INCLUDED_H__ #define __wxContourMainFrame_h_INCLUDED_H__ @@ -55,7 +80,7 @@ #include "itkZeroCrossingImageFilter.h" #include "itkCastImageFilter.h" -#include "itkImageFileWriter.h" +//EED10JUIN2011 #include "itkImageFileWriter.h" #include "itkImageToVTKImageFilter.h" #include "itkVTKImageToImageFilter.h" @@ -71,7 +96,6 @@ #include "vtkMetaImageWriter.h" #include "vtkImageData.h" #include "vtkTransform.h" - #include "vtkCamera.h" #include "vtkImageActor.h" #include @@ -101,7 +125,7 @@ class wxContourMainFrame : public wxPanel { //------------------------------------------------------------------------------------------------------------ // 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/"); @@ -123,7 +147,7 @@ class wxContourMainFrame : public wxPanel { void createInstantChooserPanel(wxAuiNotebook * parent); void createViewPanel(wxAuiNotebook * parent); - + void createInstantChooserPanel(wxWindow * parent); void createViewPanel(wxWindow * parent); @@ -140,13 +164,13 @@ class wxContourMainFrame : public wxPanel { ////------------------------------------------------------------------------------------------------------------ //// Methods for capturing events ////------------------------------------------------------------------------------------------------------------ - + ////------------------------------------------------------------------------------------------------------------ //// Model management methods ////------------------------------------------------------------------------------------------------------------ - + //------------------------------------------------------------------------------------------------------------ // Attributes getters and setters //------------------------------------------------------------------------------------------------------------ @@ -159,7 +183,7 @@ class wxContourMainFrame : public wxPanel { //------------------------------------------------------------------------------------------------------------ /* - ** This method returns the vector of images selected by the user + ** This method returns the vector of images selected by the user ** return value std::vector */ std::vector getVectImages(); @@ -184,19 +208,13 @@ class wxContourMainFrame : public wxPanel { 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(); @@ -209,12 +227,9 @@ class wxContourMainFrame : public wxPanel { void onSave(); void onImport(); void onTest(); - void openContours( FILE *pFile, FILE *pFileData, int version, bool staticContour ); - + void openContours( FILE *pFile, FILE *pFileData, 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 ); @@ -232,9 +247,15 @@ class wxContourMainFrame : public wxPanel { //AD void onMirror(); - - -//==================================================================================================== + + //EED + void FlipContours(int typeContourFlip, int flipDirection); + void FlipSelectedContours(int flipDirection); + void FlipActualSliceContours(int flipDirection); + void FlipAllContours(int flipDirection); + void FlipLstOfContours(std::vector lstNameThings, int flipDirection); + +//==================================================================================================== void showAxis(bool show); void onRigidPressed(); @@ -243,9 +264,11 @@ class wxContourMainFrame : public wxPanel { int getWindowLevel(); void onBrigthnessColorWindowLevel(int colorwindow,int windowlevel); void onInterpolation(bool interpolate); + void onBeforeAfterContour(bool before, bool after); void onChangeInstant(std::string name,int actual); void resetAppend(); void onSpreadAdd(); + void onSpreadAddAll(); void onSpreadGo(int type); void getInstantVector(std::vector& tempVector); std::vector getOutlinesName(int slide); @@ -254,37 +277,36 @@ class wxContourMainFrame : public wxPanel { // // @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, int selection, int minZ, int maxZ, bool XYZValues, bool contourImage, bool statistics); - void SaveValuesXYZ(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 ); + 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, int selection, int minZ, int maxZ, bool XYZValues, bool contourImage, bool statistics); + void SaveValuesXYZ(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); + void SetContourGroup(int contourGroup); wxPanel *getThresholdImageViewPanel(wxWindow *parent); wxPanel *getColorLayerImageViewPanel(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 + * @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 + * 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 + * Assigns and returns the value of a pixel in millimeters @ param value Measure of the pixel in millimeters */ double onePixelSize(double value); @@ -293,107 +315,123 @@ class wxContourMainFrame : public wxPanel { * Returns the type of the currently selected contour */ int getType(); - + /** - * Returns the size in pixels of the currently selected contour + * Returns the size in pixels of the currently selected contour */ double getContourSizeInPixels(); - + /** - * Returns the currently selected contour. If no contour is selected returns NULL - */ + * 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 + @ param newFileLocation New path of the file */ void SetFileLocation(std::string newFileLocation); //------------------------------------------------------------------------------------------------------------ void SetScalarRange(int grayRangeMin, int grayRangeMax); + std::string GetStringTypeImage( vtkImageData* image); + //------------------------------------------------------------------------------------------------------------ - + + void SetXY(int x,int y); + + private: //------------------------------------------------------------------------------------------------------------ // Private methods //------------------------------------------------------------------------------------------------------------ - + //------------------------------------------------------------------------------------------------------------ // Attributtes //------------------------------------------------------------------------------------------------------------ - + int _contourGroup; - static wxContourMainFrame* instance; - KernelManagerContour* kernelManager; - interfMainPanel* _pannew; - PerformingOperation* _performingOperation; - std::string _datadir; - wxContourViewPanel* _theViewPanel; - wxInstantChooserPanel * _instantPanel; + 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; - wxAuiNotebook * notebook; - long m_notebook_style; - long m_notebook_theme; - int _numberOfVariablesStatistics; - + manualLineControler *_refLineControl; + manualContourModelLine *_refLineModel; + manualViewLine *_refLineView; + + wxAuiManager m_mgr; + wxAuiNotebook *notebook; + long m_notebook_style; + long m_notebook_theme; + int _numberOfVariablesStatistics; + // Contour Image Mask ThresholdImageView *_viewMaskImage; ThresholdImageViewPanel *_viewMaskImagePanel; - - // Threshold Image + + // Threshold Image ThresholdImageView *_viewThresholdImage; ThresholdImageViewPanel *_viewThresholdImagePanel; - + // Color Layer Image - ColorLayerImageView *_viewColorLayerImage; ColorLayerImageViewPanel *_viewColorLayerImagePanel; - std::vector _images; - bool _actorPresent; + std::vector _images; + bool _actorPresent; + + // temporary variables readding .roi file + int _tmpReadFileImageDim[3]; + double _tmpReadFileImageSpac[3]; + int _tmpReadFileTypeOfTransformation; + void readDimSpc(FILE *pFile, bool interactiveOption); + /*DECLARE_CLASS(wxContourMainFrame) // any class wishing to process wxWindows events must use this macro DECLARE_EVENT_TABLE()*/ - bool _creatingContoursActive; + bool _creatingContoursActive; ////////JCP 21 - 11 - 08 void createContour( int typeContour ); //manualContourModel * factoryManualContourModel(int typeContour); manualBaseModel * factoryManualContourModel(wxPanel* panel); - ContourExtractData *_contourextractdata; + ContourExtractData *_contourextractdata; void saveState(); void loadState(std::string filename); - void loadContours( FILE *pFile, bool staticContour ); + +// void loadContours( FILE *pFile, bool staticContour ); + void saveFileWithContours( std::string filename ); - void onLoadContours(std::string fileNameContourROI); + void onLoadContours(std::string fileNameContourROI, bool interactiveInterface); + void SetZForAllContours(int pz); - int inredo; - int inundo; - std::string stundoredo; - static char COPY; + int inredo; + int inundo; + std::string stundoredo; + static char COPY; //CMRU 17-08-09----------------------------------------------------------------------------------------------- - wxWindow *infoWin2; - wxPanel *calibrationPanel; - wxPanel *calibrationPanelError; - double _onePixelSize; - std::string _imageLocation; - std::string _fileLocation; + wxWindow *infoWin2; + wxPanel *calibrationPanel; + wxPanel *calibrationPanelError; + double _onePixelSize; + std::string _imageLocation; + std::string _fileLocation; //------------------------------------------------------------------------------------------------------------ + wxFrame *_frameShowResultImages; + }; -#endif +#endif