]> Creatis software - creaMaracasVisu.git/blob - bbtk/src/bbmaracasvisuPlotterView.cxx
1495 BUG
[creaMaracasVisu.git] / bbtk / src / bbmaracasvisuPlotterView.cxx
1 #include "bbmaracasvisuPlotterView.h"
2 #include "bbcreaMaracasVisuPackage.h"
3
4 #include "pPlotterScaleX.h"
5 #include "pPlotterScaleY.h"
6
7
8 namespace bbcreaMaracasVisu
9 {
10
11 BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,PlotterView)
12 BBTK_BLACK_BOX_IMPLEMENTATION(PlotterView,bbtk::WxBlackBox);
13
14 //---------------------------------------------------
15 void PlotterView::Process()
16 {
17         
18         if (firsttime==true)
19         {
20                 firsttime=false;
21                 
22                 if (bbGetInputInY().size()!=0)          
23                 {
24                         // avoid 'taking address of temporary '
25                         //pGraphicalFunction *pGF = mwxwidget->getFunctionForVectors( &(bbGetInputInX()), &(bbGetInputInY()) ); // taking address of temporary ! JPRx
26                         std::vector<double> inX;
27                         if (bbGetInputInX().size()==0)
28                         {
29                                 int i,size=bbGetInputInY().size();
30                                 for(i=0;i<size;i++)
31                                 {
32                                         inX.push_back((double)i);
33                                 } // for
34                         } else {
35                                 inX = bbGetInputInX();
36                         } // if bbGetInputInX
37                         std::vector<double> inY = bbGetInputInY();
38                         pGraphicalFunction *pGF = mwxwidget->getFunctionForVectors( &inX, &inY ); 
39                         mwxwidget->addFunction(pGF);            
40                 } // if bbGetInputInY
41
42                 if (bbGetInputInY2().size()!=0)         
43                 {
44                         // avoid 'taking address of temporary '
45                         //pGraphicalFunction *pGF = mwxwidget->getFunctionForVectors( &(bbGetInputInX()), &(bbGetInputInY()) ); // taking address of temporary ! JPRx
46                         std::vector<double> inX2;
47                         if (bbGetInputInX().size()==0)
48                         {
49                                 int i,size=bbGetInputInY2().size();
50                                 for(i=0;i<size;i++)
51                                 {
52                                         inX2.push_back((double)i);
53                                 } // for
54                         } else {
55                                 inX2 = bbGetInputInX();
56                         } // if bbGetInputInX
57                         std::vector<double> inY2 = bbGetInputInY();
58                         pGraphicalFunction *pGF2 = mwxwidget->getFunctionForVectors( &inX2, &inY2 ); 
59                         mwxwidget->addFunction(pGF2);           
60                 } // if bbGetInputInY
61                 
62         } // if firsttime
63         
64         // Erasing  points
65         pGraphicalFunction *pGF = mwxwidget->getFunction(0);
66         if (pGF!=NULL)  
67         {
68                 int i,sizePoints                = pGF->getSizePoints();
69                 for (i=1; i<sizePoints;i++)
70                 {
71                         pGF->deletePointAt(1);
72                 } // for i
73                 double px;
74                 sizePoints=bbGetInputInY().size();
75                 for (i=0; i<sizePoints;i++)
76                 {
77                         if (i<bbGetInputInX().size())
78                         {
79                                 px = bbGetInputInX()[i]; 
80                         } else {
81                                 px = i;
82                         }       
83                         pGF->AddNewPoint( px, bbGetInputInY()[i] );
84                 }               
85         }// if pGF
86
87
88         // Erasing  points
89         pGraphicalFunction *pGF2 = mwxwidget->getFunction(1);
90         if (pGF2!=NULL) 
91         {
92                 int i,sizePoints                = pGF2->getSizePoints();
93                 for (i=0; i<sizePoints;i++)
94                 {
95                         pGF2->deletePointAt(1);
96                 } // for i
97                 double px;
98                 sizePoints=bbGetInputInY2().size();
99                 for (i=0; i<sizePoints;i++)
100                 {
101                         if (i<bbGetInputInX().size())
102                         {
103                                 px = bbGetInputInX()[i]; 
104                         } else {
105                                 px = i;
106                         }       
107                         pGF2->AddNewPoint( px, bbGetInputInY2()[i] );
108                 }               
109         }// if pGF
110                 
111         mwxwidget->setMinScrY(0);
112         mwxwidget->UpdateAll();
113 }
114
115         
116 //---------------------------------------------------
117 void PlotterView::CreateWidget(wxWindow* parent)
118 {
119    bbtkDebugMessageInc("Core",9,"PlotterView::CreateWxWindow()"<<std::endl);
120     
121    mwxwidget = new pPlotterWindow( parent , -1,wxDefaultPosition,  wxDefaultSize,  0 );
122    mwxwidget->AddLayer(new pPlotterScaleX());
123    mwxwidget->AddLayer(new pPlotterScaleY());
124         
125            bbtkDebugDecTab("Core",9);
126    bbSetOutputWidget( mwxwidget );
127 }
128
129 //---------------------------------------------------
130 void PlotterView::bbUserSetDefaultValues()
131 {
132         mwxwidget = NULL;
133         firsttime=true;
134 }
135         
136         //-----------------------------------------------------------------     
137         void PlotterView::bbUserInitializeProcessing()
138         {
139         }
140         
141         //-----------------------------------------------------------------     
142         void PlotterView::bbUserFinalizeProcessing()
143         {
144         }
145         
146         //-----------------------------------------------------------------     
147
148 }
149 // EO namespace bbcreaMaracasVisu
150
151