#### 2.2.2 Lines

Line `object`s are straight graphical line segments with no electrical meaning. A line’s geometrical parameters are a start point and end point, and it supports different colors and stroke styles.

Many of the functions for manipulating lines are also used to manipulate line-like objects such as nets, buses or pins.

Function: line? object

  Returns ‘`#t`’ if and only if object is a line `object`.

Function: make-line start end [color]

  Creates and returns a new line `object`. start is the position of the start of the new line in the form `(x . y)` and end is the position of end of the line. If color is specified, it should be the integer color map index of the color with which to draw the line. If color is not specified, the default line color is used.

Function: set-line! line start end [color]

  Sets the parameters of line (which may be a line, net, bus or pin `object`). The arguments are the same as to `make-line`. Returns line.

Function: line-info line

  Returns the parameters of line (which may be a line, net, bus or pin `object`). The return value is a list in the form:

      ((start-x . start-y) (end-x . end-y) color)

  Note: For pin `object`s, first coordinate is the connectable point on the pin.

Function: line-start line

  Returns the position ‘`(x . y)`’ of the start of line (which may be a line, net, bus or pin `object`). For pin `objects`, this is the position of the connectable point on the pin.

Function: line-end line

  Returns the position ‘`(x . y)`’ of the end of line (which may be a line, net, bus or pin `object`).