Spacing tables are used only for Manhattan (horizontal or vertical)
edges. Non-Manhattan edges will use the *Diagional* spacing if
given, or the default spacing. There is presently no provision for
size-dependent spacing of non-Manhattan edges.

The *minspace* dimension will be found in the row where the
measured *width* and *length* are greater than or equal to the
row *width* and *length*, with the largest spacing value.
The evaluation is actually iterative, and follows this logic:

Compute thewidthparameter knowing the object being tested.

Loop over each object edge {

Take the initial}lengthto be the total edge length.

Evaluate the spacing table, find the initialminspace.

Loop {

Construct a test region along and outside of the edge being tested, with width given by the}minspace.

Test this region for the presence of target material.

if (none found)Break, edge test is clean.Measure the length of each intersection region and sum. This provides a newlength.

Evaluate the spacing table with the newlength.

if (the new and oldminspaceare equal)Break, test indicates violation.The newminspacewill be smaller, check again.