+/*# ---------------------------------------------------------------------
+#
+# 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
//---------------------------------------------------------------------------------------------
{
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() );
mpWindow* mplotWindow = ((mpWindow*)m_plot);
float minReal_X = 0; //(float)mplotWindow->getMinScrX();
float maxReal_X =(float)mplotWindow->getMaxScrX();
- float scrX=(float)mplotWindow->GetScrX()-100;
- double scaleX=(scrX/(maxReal_X))* (mplotWindow->getZoomFactor()); // ........
+ //float scrX=(float)mplotWindow->GetScrX()-100; // JPRx
+ //double scaleX=(scrX/(maxReal_X))* (mplotWindow->getZoomFactor()); // JPRx
// Creating the color bar with values according to the plotter added widget
color_bar = new pColorBar(this, (m_plot->GetSize()).GetWidth(),40, true);
- color_bar -> setRepresentedValues (minReal_X, maxReal_X);
+ color_bar -> setRepresentedValues ((int)minReal_X, (int)maxReal_X);
color_bar -> setDeviceBlitStart (70,0);
- color_bar -> setVisibleRange (minReal_X, maxReal_X);
+ color_bar -> setVisibleRange ((int)minReal_X,(int) maxReal_X);
color_bar -> setDeviceEndMargin (50);
pPlotter :: ~pPlotter ()
- {
-
+ {
+
+
}
//---------------------------------------------------------------------------------------------
Set the bars according to the actual function
*/
- void pPlotter::setAll()
+void pPlotter::setAll()
{
actualFunction = m_plot->getActualFunction();
-
if (actualFunction != NULL)
{
barrange -> setActiveStateTo(true);
color_bar -> setActiveStateTo(true);
-
text.Clear();
text = _T("minX=");
double realMin_X = actualFunction->getMinX();
+//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0
+#if wxMAJOR_VERSION <= 2
text = text + realMin_X;
+#else
+ text = text + wxString::FromDouble( realMin_X );
+#endif
text = text + _T(" maxX=");
double realMax_X = actualFunction->getMaxX();
+//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0
+#if wxMAJOR_VERSION <= 2
text = text + realMax_X;
-
+#else
+ text = text + wxString::FromDouble( realMax_X );
+#endif
int minShowed = actualFunction->getMinXShowed();
int maxShowed = actualFunction->getMaxXShowed();
-
barrange -> setRepresentedValues (realMin_X, realMax_X);
barrange->SetStart( minShowed );
barrange->SetEnd( maxShowed );
-
-
std::vector<pColorPoint *> actualColorPoints;
- actualFunction -> getColorPoints(actualColorPoints);
+ actualFunction->getColorPoints(actualColorPoints);
if(actualColorPoints.empty())
- color_bar ->reinitiateColorBar (realMin_X, realMax_X);
- else
- color_bar ->reinitiateColorBarTo(actualColorPoints);
-
- color_bar -> setVisibleRange (minShowed, maxShowed);
-
+ {
+ color_bar->reinitiateColorBar (realMin_X, realMax_X);
+ } else {
+ color_bar->reinitiateColorBarTo(actualColorPoints);
+ }
+ color_bar->setVisibleRange (minShowed, maxShowed);
// Refresh
- color_bar -> RefreshForce();
- barrange -> RefreshForce();
-
+ color_bar->RefreshForce();
+ barrange->RefreshForce();
sendTMessage(text);
- }
+ } // if actualFunction
}
//-----------------------------------------------------------------------------------------------------
// Updating methods for occured events in the color bar
//-----------------------------------------------------------------------------------------------------
-void pPlotter :: onAdded_ColorPoint(wxCommandEvent& event)
+void pPlotter::onAdded_ColorPoint(wxCommandEvent& event)
{
text.Clear();
text = _T( "Last event was on color bar: Color point added, total#");
-
actualFunction = m_plot->getActualFunction();
if(actualFunction!=NULL)
{
color_bar ->getAddedColorsPointsList(actualColorPoints);
actualFunction -> setColorPoints(actualColorPoints);
text << actualColorPoints.size();
-
sendTMessage(text);
}
}
+
void pPlotter :: onRemoved_ColorPoint(wxCommandEvent& event)
{
text.Clear();
text = _T( "Last event on color bar: Color point removed total#");
-
actualFunction = m_plot->getActualFunction();
std::vector<pColorPoint *> actualColorPoints;
color_bar ->getAddedColorsPointsList(actualColorPoints);
actualFunction -> setColorPoints(actualColorPoints);
text << actualColorPoints.size();
-
sendTMessage(text);
}
+
void pPlotter :: onMoved_ColorPoint(wxCommandEvent& event)
{
text.Clear();
text = _T( "Last event was on color bar: Color point moved to: ");
- int lastReal_X = (color_bar->getLastMovedColorPoint())->getRealX();
+ int lastReal_X = (int)(color_bar->getLastMovedColorPoint())->getRealX();
text << lastReal_X;
-
barrange ->setRealX_vertical_line (lastReal_X);
barrange -> RefreshForce();
-
m_plot->setRealGuideX (lastReal_X);
m_plot->UpdateAll();
-
sendTMessage(text);
}
+
void pPlotter:: onChanged_ColorPoint(wxCommandEvent& event)
{
- text.Clear();
+ text.Clear();
sendTMessage(_T("Last event was on color bar: Color point changed color"));
}
barrange->SetEnd( maxShowed );
std::vector<pColorPoint *> actualColorPoints;
- actualFunction -> getColorPoints(actualColorPoints);
+ actualFunction->getColorPoints(actualColorPoints);
if(actualColorPoints.empty())
- color_bar ->reinitiateColorBar (realMin_X, realMax_X);
- else
- color_bar ->reinitiateColorBarTo(actualColorPoints);
-
- color_bar -> setVisibleRange (realMin_X, maxShowed);
+ {
+ color_bar->reinitiateColorBar (realMin_X, realMax_X);
+ } else {
+ color_bar->reinitiateColorBarTo(actualColorPoints);
+ }
+ color_bar->setVisibleRange ((int)realMin_X, maxShowed);
// Refresh
- color_bar -> RefreshForce();
- barrange -> RefreshForce();
+ color_bar->RefreshForce();
+ barrange->RefreshForce();
sendTMessage(text);
- }
+ } // if actualFunction
}
*/
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);
}
text += wxString::Format(_T("%d"), realMin_X);
double realMax_X = m_plot->getMaxScrX();
- color_bar -> setVisibleRange (realMin_X, realMax_X);
+ color_bar -> setVisibleRange (realMin_X, (int)realMax_X);
- m_plot->actualizeViewRange(realMin_X,realMax_X);
+ m_plot->actualizeViewRange(realMin_X, (int)realMax_X);
//setting the plotter for draw the functions that
//it has to move.
- float startP=(float)barrange->getStartShowPorcentage();
- float endP=(float)barrange->getEndShowPorcentage();
+ float startP = (float)barrange->getStartShowPorcentage();
+ float endP = (float)barrange->getEndShowPorcentage();
m_plot->moveFunctions(startP,endP);
//Updating
{
text.Clear();
text += _T("Last event was on min-max bar: End triangle moved to: ");
- int realMax_X = barrange->GetEnd();
+ int realMax_X = barrange->GetEnd();
text += wxString::Format(_T("%d"),realMax_X);
- double realMin_X = m_plot->getMinScrX();
- color_bar -> setVisibleRange (realMin_X, realMax_X);
- m_plot->actualizeViewRange(realMin_X,realMax_X);
-
- float startP=(float)barrange->getStartShowPorcentage();
- float endP=(float)barrange->getEndShowPorcentage();
+ double realMin_X = m_plot->getMinScrX();
+ color_bar -> setVisibleRange ((int)realMin_X, realMax_X);
+ m_plot->actualizeViewRange((int)realMin_X,realMax_X);
+ float startP = (float)barrange->getStartShowPorcentage();
+ float endP = (float)barrange->getEndShowPorcentage();
m_plot->moveFunctions(startP,endP);
-
color_bar -> RefreshForce();
m_plot -> UpdateAll();
-
sendTMessage(text);
}
}
void pPlotter::eraseColorPoints()
{
- int min=color_bar->getMinValue();
- int max=color_bar->getMaxValue();
+ int min=(int)color_bar->getMinValue();
+ int max=(int)color_bar->getMaxValue();
color_bar->reinitiateColorBar(min,max);
}
{
return barrange->getEndShowPorcentage();
}
+
float pPlotter::getMinShowedPorcentage()
{
return barrange->getStartShowPorcentage();
}
+
float pPlotter::getActualShowedPorcentage()
{
return barrange->getActualShowPorcentage();
*/
+/**
+** 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);
+ } // for
+ } // if
+}
+
+/**
+** 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);
+ } // for
+ } // if
+}
+
+