CLIM provides definitions for a variety of geometric objects, including points, lines, elliptical arcs, regions, and transformations. Both the graphics and windowing modules use the same set of geometric objects and functions. In this section, we describe regions, points, and the basic region classes. Transformations will be described in Chapter 5. [annotate]
Most of these objects are described as if they are implemented using standard classes. However, this need not be the case. In particular, they may be implemented using structure classes, and some classes may exist only to name a place in the hierarchy---all members of such a class will be instances of that class's subclasses. The most important concern is that these classes must allow specializing generic functions. [annotate]
The coordinate system in which the geometric objects reside is an abstract, continuous coordinate system. This abstract coordinate system is converted into "real world" coordinates only during operations such as rendering one of the objects on a display device. [annotate]
Angles are measured in radians. Following standard conventions, when an angle is measured relative to a given line, a positive angle indicates an angle counter-clockwise from the line in the plane. When the angle from the positive x axis to the positive y axis is positive (that is, the positive y axis is counter-clockwise from the positive x axis), the coordinate system is said to be right-handed. When this angle is negative, the coordinate system is said to be left-handed. Thus, the cartesian coordinate system with x increasing to the right and y increasing upward is right-handed. A coordinate system with y increasing down is left-handed. (By default, CLIM streams are left handed, but no such default exists for sheets in general.) [annotate]