X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FpPlotter%2FHistogramDialog.h;h=c3ba219648c39cef58f1e74017e7de8897724d79;hb=255f774ce4100c0b84e6b5efa5c64d0db77f8a61;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..c3ba219 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__ @@ -23,9 +48,17 @@ //#include #include #include - #include +#if (VTK_MAJOR_VERSION <= 7) + #include +#else + #include +#endif #include - #include "../wxMPRWidget.h" + //#include "../wxMPRWidget.h" + +#include "HistogramDialogComboBoxItem.h" +#include +#include class HistogramDialog:public wxDialog { @@ -33,7 +66,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 */ @@ -107,10 +145,14 @@ public: bool getRefreshed(); void setCTF(vtkColorTransferFunction* cf); void setTF(vtkPiecewiseFunction* tf); +#if (VTK_MAJOR_VERSION <= 7) void setVolumeMapper(vtkVolumeRayCastMapper* volMapper); +#else + void setVolumeMapper(vtkFixedPointVolumeRayCastMapper* volMapper); +#endif void setVolume(vtkVolume* vol); - void setMPR3Dview(wxVtkMPR3DView *wxvtkmpr3Dview1); - void setClipping3DView(wxVtkClipping3DView *wxvtkclipping3Dview1); + //void setMPR3Dview(wxVtkMPR3DView *wxvtkmpr3Dview1); + //void setClipping3DView(wxVtkClipping3DView *wxvtkclipping3Dview1); //-------------------- // plotter Information @@ -125,51 +167,113 @@ 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; vtkPiecewiseFunction *_tfun; +#if (VTK_MAJOR_VERSION <= 7) vtkVolumeRayCastMapper *volumeMapper; +#else + vtkFixedPointVolumeRayCastMapper *volumeMapper; +#endif 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