Types
LineSegment = object miny*: float64 maxy*: float64 minyx*: float64 islope*: float64
Matrix = object me*: seq[float64]
Path = ref object
PathLines = object lines*: seq[LineSegment] miny*: float64 maxy*: float64
Subpath = object
Vector2D = object x*: float64 y*: float64
Procs
proc `[]`(pl: PathLines; i: BackwardsIndex): lent LineSegment {....raises: [], tags: [], forbids: [].}
proc `[]`(pl: PathLines; i: int): lent LineSegment {....raises: [], tags: [], forbids: [].}
proc bezierCurveTo(path: Path; cp0x, cp0y, cp1x, cp1y, x, y: float64) {. ...raises: [], tags: [], forbids: [].}
proc cmpLineSegmentX(l1, l2: LineSegment): int {....raises: [], tags: [], forbids: [].}
proc cmpLineSegmentY(l1, l2: LineSegment): int {....raises: [], tags: [], forbids: [].}
proc getLineSegments(path: Path): PathLines {....raises: [], tags: [], forbids: [].}
proc newIdentityMatrix(n: int): Matrix {....raises: [], tags: [], forbids: [].}
proc p0(ls: LineSegment): Vector2D {.inline, ...raises: [], tags: [], forbids: [].}
proc p1(ls: LineSegment): Vector2D {.inline, ...raises: [], tags: [], forbids: [].}
proc quadraticCurveTo(path: Path; cpx, cpy, x, y: float64) {....raises: [], tags: [], forbids: [].}
proc tempClosePath(path: Path) {....raises: [], tags: [], forbids: [].}
proc tempOpenPath(path: Path) {....raises: [], tags: [], forbids: [].}
proc toLineSegment(line: Line): LineSegment {....raises: [], tags: [], forbids: [].}
Iterators
iterator items(pl: PathLines): lent LineSegment {.inline, ...raises: [], tags: [], forbids: [].}