Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
 public static void CreateLegendBitmap(Settings settings)
 {
     LegendTools.DrawLegend(settings);
 }
Exemplo n.º 4
0
 public static void DataLegend(Settings settings)
 {
     LegendTools.DrawLegend(settings);
 }