13.2 Basic Designs

design   [Protocol Class]
          

A design is an object that represents a way of arranging colors and opacities in the drawing plane. The design class is the protocol class for designs. If you want to create a new class that behaves like a design, it should be a subclass of design. All instantiable subclasses of design must obey the design protocol. [annotate]

The fundamental operation of the CLIM graphic drawing model is to draw a design onto a drawing plane, thus drawing is always controlled by designs. The designs discussed in this chapter do the same thing at each point in the drawing plane. Chapter 14 discusses more general designs and reveals that regions are also designs. [annotate]

Note: This paragraph is belied by the existence of section 12.5, which delivers a more typical drawing model, and the example in section 30.2.2, where the HANDLE-REPAINT method doesn't use designs to do its drawing. [edit]-- Alastair Bridgewater 2011-04-29 23:02Z
 

A design can be characterized in several different ways: [annotate]

All designs are either bounded or unbounded. Bounded designs are transparent everywhere beyond a certain distance from a certain point. Drawing a bounded design has no effect on the drawing plane outside that distance. Unbounded designs have points of non-zero opacity arbitrarily far from the origin. Drawing an unbounded design affects the entire drawing plane. [annotate]

All designs are either uniform or non-uniform. Uniform designs have the same color and opacity at every point in the drawing plane. Uniform designs are always unbounded, unless they are completely transparent. [annotate]

All designs are either solid or translucent. At each point a solid design is either completely opaque or completely transparent. A solid design can be opaque at some points and transparent at others. In translucent designs, at least one point has an opacity that is intermediate between completely opaque and transparent. [annotate]

[solid, Concept← A Glossary]

All designs are either colorless or colored. Drawing a colorless design uses a default color specified by the medium's foreground design. This is done by drawing with (compose-in +foreground-ink+ the-colorless-design). See Chapter 14 for the details of compose-in. [annotate]

[annotate]

designp  object [Protocol Predicate]
          

Returns true if object is a design, otherwise returns false. [annotate]

[annotate]