private void RenderBitmap() { if (!settings.axes.hasBeenSet && settings.plottables.Count > 0) { settings.AxisAuto(); } if (!settings.layout.tighteningOccurred) { // ticks must be populated before the layout can be tightened Renderer.FigureTicks(settings); TightenLayout(); // only after the layout is tightened can the ticks be properly decided } settings.legend.rect = LegendTools.GetLegendFrame(settings, settings.gfxLegend); // TODO: this only re-renders the legend if the size changes. What if the colors change? if (settings.legend.rect.Size != settings.bmpLegend.Size) { InitializeLegend(settings.legend.rect.Size); } UpdateAntiAliasingSettings(); settings.benchmark.Start(); if (settings.gfxFigure != null) { // TODO: I removed "settings.bmpFigureRenderRequired" so the frame is currently being redrawn every time Renderer.FigureClear(settings); Renderer.FigureLabels(settings); Renderer.FigureTicks(settings); Renderer.FigureFrames(settings); } if (settings.gfxData != null) { Renderer.DataBackground(settings); Renderer.DataGrid(settings); Renderer.DataPlottables(settings); Renderer.MouseZoomRectangle(settings); Renderer.CreateLegendBitmap(settings); Renderer.PlaceDataOntoFigure(settings); Renderer.PlaceLegendOntoFigure(settings); } settings.benchmark.Stop(); settings.benchmark.UpdateMessage(settings.plottables.Count, settings.GetTotalPointCount()); Renderer.Benchmark(settings); }
public static void PlaceLegendOntoFigure(Settings settings) { if (settings.gfxFigure == null || settings.gfxLegend == null) { return; } bool legendHasItems = LegendTools.GetLegendItems(settings).Length > 0; bool legendHasLocation = settings.legend.location != legendLocation.none; if (legendHasItems && legendHasLocation) { Point legendLocation = new Point(settings.dataOrigin.X + settings.legend.rect.Location.X, settings.dataOrigin.Y + settings.legend.rect.Location.Y); settings.gfxFigure.DrawImage(settings.bmpLegend, legendLocation); } }
public static void CreateLegendBitmap(Settings settings) { LegendTools.DrawLegend(settings); }
public static void DataLegend(Settings settings) { LegendTools.DrawLegend(settings); }