Пример #1
0
    public RenderDetails Render(SKSurface surface, Plot plot)
    {
        var sw = System.Diagnostics.Stopwatch.StartNew();

        Common.ReplaceNullAxesWithDefaults(plot);
        Common.AutoAxisAnyUnsetAxes(plot);

        PixelRect figureRect = PixelRect.FromSKRect(surface.Canvas.LocalClipBounds);
        PixelRect dataRect   = Common.CalculateLayout(figureRect, plot);

        plot.XAxis.TickGenerator.Regenerate(plot.XAxis.Range, dataRect.Width);
        plot.YAxis.TickGenerator.Regenerate(plot.YAxis.Range, dataRect.Height);

        Common.RenderBackground(surface, dataRect, plot);
        Common.RenderGrids(surface, dataRect, plot, beneathPlottables: true);
        Common.RenderPlottables(surface, dataRect, plot);
        Common.RenderGrids(surface, dataRect, plot, beneathPlottables: false);
        Common.RenderAxes(surface, dataRect, plot);
        Common.RenderZoomRectangle(surface, dataRect, plot);
        sw.Stop();

        Common.RenderDebugInfo(surface, dataRect, sw.Elapsed, plot);

        return(new RenderDetails(figureRect, dataRect, sw.Elapsed));
    }