]> Creatis software - creaMaracasVisu.git/blobdiff - bbtk/src/bbmaracasvisuPlotterView.cxx
#3351 creaMaracasVisu Bug New Normal - Refresh ViewerNV
[creaMaracasVisu.git] / bbtk / src / bbmaracasvisuPlotterView.cxx
index 4f3f520e30a41024dd055f07aaf02bec1cc20c5d..e3e61bad11061a5e80f15e47956e139715a7aa01 100644 (file)
@@ -39,13 +39,10 @@ BBTK_BLACK_BOX_IMPLEMENTATION(PlotterView,bbtk::WxBlackBox);
 //---------------------------------------------------
 void PlotterView::Process()
 {
-                       
-       if (bbGetInputInX().size()==bbGetInputInY().size() ) {
-
+       if (bbGetInputInX().size()==bbGetInputInY().size() ) 
+    {
                pGraphicalFunction *pGF  = mwxwidget->getFunction(0);
                pGraphicalFunction *pGF2 = mwxwidget->getFunction(1);
-
-
        // EED 2020-01-22
                if (pGF!=NULL)  
                { 
@@ -80,14 +77,11 @@ void PlotterView::Process()
                        mwxwidget->deleteFunction(pGF2); 
                        pGF2=NULL; 
                }
-
-
-               
+       
                        if ( (bbGetInputInY().size()!=0) && (pGF==NULL) )               
                        {
                                // avoid 'taking address of temporary '
                                //pGraphicalFunction *pGF = mwxwidget->getFunctionForVectors( &(bbGetInputInX()), &(bbGetInputInY()) ); // taking address of temporary ! JPRx
-                       
                                std::vector<double> inX;
                                if (bbGetInputInX().size()==0)
                                {
@@ -100,16 +94,25 @@ void PlotterView::Process()
                                        inX = bbGetInputInX();
                                } // if bbGetInputInX
                                std::vector<double> inY = bbGetInputInY();
-                        
-                               pGF = mwxwidget->getFunctionForVectors( &inX, &inY ); 
-                               mwxwidget->addFunction(pGF);            
+
+                               bool ok=false;
+                               int i, size = inY.size();
+                               for ( i=0 ; i<size ; i++ )
+                               {       
+                                       if (inY[i]!=0) {ok=true;}
+                               }// for
+                               if (ok==true) 
+                               {
+                                       pGF = mwxwidget->getFunctionForVectors( &inX, &inY ); 
+                                       mwxwidget->addFunction(pGF);            
+                               } // if ok
+
                        } // if bbGetInputInY
 
-                       if ((bbGetInputInY2().size()!=0)&& (pGF2==NULL)         )
+                       if ((bbGetInputInY2().size()!=0)&& (pGF2==NULL) )
                        {
                                // avoid 'taking address of temporary '
                                //pGraphicalFunction *pGF = mwxwidget->getFunctionForVectors( &(bbGetInputInX()), &(bbGetInputInY()) ); // taking address of temporary ! JPRx
-                       
                                std::vector<double> inX2;
                                if (bbGetInputInX().size()==0)
                                {
@@ -121,11 +124,22 @@ void PlotterView::Process()
                                } else {
                                        inX2 = bbGetInputInX();
                                } // if bbGetInputInX
-                               std::vector<double> inY2 = bbGetInputInY();
-                               pGF2 = mwxwidget->getFunctionForVectors( &inX2, &inY2 ); 
-                               mwxwidget->addFunction(pGF2);           
+                               std::vector<double> inY2 = bbGetInputInY2();
+
+                               bool ok2=false;
+                               int i, size = inY2.size();
+                               for ( i=0 ; i<size ; i++ )
+                               {       
+                                       if (inY2[i]!=0) {ok2=true;}
+                               }// for
+                               if (ok2==true) 
+                               {
+                                       pGF2 = mwxwidget->getFunctionForVectors( &inX2, &inY2 ); 
+                                       mwxwidget->addFunction(pGF2);           
+                               } // if ok
+
+
                        } // if bbGetInputInY
-                       
                
        /* EED 2020-01-22
 
@@ -180,9 +194,7 @@ void PlotterView::Process()
                        }  // for       
                }// if pGF
        */
-
                mwxwidget->UpdateAll();
-
        } else {
                printf("EED Warnning... PlotterView::Process()   Size of vecto X and Y is not coherent.\n");
        } // InX.size InY.size