Page 15 Table of Contents Index Page 17
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

region-contains-position-p is a special case of region-contains-region-p in which the
region is the point (x;y).

=> region-intersects-region-p region1 region2 [Generic Function]
Returns false if region-intersection of the two regions region1 and region2 would be +nowhere+,
otherwise returns true.

3.1.2 Region Composition Protocol

Region composition is not always equivalent to simple set operations. Instead, composition
attempts to return an object that has the same dimensionality as one of its arguments. If
this is not possible, then the result is defined to be an empty region, which is canonicalized to
+nowhere+. (The exact details of this are specified with each function.)

Sometimes, composition of regions can produce a result that is not a simple contiguous region.
For example, region-union of two rectangular regions might not be a single rectangle. In order
to support cases like this, CLIM has the concept of a region set, which is an object that represents
one or more region objects related by some region operation, usually a union. CLIM provides
standard classes to cover the cases of region union, intersection, and difference.

Some CLIM implementations might only implement a subset of full region composition. Because
of the importance of rectangular regions and region sets that are the union of rectangular regions,
every CLIM implementation is required to fully support all functions that use regions for those
cases. (For example, CLIM implementations must be able do clipping and repainting on region
sets composed entirely of axis-aligned rectangles.) If a CLIM implementation does not support
some functions on non-rectangular region sets (for example, clipping), it must signal an error
when an unsupported case is encountered; the exact details of this depend on the particular
CLIM implementation.

=> region-set [Protocol Class]
The protocol class that represents a region set; a subclass of region and bounding-rectangle.

In addition to the three classes below, there may be other instantiable subclasses of region-set that represent special cases, for instance, some implementations might have a standard-rectangle-set class that represents the union of several axis-aligned rectangles.

Members of this class are immutable.

=> region-set-p object [Function]
Returns true if object is a region set, otherwise returns false.

=> standard-region-union [Class]
=> standard-region-intersection [Class]
=> standard-region-difference [Class]
These three instantiable classes respectively implement the union, intersection, and differences


Page 15 Table of Contents Index Page 17
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