]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/pPlotter.cxx
creaButtonContainer: exceptions added, doxygen documentation added :)
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / pPlotter / pPlotter.cxx
index 769aa45398c039accc201b59d30f2670ef020f43..97015de50c4af851b37f436bfddc0460d0dd52fd 100644 (file)
@@ -100,7 +100,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() );  
@@ -142,14 +142,14 @@ END_EVENT_TABLE()
                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);
                
                
@@ -182,8 +182,9 @@ END_EVENT_TABLE()
 
 
        pPlotter :: ~pPlotter ()
-       {
-
+       {       
+               
+               
        }
 
 //---------------------------------------------------------------------------------------------
@@ -276,7 +277,7 @@ 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);
@@ -347,7 +348,7 @@ void pPlotter :: onChangeFunction (wxCommandEvent& event)
                else
                        color_bar ->reinitiateColorBarTo(actualColorPoints);
 
-               color_bar -> setVisibleRange (realMin_X, maxShowed);
+               color_bar -> setVisibleRange ((int)realMin_X, maxShowed);
                
                // Refresh
                color_bar -> RefreshForce();
@@ -440,9 +441,9 @@ void  pPlotter::onStartChange_Bar(wxCommandEvent& event)
        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.
@@ -464,8 +465,8 @@ void  pPlotter::onEndChange_Bar(wxCommandEvent& event)
        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);
+       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();
@@ -633,8 +634,8 @@ void pPlotter :: sendTMessage(wxString theText)
        }
        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);
        }
 
@@ -717,5 +718,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);
+               }               
+       }
+}
+
+