A region is an object that denotes a set of points in the plane. Regions include their boundaries; that is, they are closed. Regions have infinite resolution.
A bounded region is a region that contains at least one point for which there exists a number, d , called the region's diameter, such that if p1 and p2 are points in the region, the distance between p1 and p2 is always less than or equal to d .
An unbounded region either contains no points or contains points arbitrarily far apart. +nowhere+ and +everywhere+ are examples of unbounded regions.
Another way to describe a region is to say that it maps every ( x, y ) pair into either true or false (meaning member or not a member, respectively, of the region). Later, in Chapter 5, we will generalize a region to something called an ink that maps every point ( x, y ) into color and opacity values.
CLIM classifies the various types of regions in the following way. All regions are a subclass of region , and all bounded regions are also a subclass of either point , path , or area , as shown in Figure 9..
Summary: The protocol class that corresponds to a set of points. This includes both bounded and unbounded regions. This is a subclass of ink (see Chapter 5, Drawing in Color for details).
Summary: The protocol class path denotes bounded regions that have dimensionality 1 (that is, lines or curves). It is a subclass of region and bounding-rectangle . If you want to create a new class that behaves like a path, it should be a subclass of path. Subclasses of path must obey the path protocol.
Some rendering models support the constructing of areas by filling a closed path. In this case, the path needs a direction associated with it. Since CLIM does not currently support the path-filling model, paths are directionless.
Summary: The protocol class area denotes bounded regions that have dimensionality 2 (that is, are flat surfaces). It is a subclass of region and bounding-rectangle . If you want to create a new class that behaves like an area, it should be a subclass of area . Subclasses of area must obey the area protocol.
Summary: The type that represents a coordinate. All of the specific region classes and subclasses of bounding-rectangle will use this type to store their coordinates. However, the constructor functions for the region classes and for bounding rectangles accept numbers of any type and coerce them to coordinate .
Common Lisp Interface Manager 2.0 User's Guide - 7 Aug 2017