]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/pPlotter.cxx
#2482 creaMaracasVisu Bug New High - ColorLayer refresh missing. The MPR is not...
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / pPlotter / pPlotter.cxx
index 81726093f4c39d38fe68d4a972afa3b65c5ed63a..bddea2312257675dda70286dd5bfa5fd0ab74590 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.
+# ------------------------------------------------------------------------ */
+
 //---------------------------------------------------------------------------------------------
 // Class definition include
 //---------------------------------------------------------------------------------------------
@@ -100,7 +125,7 @@ END_EVENT_TABLE()
        {
                SetBackgroundColour(wxColour(255,255,255));
                m_plot = new pPlotterWindow( this, -1, wxPoint(0,0), wxSize(nWidth,nHeight), wxSUNKEN_BORDER );
-               
+               actualFunction =NULL;
                // Adding the axis layers to the plotter
                m_plot->AddLayer( new pPlotterScaleX() );
                m_plot->AddLayer( new pPlotterScaleY() );  
@@ -182,8 +207,9 @@ END_EVENT_TABLE()
 
 
        pPlotter :: ~pPlotter ()
-       {
-
+       {       
+               
+               
        }
 
 //---------------------------------------------------------------------------------------------
@@ -413,18 +439,17 @@ void  pPlotter::onBarrange(wxCommandEvent& event)
 */
 void  pPlotter::onActualChange_Bar(wxCommandEvent& event)
 {
-       text.Clear();
-       text = _T( "Last event was on min-max bar: Actual triangle moved to: " );
        int lastActual_X = barrange->GetActual();
-
-       text << lastActual_X;
        
        color_bar ->setRealX_vertical_line (lastActual_X);
-       m_plot->setRealGuideX (lastActual_X);
-
        color_bar -> RefreshForce();    
+
+       m_plot->setRealGuideX (lastActual_X);
        m_plot->UpdateAll();
 
+       text.Clear();
+       text = _T( "Last event was on min-max bar: Actual triangle moved to: " );
+       text << lastActual_X;
        sendTMessage(text);
 }
 
@@ -717,5 +742,55 @@ void pPlotter :: sendTMessage(wxString theText)
        */
        
 
+/**
+**     Returns two vectors, the grey level of the point and its value, the value is between [0,1]
+**/
+void pPlotter::GetValuesPointsFunction(std::vector<double>& greylevel,std::vector<double>& value, int histogramsize)
+{
+       if(actualFunction != NULL){
+               double* xval = actualFunction->getX_RealValues();
+               double* yval = actualFunction->getY_RealValues();
+
+               actualFunction->getScaleY();
+               for(int i = 0; i < actualFunction->getSizePoints();i++){
+                       greylevel.push_back(xval[i]);
+                       value.push_back(yval[i]/histogramsize);
+               }
+       }
+}
+
+/**
+**     Returns two vectors, the grey level of the point and its value, the red, green
+**     and blue value is between [0,1]
+**/
+void pPlotter::GetValuesColorPointsFunction(std::vector<double>& greylevel,
+                                                               std::vector<double>& red,
+                                                               std::vector<double>& green,
+                                                               std::vector<double>& blue)
+{
+
+       if(color_bar != NULL){
+
+               std::vector<pColorPoint*> colors;
+        color_bar->getAddedColorsPointsList(colors);
+
+               for(int i = 0; i < colors.size();i++){
+                       pColorPoint* pcolor = colors[i];
+
+                       greylevel.push_back(pcolor->getRealX());
+                       wxColour colour = pcolor->getColor();
+                       
+                       double _red = (double)(colour.Red())/255.0;
+                       double _green = (double)(colour.Green())/255.0;
+                       double _blue = (double)(colour.Blue())/255.0;
+
+                       red.push_back(_red);
+                       green.push_back(_green);
+                       blue.push_back(_blue);
+               }               
+       }
+}
+
+