X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FpPlotter%2FHistogramDialog.h;h=5ac1e398857d340b6fcbdf0fe47cb760a1c4d54b;hb=d5e0666e18ece9462fa780e06a3b3a541266363c;hp=a23cd3b2e528ec92db0ddab3627b1ca28fde85a9;hpb=c5feadbb145eecf6d73f793535b7e23eb18db2cb;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialog.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialog.h index a23cd3b..5ac1e39 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialog.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialog.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 __HISTOGRAMSDIALOG__ #define __HISTOGRAMSDIALOG__ @@ -25,7 +50,11 @@ #include #include #include - #include "../wxMPRWidget.h" + //#include "../wxMPRWidget.h" + +#include "HistogramDialogComboBoxItem.h" +#include +#include class HistogramDialog:public wxDialog { @@ -33,7 +62,12 @@ public: /* Constructor */ - HistogramDialog(wxWindow *parent,wxString title,vtkImageData* imageData,int type); + HistogramDialog(wxWindow *parent,wxString title,vtkImageData* imageData,bool extracontrols=false); + /* + Constructor + */ + HistogramDialog(wxWindow *parent,wxString title,bool extracontrols=false); + ~HistogramDialog(); /* Methods */ @@ -109,8 +143,8 @@ public: void setTF(vtkPiecewiseFunction* tf); void setVolumeMapper(vtkVolumeRayCastMapper* volMapper); void setVolume(vtkVolume* vol); - void setMPR3Dview(wxVtkMPR3DView *wxvtkmpr3Dview1); - void setClipping3DView(wxVtkClipping3DView *wxvtkclipping3Dview1); + //void setMPR3Dview(wxVtkMPR3DView *wxvtkmpr3Dview1); + //void setClipping3DView(wxVtkClipping3DView *wxvtkclipping3Dview1); //-------------------- // plotter Information @@ -125,51 +159,111 @@ public: void OnLoadData(wxCommandEvent& event); void OnRefreshBtn(wxCommandEvent& event); + + /** + ** Initialize the histogram + */ + void initializeHistogram(vtkImageData* img); + /** + ** Returns two vectors, the grey level of the point and its value, the value is between [0,1] + **/ + void GetValuesPointsFunction(std::vector& greylevel,std::vector& value); + + /** + ** Returns two vectors, the grey level of the point and its value, the red, green + ** and blue value is between [0,1] + **/ + void GetValuesColorPointsFunction(std::vector& greylevel, + std::vector& red, + std::vector& green, + std::vector& blue); + void SetFunctions(vtkPiecewiseFunction* _opac, vtkColorTransferFunction* _color); + + /** + ** Set to true in the constructor + **/ + void setInfoPanExtraControls(std::vector comboitems); + + + /** + * + */ + void OnEditColorsCombo(wxCommandEvent& event); + void OnDeleteColor(wxCommandEvent& event); + + std::vector getComboBoxItems(){return _comboitems;} + + void UpdateCurrentComboElement(); + private: /* Histogram Widget */ HistogramWidget* histogramW; - +/** +** +**/ /* ok Button */ - wxButton *okBtn; + //wxButton *okBtn; + wxBitmapButton *okBtn; /* cancel Button */ - wxButton *cancelBtn; + //wxButton *cancelBtn; + wxBitmapButton *cancelBtn; /* save Button */ - wxButton *saveDataBtn; + wxButton *saveDataBtn; /* Load Button */ - wxButton *loadDataBtn; + wxButton *loadDataBtn; /* Refresh Button */ - wxButton *refreshBtn; + wxButton *refreshBtn; + wxPanel *_panextracontrols; // the user had pressed refresh bool refreshed; - vtkColorTransferFunction *_ctfun; + vtkColorTransferFunction *_ctfun; vtkPiecewiseFunction *_tfun; - vtkVolumeRayCastMapper *volumeMapper; + vtkVolumeRayCastMapper *volumeMapper; vtkVolume *newvol; //things to refresh - wxVtkMPR3DView *wxvtkmpr3Dview; - wxVtkClipping3DView *wxvtkclipping3Dview; + //wxVtkMPR3DView *wxvtkmpr3Dview; + //wxVtkClipping3DView *wxvtkclipping3Dview; + + + wxSizer* getControls(bool extracontrols = false); + // DECLARE_CLASS(HistogramDialog); // any class wishing to process wxWindows events must use this macro //DECLARE_EVENT_TABLE() + + void initializeHistogramDialog(bool extracontrols); + + wxPanel* getPanExtraControls(); + + std::vector bitmapbuttonsvect; + std::vector _comboitems; + + void setCurrentColorConfigurationIntoButton(); + void AddNewBitmapButton(); + wxSizer* getBitmapButtonDelete(wxBitmap bitmap); + std::vector _deletebuttonsvector; + + int _maxgreyvalue; + int _currentcolorselectedbitmap; }; #endif