A line is a special case of a polyline having only one segment. The functions for making and dealing with lines are the following:
line [Protocol Class]
Summary: The protocol class that corresponds to a mathematical line segment, that is, a polyline with only a single segment. This is a subclass of polyline . If you want to create a new class that behaves like a line, it should be a subclass of line . Subclasses of line must obey the line protocol.
Summary: Returns t if object is a line; otherwise, it returns nil .
Summary: An instantiable class that implements a line segment. This is a subclass of line . This is the class that make-line and make-line* instantiate. Members of this class are immutable.
Arguments: start-point end-point
Arguments: start-x start-y end-x end-y
Summary: Returns an object of class standard-line that connects the two points start-point and end-point (or the positions ( start-x , start-y ) and ( end-x , end-y )).
These functions capture their mutable inputs; the consequences of modifying those objects are unspecified.
The following generic functions comprise the line Application Programmer Interface. Only line-start-point* and line-end-point* are in the line protocol; that is, all classes that are subclasses of line must implement methods for line-start-point* and line-end-point* , but need not implement methods for line-start-point and line-end-point .
line-start-point* [Generic Function]
line-end-point* [Generic Function]
Summary: Returns the starting or ending point, respectively, of the line line as two real numbers representing the coordinates of the point.
line-start-point [Generic Function]
line-end-point [Generic Function]
Summary: Returns the starting or ending point of the line line , respectively.
CLIM will supply default methods for line-start-point and line-end-point on the protocol class line that are implemented by calling line-start-point* and line-end-point* .
Common Lisp Interface Manager 2.0 User's Guide - 20 Sep 2011