using System; using System.Drawing; using System.Drawing.Imaging; using System.Collections.Generic; namespace Assistance { public class Track { public static readonly Pen pen = new Pen(Brushes.DarkGreen, 3f); public static readonly Pen penPreview = new Pen(new SolidBrush(Color.FromArgb(64, Color.DarkGreen)), 1f); public readonly List points = new List(); public Rectangle getBounds() { if (points.Count == 0) return new Rectangle(); Rectangle bounds = new Rectangle(points[0]); foreach(Point p in points) bounds = bounds.expand(p); return bounds.inflate(Math.Max(pen.Width, penPreview.Width) + 2.0); } public void draw(Graphics g, bool preview = false) { if (points.Count < 2) return; PointF[] ps = new PointF[points.Count]; for(int i = 0; i < ps.Length; ++i) ps[i] = points[i].toFloat(); g.DrawLines(preview ? penPreview : pen, ps); } } }