CGlue - connector glue

**#include <Unidraw/cglue.h>**
CGlue defines a natural size, elasticity (its rate of stretching and shrinking
relative to other CGlue), and deformation limits (total amount it can stretch
and shrink) in both the horizontal and vertical dimensions. CGlue can be
interposed between two connected connectors to augment their connectivity
semantics; it acts like two non-linear springs, one horizontal and one
vertical, connecting the connectors' centers.

**CGlue(**

** float hnat = 0, float vnat = 0,**

** float hshr = 0, float hstr = 0,**

** float vshr = 0, float vstr = 0,**

** float hshrlim = 0, float hstrlim = 0,**

** float vshrlim = 0, float vstrlim = 0**

**)**

**CGlue(const Shape&)**
- Instantiate CGlue, providing the requisite parameters
explicitly or inferring them from a Shape object. If a shape is supplied,
then the CGlue adopts the shape's natural size, and it assigns the shape's
stretchability and shrinkability values to its corresponding CGlue
elasticity members to obtain a proportionately equivalent elasticity. It
also assigns the shape's stretchability and shrinkability values to its
deformation limit members. The parameters are described below:

*hnat, vnat*: horizontal and vertical natural sizes, screen units

*hshr, vshr*: horizontal and vertical shrinking rate, constant units

*hstr, vstr*: horizontal and vertical stretching rate, constant units

*hshrlim, vshrlim*: horizontal and vertical shrink limit, screen units

*hstrlim, vstrlim*: horizontal and vertical stretch limit, screen
units

**CGlue* Copy()**
- Create a copy of this CGlue instance.

**void Rigid()**
- Set all elasticity and deformation limits equal to
zero.

**void Interpose(const CGlue* glue)**
- Change this instance's attributes to reflect the series
combination of
*this* and *glue*.

Connector(3U), Shape(3I)