public override Color VisitRadialGradientPaintServer(SvgRadialGradientPaintServer paintServer) { if (CheckInvalidGradientPaintServer(paintServer, _spotColorOverride, out var color)) { return(color); } var stops = ConvertStops(paintServer.Stops, _spotColorOverride); var fx = paintServer.FocalX; var fy = paintServer.FocalY; var cx = paintServer.CircleX; var cy = paintServer.CircleY; var cr = paintServer.CircleRadius; RectangleF pdfPagePlacementRect; if (paintServer.Units == SvgUnitTypes.ObjectBoundingBox) { var bbox = GetBBoxOrThrow(); pdfPagePlacementRect = CalculatePagePlacementRect(bbox); fx /= bbox.Width; fy /= bbox.Height; cx /= bbox.Width; cy /= bbox.Height; cr /= bbox.Width; } else { // units = userSpaceOnUse pdfPagePlacementRect = new RectangleF(0, _pageHeight, _pageViewport.ScaleX, _pageViewport.ScaleY); } var circle0 = new Circle(fx, fy, 0); var circle1 = new Circle(cx, cy, cr); return(new RadialGradientShadingColor(pdfPagePlacementRect, circle0, circle1, stops)); }
public virtual void VisitRadialGradientPaintServer(SvgRadialGradientPaintServer paintServer) => VisitGradientPaintServer(paintServer);