Page 18 Table of Contents Index Page 20
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


Figure 3.2: Examples of region union, intersection, and difference.


objects are unspecified.

3.2 Other Region Types

The other types of regions are points, polylines, polygons, elliptical arcs, and ellipses. All of
these region types are closed under affine transformations.

Major issue: There is a proposal to remove the polygon, polyline, line, ellipse, and
elliptical-arc classes, since they are only of limited utility, and CLIM itself doesn't use the
classes at all. The advantage of removing these classes is that both the spec and CLIM itself
become a little simpler, and there are fewer cases of the region protocol to implement. However,
removing these classes results in a geometric model that is no longer closed (in the mathematical
sense). Furthermore, these are intuitive objects that are used by a small, but important, class
of applications, and some people feel that CLIM should relieve programmers from having to
implement these classes for himself or herself.

The advocates of of removing these classes also propose removing the design-based drawing
model. In this case, a more consistent proposal is to remove all of the geometric classes, including
point and rectangle.

Again, the opposing point of view believes that the power and flexibility of the design-based
drawing model does not justify the removal of any of these classes. One counter-proposal is
to require CLIM not to use any of the extended region classes internally, and to move the
implementation of the extended region classes to a separately loadable module (via
provide and
require). | SWM, York

3.2.1 Points

A point is a mathematical point in the plane, designated by its coordinates, which are a pair of
real numbers (where a real number is defined as either an integer, a ratio, or a floating point


Page 18 Table of Contents Index Page 20
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