DCL:GRPH2:UEPACK: Tone Fill Routines
The UEPACK is a subroutine package that performs tone fill of 2-D contour
graphs. The tone fill is performed in the UC and is compatible with all
In this package, the tone fill on contours are performed using the tone primitives of "GRPH1." (See user's manual for "GRPH1.") This package only performs the tone fill and does not draw the contours or the frames such as the coordinate axes.
The following are the subroutines for the user in the UDPACK.
|uetone||. . .||Performs fill of 2-D contours with tone patterns.|
|uetonf||. . .||Performs fill of 2-D contours with image draw functions.|
|uegtla||. . .||Generates tone level by minimum & maximum values and step size.|
|uegtlb||. . .||Generates tone level by the array giving the grip point values and step size.|
|uestlv||. . .||Specifies the tone level and pattern for each level.|
|uestln||. . .||Specifies the tone level and pattern for multiple levels with arrays.|
|ueitlv||. . .||Clears all tone levels and patterns.|
|uepget/uepset||. . .||Inquires/changes an internal variable.|
Information concerning grid-point coordinates are handled by UWPACK. (See Section 11.)
|uwsgxa/uwsgya||. . .||Set by each coordinate value.|
|uwsgxb/uwsgyb||. . .||Set by the minimum & maximum values.|
When you want a quick look at the filled 2-D data, simply call uetone. Equidistant grid points will be set to the full extent of the window, and the negative area will be filled with diagonal hatch pattern.
When you wish to set the values of the tone levels as same as those in UDPACK, set the internal variable 'LTONE' handled by uepget/uepset to .true., and call uetone. Then, the tone fill will be performed using the step size generated automatically by the UDPACK (to be more precise, by setting the level values based on the same algorithm as in UDPACK). Furthermore, if uegtla is called in correspondence to udgcla and uegtlb to udgclb, then the values of the contour level and the tone level will be set to have the same value.
If the grid-points are not equidistant, then call uwsgxa (X direction)/uwsgya (Y direction) before making a call to uetone to specify the values of the grid-point coordinates beforehand. When you wish to set equidistant grid points in only a certain part of the window, then use uwsgxb (X direction)/uwsgyb (Y direction) to set the minimum and maximum values for the grid points.
As stated above, if you wish to specify the tone level beforehand, you should call uegtla or uegtlb before uetone. However, in this case, only tone levels with equal intervals will be generated. If you wish to specify tone levels and patterns at uneven intervals, or if you wish to add a specific tone level and pattern, you should call uestlv or uestln. (To clear all levels, call ueitlv.) Note that the tone fill is performed in the order of specification. To see the tone patterns, see the Appendix for the SGPCAK in GRPH1.
The tone primitives of "GRPH1" used in this package can switch between hard fill and soft fill depending on the capability of the output device. When the internal variable 'LSOFTF' (see user's manual for "GRPH1") handled by sgpget/sgpset is .true., soft fill is performed; when .false., hard fill is performed. (The initial value is .true..) However, even when hard fill is specified, if the output device is incapable of hard fill, then soft fill is performed. The soft fill uses the subroutines of fill area primitives (see section on fill area primitives in "GRPH1.")
When performing solid fills using colors (corresponding to tone pattern numbers with 999 as their last 3 digits), the color index may be converted into pattern index such as for dot patterns. When the internal variable 'LCL2TN' (see SGPACK in "GRPH1") handled by sgpget/sgpset is .true., then the color index is converted into pattern index; when .false., it is not converted. (The initial value is .false..) However, when outputting to devices incapable of color fills, an attempt will be made to convert the color index into pattern index even when 'LCL2TN' is .false..
When a soft fill is performed on an existing polygon, only the tone pattern will be overwritten, and the polygon will not be erased (unless solid fill is performed). However, a hard fill may erase existing polygons depending on the output device. So, when using UEPACK with coordinate axes and contour graphs, the order the graphics are drawn will be important.
Internally, this routine used COMMON blocks named ueblk1 and ueblk2. The user must not use an external procedure or a COMMON block with the same name.