Page 23 Table of Contents Index Page 25
Chapters
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E



CHAPTER 3. REGIONS

Returns the starting or ending point, respectively, of the line line as two real numbers representing
the coordinates of the point.

=> line-start-point line [Generic Function]
=> line-end-point line [Generic Function]
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*.

3.2.4 Rectangles

Rectangles whose edges are parallel to the coordinate axes are a special case of polygon that can
be specified completely by four real numbers (x1,y1,x2,y2). They are not closed under general
affine transformations (although they are closed under rectilinear transformations).

=> rectangle [Protocol Class]
The protocol class that corresponds to a mathematical rectangle, that is, rectangular polygons
whose sides are parallel to the coordinate axes. This is a subclass of polygon. If you want to
create a new class that behaves like a rectangle, it should be a subclass of rectangle. Subclasses
of rectangle must obey the rectangle protocol.

=> rectanglep object [Function]
Returns true if object is a rectangle, otherwise returns false.

=> standard-rectangle [Class]
An instantiable class that implements an axis-aligned rectangle. This is a subclass of rectangle.
This is the class that make-rectangle and make-rectangle* instantiate. Members of this class
are immutable.

=> make-rectangle point1 point2 [Function]
=> make-rectangle* x1 y1 x2 y2 [Function]
Returns an object of class standard-rectangle whose edges are parallel to the coordinate axes.
One corner is at the point point1 (or the position (x1,y1)) and the opposite corner is at the point
point2 (or the position (x2,y2)). There are no ordering constraints among point1 and point2 (or
x1 and x2, and y1 and y2).

Most CLIM implementations will choose to represent rectangles in the most efficient way, such as
by storing the coordinates of two opposing corners of the rectangle. Because this representation
is not sufficient to represent the result of arbitrary transformations of arbitrary rectangles, CLIM
is allowed to return a polygon as the result of such a transformation. (The most general class of
transformations that is guaranteed to always turn a rectangle into another rectangle is the class
of transformations that satisfy rectilinear-transformation-p.)


Page 23 Table of Contents Index Page 25
Chapters
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E