]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramWidget.h
#2490 creaMaracasVisu Feature New High - Histogram Interaction
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / pPlotter / HistogramWidget.h
index ff2d80329075a1d080899f3ecf7e662669e50046..cd5cc1aad15edd364fcfb17057ad77042f4f82c6 100644 (file)
@@ -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 __HISTOGRAMW__
@@ -16,6 +41,7 @@
 #include <wx/wx.h>
 #endif
 
+#include "marTypes.h"
 #include "pPlotter.h"
 #include "pFunctionPoint.h"
 #include  "vtkImageData.h"
 #include "pPlotterScaleY.h"
 #include "pPlotterScaleX.h"
 
-#define MAX 500
+//#define MAX 500
 #define NUM_POINTS 100
 #define WINDOW_SIZE 10
 
-class HistogramWidget:public wxPanel
+class creaMaracasVisu_EXPORT HistogramWidget:public wxPanel
 {
 public:
        //---------------------
@@ -38,6 +64,8 @@ public:
        
  
        HistogramWidget( wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, int flag,vtkImageData* imageData,int type);
+
+       HistogramWidget( wxWindow *parent, wxWindowID id);
        
        ~HistogramWidget();
 
@@ -133,15 +161,33 @@ public:
        int getHistogramSize();
        void setType(int type);
 
+       /**
+       **      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<double>& greylevel,std::vector<double>& 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<double>& greylevel,
+                                                                       std::vector<double>& red,
+                                                                       std::vector<double>& green,
+                                                                       std::vector<double>& blue);
 
 
+       
 private:
        
-        pHistogram* histogram;
-        pPlotter* plotter;
-        int idTransferenceFunction;
-        int histogramSize;
-        int idHistogram;
+        pHistogram*    histogram;
+        pPlotter*              plotter;
+        int                            idTransferenceFunction;
+        int                            histogramSize;
+        int                            idHistogram;
         /*
          if the image has already a transference
          function and color defines to that function
@@ -149,11 +195,12 @@ private:
         */
         bool transferenceFunctionHasPoints;
         bool transferenceFunctionHasColor;
+        wxPanel* getControls();
         /*
         * type=1 with transference function for moving
         * type=2 without transference function for moving
         */
-        int type;
+        int type;      
         
         DECLARE_CLASS(HistogramWidget);
         //----------------------------------------------------------------------------