From 2983bb1ebd4014d0024796a40a6fd1ff64fdb565 Mon Sep 17 00:00:00 2001
From: Eduardo Davila <Eduardo.Davila@creatis.insa-lyon.fr>
Date: Thu, 26 Jul 2012 08:31:09 +0000
Subject: [PATCH] BUG  1495   Refresh PlotterView

---
 bbtk/src/bbmaracasvisuPlotterView.cxx | 62 ++++++++++++++++++++-------
 1 file changed, 46 insertions(+), 16 deletions(-)

diff --git a/bbtk/src/bbmaracasvisuPlotterView.cxx b/bbtk/src/bbmaracasvisuPlotterView.cxx
index 078bfb2..4eff20d 100644
--- a/bbtk/src/bbmaracasvisuPlotterView.cxx
+++ b/bbtk/src/bbmaracasvisuPlotterView.cxx
@@ -14,15 +14,26 @@ BBTK_BLACK_BOX_IMPLEMENTATION(PlotterView,bbtk::WxBlackBox);
 //---------------------------------------------------
 void PlotterView::Process()
 {
-	
-	if (firsttime==true)
-	{
-		firsttime=false;
+//	if (firsttime==true)
+//	{
+//		firsttime=false;
 		
-		if (bbGetInputInY().size()!=0)		
+	
+	printf("EED PlotterView::Process %d %d \n ", bbGetInputInY().size(),bbGetInputInY2().size());
+	
+	pGraphicalFunction *pGF = mwxwidget->getFunction(0);
+	pGraphicalFunction *pGF2 = mwxwidget->getFunction(1);
+
+	   if ( (bbGetInputInY().size()!=0)  &&  (bbGetInputInY2().size()==0) )
+	   {
+		   bbSetInputInY2( bbGetInputInY() );
+	   } 
+	
+		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)
 			{
@@ -35,14 +46,22 @@ void PlotterView::Process()
 				inX = bbGetInputInX();
 			} // if bbGetInputInX
 			std::vector<double> inY = bbGetInputInY();
-			pGraphicalFunction *pGF = mwxwidget->getFunctionForVectors( &inX, &inY ); 
+		 
+	/*
+			std::vector<double> inX;
+			std::vector<double> inY;
+			inX.push_back(0); 			inX.push_back(200);
+			inY.push_back(0); 			inY.push_back(1);
+	 */
+			pGF = mwxwidget->getFunctionForVectors( &inX, &inY ); 
 			mwxwidget->addFunction(pGF);		
 		} // if bbGetInputInY
 
-		if (bbGetInputInY2().size()!=0)		
+		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)
 			{
@@ -55,21 +74,27 @@ void PlotterView::Process()
 				inX2 = bbGetInputInX();
 			} // if bbGetInputInX
 			std::vector<double> inY2 = bbGetInputInY();
-			pGraphicalFunction *pGF2 = mwxwidget->getFunctionForVectors( &inX2, &inY2 ); 
+		/*
+			std::vector<double> inX2;
+			std::vector<double> inY2;
+			inX2.push_back(0); 			inX2.push_back(200);
+			inY2.push_back(0); 			inY2.push_back(1);
+		 */
+			pGF2 = mwxwidget->getFunctionForVectors( &inX2, &inY2 ); 
 			mwxwidget->addFunction(pGF2);		
 		} // if bbGetInputInY
 		
-	} // if firsttime
+//	} // if firsttime
 	
-	// Erasing  points
-	pGraphicalFunction *pGF = mwxwidget->getFunction(0);
 	if (pGF!=NULL)	
 	{
+		// -Erasing  points-
 		int i,sizePoints		= pGF->getSizePoints();
 		for (i=1; i<sizePoints;i++)
 		{
-			pGF->deletePointAt(1);
+			pGF->deletePointAt(1);  //  EED here NOT 0 is 1
 		} // for i
+		// -Add Points-
 		double px;
 		sizePoints=bbGetInputInY().size();
 		for (i=0; i<sizePoints;i++)
@@ -85,15 +110,15 @@ void PlotterView::Process()
 	}// if pGF
 
 
-	// Erasing  points
-	pGraphicalFunction *pGF2 = mwxwidget->getFunction(1);
 	if (pGF2!=NULL)	
 	{
+		// -Erasing  points-
 		int i,sizePoints		= pGF2->getSizePoints();
 		for (i=0; i<sizePoints;i++)
 		{
-			pGF2->deletePointAt(1);
+			pGF2->deletePointAt(1);   //  EED here NOT 0 is 1
 		} // for i
+		// -Add Points-
 		double px;
 		sizePoints=bbGetInputInY2().size();
 		for (i=0; i<sizePoints;i++)
@@ -108,8 +133,9 @@ void PlotterView::Process()
 		}		
 	}// if pGF
 		
-	mwxwidget->setMinScrY(0);
 	mwxwidget->UpdateAll();
+	
+	
 }
 
 	
@@ -121,6 +147,10 @@ void PlotterView::CreateWidget(wxWindow* parent)
    mwxwidget = new pPlotterWindow( parent , -1,wxDefaultPosition,  wxDefaultSize,  0 );
    mwxwidget->AddLayer(new pPlotterScaleX());
    mwxwidget->AddLayer(new pPlotterScaleY());
+
+	mwxwidget->setMinScrY(0);
+	mwxwidget->setMaxScrY(5000);
+
 	
 	   bbtkDebugDecTab("Core",9);
    bbSetOutputWidget( mwxwidget );
-- 
2.49.0