GradientFill.cs 664 B

123456789101112131415161718192021222324
  1. namespace Terminal.Gui;
  2. /// <summary>
  3. /// Implementation of <see cref="IFill"/> that uses a color gradient (including
  4. /// radial, diagonal etc).
  5. /// </summary>
  6. public class GradientFill : IFill
  7. {
  8. private Dictionary<Point, Color> _map;
  9. public GradientFill (Rectangle area, Gradient gradient, Gradient.Direction direction)
  10. {
  11. _map = gradient.BuildCoordinateColorMapping (area.Height, area.Width, direction);
  12. }
  13. public Color GetColor (Point point)
  14. {
  15. if (_map.TryGetValue (point, out var color))
  16. {
  17. return color;
  18. }
  19. return new Color (0, 0, 0); // Default to black if point not found
  20. }
  21. }