public static int Left(this LineSegment segment) { return(Math.Min(segment.Start.X, segment.End.X)); }
public static IEnumerable <Point> Points(this LineSegment self) { return(Enumerate(self.Start.X, self.End.X) .SelectMany(x => Enumerate(self.Start.Y, self.End.Y).Select(y => new { x, y })) .Select(p => new Point(p.x, p.y))); }
public static int Right(this LineSegment segment) { return(Math.Max(segment.Start.X, segment.End.X)); }
public static int Bottom(this LineSegment segment) { return(Math.Min(segment.Start.Y, segment.End.Y)); }
public static int Top(this LineSegment segment) { return(Math.Max(segment.Start.Y, segment.End.Y)); }
public static bool IsVertical(this LineSegment segment) { return(segment.Start.X == segment.End.X); }
public static LineSegment Extend(this LineSegment originalSegment, string instruction) { return(new LineSegment(originalSegment.End, originalSegment.End.Translate(instruction))); }