@@ -328,35 +328,38 @@ void DemoScene::RenderPanel() {
328328 ImPlot::SetupAxisLimits (ImAxis_X1, t - history, t, ImGuiCond_Always);
329329 ImPlot::SetupAxisLimits (ImAxis_Y1, -10000 , 10000 );
330330
331- ImPlot::PlotShaded (" Pow drain" , &graph_buffer_.Data [0 ].x ,
332- &graph_buffer_.Data [0 ].y , graph_buffer_.Data .size (),
331+ auto get_x = [](auto & buf) { return buf.Data .empty () ? nullptr : &buf.Data [0 ].x ; };
332+ auto get_y = [](auto & buf) { return buf.Data .empty () ? nullptr : &buf.Data [0 ].y ; };
333+
334+ ImPlot::PlotShaded (" Pow drain" , get_x (graph_buffer_),
335+ get_y (graph_buffer_), graph_buffer_.Data .size (),
333336 -INFINITY ,
334337 ImPlotSpec (ImPlotProp_FillAlpha, 0 .5f ,
335338 ImPlotProp_Offset, graph_buffer_.Offset ,
336339 ImPlotProp_Stride, (int )(2 * sizeof (float ))));
337340
338- ImPlot::PlotLine (" Forecast x1" , & graph_buffer_forecast1_. Data [ 0 ]. x ,
339- & graph_buffer_forecast1_. Data [ 0 ]. y ,
341+ ImPlot::PlotLine (" Forecast x1" , get_x ( graph_buffer_forecast1_) ,
342+ get_y ( graph_buffer_forecast1_) ,
340343 graph_buffer_forecast1_.Data .size (),
341344 ImPlotSpec (ImPlotProp_Offset, graph_buffer_forecast1_.Offset ,
342345 ImPlotProp_Stride, (int )(2 * sizeof (float ))));
343- ImPlot::PlotLine (" x10" , & graph_buffer_forecast2_. Data [ 0 ]. x ,
344- & graph_buffer_forecast2_. Data [ 0 ]. y ,
346+ ImPlot::PlotLine (" x10" , get_x ( graph_buffer_forecast2_) ,
347+ get_y ( graph_buffer_forecast2_) ,
345348 graph_buffer_forecast2_.Data .size (),
346349 ImPlotSpec (ImPlotProp_Offset, graph_buffer_forecast2_.Offset ,
347350 ImPlotProp_Stride, (int )(2 * sizeof (float ))));
348- ImPlot::PlotLine (" x100" , & graph_buffer_forecast3_. Data [ 0 ]. x ,
349- & graph_buffer_forecast3_. Data [ 0 ]. y ,
351+ ImPlot::PlotLine (" x100" , get_x ( graph_buffer_forecast3_) ,
352+ get_y ( graph_buffer_forecast3_) ,
350353 graph_buffer_forecast3_.Data .size (),
351354 ImPlotSpec (ImPlotProp_Offset, graph_buffer_forecast3_.Offset ,
352355 ImPlotProp_Stride, (int )(2 * sizeof (float ))));
353- ImPlot::PlotLine (" ADPF" , & graph_buffer_power1_. Data [ 0 ]. x ,
354- & graph_buffer_power1_. Data [ 0 ]. y ,
356+ ImPlot::PlotLine (" ADPF" , get_x ( graph_buffer_power1_) ,
357+ get_y ( graph_buffer_power1_) ,
355358 graph_buffer_power1_.Data .size (),
356359 ImPlotSpec (ImPlotProp_Offset, graph_buffer_power1_.Offset ,
357360 ImPlotProp_Stride, (int )(2 * sizeof (float ))));
358- ImPlot::PlotLine (" NOADPF" , & graph_buffer_power2_. Data [ 0 ]. x ,
359- & graph_buffer_power2_. Data [ 0 ]. y ,
361+ ImPlot::PlotLine (" NOADPF" , get_x ( graph_buffer_power2_) ,
362+ get_y ( graph_buffer_power2_) ,
360363 graph_buffer_power2_.Data .size (),
361364 ImPlotSpec (ImPlotProp_Offset, graph_buffer_power2_.Offset ,
362365 ImPlotProp_Stride, (int )(2 * sizeof (float ))));
0 commit comments