/// A 2D drawing made up of straight lines. struct LineDrawing2D { field lines: Line[Point2D]; } /// A drawing made up of straight lines. struct LineDrawing[TPoint] { field lines: Line[TPoint]; } /// A straight line from one point to another. struct Line[TPoint] { field start: TPoint; field end: TPoint; } /// A 2D point. struct Point2D { field x: Int32; field y: Int32; }