VTKFIG  0.20.20181114
Easy VTK based in situ visualization
void myplot::RTBuildAllVTKPipelines ( vtkSmartPointer< vtkRenderer >  renderer)
inlinevirtual

Default implementation for 2D/3d datasets.

Reimplemented from vtkfig::Figure.

Definition at line 152 of file example-axis.cxx.

153  {
154  auto ctxactor= vtkSmartPointer<vtkContextActor>::New();
155  auto XAxis=vtkSmartPointer<vtkAxis>::New();
156 
157  double P00x=0.1; double P00y=0.1;
158  double P01x=0.1; double P01y=0.9;
159  double P10x=0.9; double P10y=0.1;
160  double P11x=0.9; double P11y=0.9;
161  renderer->NormalizedDisplayToDisplay(P00x,P00y);
162  renderer->NormalizedDisplayToDisplay(P10x,P10y);
163  renderer->NormalizedDisplayToDisplay(P01x,P01y);
164  renderer->NormalizedDisplayToDisplay(P11x,P11y);
165 
166  XAxis->SetPoint1(P00x,P00y);
167  XAxis->SetPoint2(P10x,P10y);
168  cout << P10x << " " << P10y << endl;
169  XAxis->SetPosition(vtkAxis::BOTTOM);
170  XAxis->SetRange(0,10);
171  XAxis->SetAxisVisible(1);
172  XAxis->SetGridVisible(1);
173  XAxis->SetScene(ctxactor->GetScene());
174  XAxis->Update();
175 
176 
177  auto YAxis=vtkSmartPointer<vtkAxis>::New();
178  YAxis->SetPoint1(P00x,P00y);
179  YAxis->SetPoint2(P01x,P01y);
180  YAxis->SetPosition(vtkAxis::LEFT);
181  YAxis->SetRange(0.01,10);
182 // YAxis->LogScaleOn();
183 // YAxis->SetNumberOfTicks(2);
184  YAxis->SetAxisVisible(1);
185  YAxis->SetGridVisible(1);
186  YAxis->SetScene(ctxactor->GetScene());
187  YAxis->Update();
188 
189 // XAxis->GetProperty()->SetColor(0,0,0);
190 
191  auto Grid=vtkSmartPointer<vtkPlotGrid>::New();
192  Grid->SetXAxis(XAxis);
193  Grid->SetYAxis(YAxis);
194  Grid->Update();
195 
196  cout << ctxactor->GetScene()->GetViewWidth() << " "<< ctxactor->GetScene()->GetViewHeight() << endl;
197  cout << ctxactor->GetScene()->GetSceneWidth() << " "<< ctxactor->GetScene()->GetSceneHeight() << endl;
198 
199 
200 
201  vtkSmartPointer<vtkDoubleArray> X;
202  vtkSmartPointer<vtkDoubleArray> Y;
203  vtkSmartPointer<vtkTable> table;
204  vtkSmartPointer<vtkPlotLine> line;
205 
206  X=vtkSmartPointer<vtkDoubleArray>::New();
207  Y=vtkSmartPointer<vtkDoubleArray>::New();
208  X->SetName("X");
209  Y->SetName("Y");
210  table=vtkSmartPointer<vtkTable>::New();
211  table->AddColumn(X);
212  table->AddColumn(Y);
213 
214  int N=100;
215  table->SetNumberOfRows(N);
216  double x=0.0;
217  double h=1.0/N;
218  for (int i=0;i<N;i++,x+=h)
219  {
220  table->SetValue(i,0,10*x);
221  table->SetValue(i,1,exp(sin(10.0*x)));
222  }
223 
224 
225  line=vtkSmartPointer<vtkPlotLine>::New();
226  line->SetInputData(table, 0, 1);
227  line->SetXAxis(XAxis);
228  line->SetYAxis(YAxis);
229  line->SetPolyLine(true);
230  line->SetColor(1,0,0);
231  line->Update();
232 
233 
234 
235  ctxactor->GetScene()->AddItem(Grid);
236  ctxactor->GetScene()->AddItem(XAxis);
237  ctxactor->GetScene()->AddItem(YAxis);
238  ctxactor->GetScene()->AddItem(line);
239  Figure::RTAddContextActor(ctxactor);
240 
241 
242 
243 
244  }