ncl_dashpack man page

Dashpack — a set of routines allowing you to draw curves using dashed-line patterns that may include gap-portion specifiers, solid-portion specifiers, and label-string specifiers. DASHPACK is intended to replace and unify the old family of NCAR Graphics routines (DASHLINE, DASHCHAR, DASHSMTH, and DASHSUPR), all of which date from the early 1970s or before. At the time of its introduction, DASHPACK will do anything that DASHLINE, DASHCHAR, and DASHSMTH will (and a number of things that they won't); it does not yet functionally replace all of DASHSUPR, but it is intended that this will eventually happen. For the moment, the older routines will stay in NCAR Graphics.

Structurally, DASHPACK is rather different from the routines that it replaces: Its behavior is controlled by "internal parameters" that are accessed by calling parameter-access routines, rather than by manipulating the contents of labelled common blocks. There is only one version of DASHPACK; rather than load a different version of it in order to, say, turn smoothing on, one just changes the value of the internal parameter that controls whether or not smoothing is done. There is no analog of the old routines DASHDB and DASHDC in DASHPACK; to use a different dash pattern, one just changes the values of the internal parameters that specify what dash pattern to use.

As in other NCAR Graphics packages, each of the internal parameters of DASHPACK has a three-character mnemonic name. The internal parameters are described in detail in the man page "dashpack_params".

Dashed-Line Patterns

A dashed-line pattern (or just "dash pattern") may be specified using either an integer or a character string (see the parameters 'DPL', 'DPS', and 'DPT'). However the pattern is specified, it is applied in a repetitive fashion as a curve is drawn. For example, if the dash pattern specifies a solid, a gap, and the label "A", a curve drawn using it will include a solid, a gap, the label "A", a solid, a gap, the label "A", and so on, until the end of the curve is reached. When a new curve is begun, use of the dash pattern starts over: the new curve starts with a solid, a gap, and the label "A".

If an integer dash pattern is used, the low-order "n" bits of the integer (where "n" is the absolute value of the user-specified parameter, 'DPS', and is between 1 and 32, inclusive) are interpreted; 0's represent gaps and 1's represent solids.

In a character-string dash pattern, the character used to represent a gap (by default, an underscore) and the character used to represent a solid (by default, a dollar sign) are determined by the values of other internal parameters ('CRG' and 'CRS'); such characters may be mixed with other strings of characters that are to be used as label strings. There are parameters allowing one to specify how much distance along the curve should be devoted to each gap ('WOG') and solid ('WOS'), what size characters should be used for writing label strings ('WOC'), whether label strings should be written at a fixed angle relative to the plotter frame or in the direction of the curve ('SAF'), and, if they are written in the direction of the curve, whether or not they should be made to "bend" with the curve ('CRB' and 'SCF') and whether or not it is allowed to rotate them by 180 degrees to make them more nearly upright on the plotter frame ('SAF').

A label string written along a curve may either be placed in a gap left in the curve or just written on top of it ('LS1', 'LS2', and 'LTL'); the latter is most effective when the characters are written in a color different from that of the curve itself.

Output of label strings is buffered so that, if the end of the curve occurs prior to the occurrence of the next solid or gap in the dash pattern, the curve itself may be drawn in lieu of an incomplete label, and so that, when labels are being made to "bend" with the curve, the entire label can be inverted, if necessary, so as to have the majority of it right-side up. This buffering is done by default, but may be turned off, if desired ('SBF').

All character strings are written using calls to PLOTCHAR routines. There is an internal parameter ('PCF') that says whether to call PLCHHQ, PLCHMQ, or PLCHLQ. By default, PLCHHQ is used.

Curve Smoothing

Curve smoothing is turned on and off by setting a single internal parameter ('TCS') that also specifies the tension on the cubic splines used to do the smoothing. Another parameter ('SSL') specifies the distance between points used to plot the smoothed curve and another ('EPS') specifies the minimum distance between input points required for them to be considered separate points.

Synopsis

DPCURV - draws a complete curve with a single call.

DPDRAW - called to just draw the curve by connecting a given sequence of points.

DPFRST - does a "pen-up" move to the first in a sequence of points defining a curve.

DPGETC - called with the name of an internal parameter of type CHARACTER and a character variable in which the value of that parameter is to be returned.

DPGETI - called with the name of an internal parameter of type INTEGER or REAL and an integer variable in which the integer equivalent of the value of that parameter is to be returned.

DPGETR - called with the name of an internal parameter of type INTEGER or REAL and a real variable in which the real equivalent of the value of that parameter is to be returned.

DPLAST - called to say that the latest call to DPVECT was the last one in the sequence, that drawing of the curve should be completed, and that buffers should be flushed.

DPLINE - draws the straight line joining two points. (No smoothing takes place, even if smoothing is turned on.)

DPSETC - called with the name of an internal parameter of type CHARACTER and a character variable or constant that is to supply the new value of that parameter.

DPSETI - called with the name of an internal parameter of type INTEGER or REAL and an integer expression that is to become the new value of that parameter.

DPSETR - called with the name of an internal parameter of type INTEGER or REAL and a real expression that is to become the new value of that parameter.

DPSMTH - called to create a smooth curve passing through a sequence of points and then to interpolate points along that smoothed curve and pass them on to DPDRAW.

DPVECT - does a "pen-down" move to the next in a sequence of points defining a curve.

C-Binding Synopsis

#include <ncarg/ncargC.h>

c_dpcurv
c_dpdraw
c_dpfrst
c_dpgetc
c_dpgeti
c_dpgetr
c_dplast
c_dpline
c_dpsetc
c_dpseti
c_dpsetr
c_dpsmth
c_dpvect

Access

To use the Dashpack C or Fortran routines, load the NCAR Graphics libraries ncarg, ncarg_gks, and ncarg_c, preferably in that order.

Messages

When error conditions are detected, the support routine SETER is called. By default, SETER writes a message to the standard error file (as defined by I1MACH(4)) and then terminates execution. It is possible to put SETER into recovery mode and regain control after a recoverable error (which includes all of the possible errors).

The possible error messages are listed below. All errors are recoverable in the sense that a user program which has called ENTSR to set recovery mode will get control back after one of these errors occurs.

DPCURV - UNCLEARED PRIOR ERROR

This error message indicates that, at the time DPCURV was called, there was an unrecovered outstanding error. In this case, DPCURV cannot continue; it forces the error message for the outstanding error to be printed and then substitutes this one for it.

DPDRAW - IMPLEMENTATION ERROR - SEE SPECIALIST

An internal error has occurred which indicates that DASHPACK has not been correctly installed. See a specialist.

DPDRAW - UNCLEARED PRIOR ERROR

This error message indicates that, at the time DPDRAW was called, there was an unrecovered outstanding error. In this case, DPDRAW cannot continue; it forces the error message for the outstanding error to be printed and then substitutes this one for it.

DPFRST - UNCLEARED PRIOR ERROR

This error message indicates that, at the time DPFRST was called, there was an unrecovered outstanding error. In this case, DPFRST cannot continue; it forces the error message for the outstanding error to be printed and then substitutes this one for it.

DPGETC - PARAMETER NAME NOT KNOWN - X

The first argument in a call to DPGETC is not one of the legal internal parameter names of DASHPACK. "X" is the value of the offending first argument.

DPGETC - PARAMETER NAME TOO SHORT - X

The given parameter name is only one or two characters long. All DASHPACK parameter names are at least three characters long, so there is something wrong. "X" is the value of the offending first argument.

DPGETC - UNCLEARED PRIOR ERROR

This error message indicates that, at the time DPGETC was called, there was an unrecovered outstanding error. In this case, DPGETC cannot continue; it forces the error message for the outstanding error to be printed and then substitutes this one for it.

DPGETI - UNCLEARED PRIOR ERROR

This error message indicates that, at the time DPGETI was called, there was an unrecovered outstanding error. In this case, DPGETI cannot continue; it forces the error message for the outstanding error to be printed and then substitutes this one for it.

DPGETR - PARAMETER NAME NOT KNOWN - X

The first argument in a call to DPGETR is not one of the legal internal parameter names of DASHPACK. "X" is the value of the offending first argument.

DPGETR - PARAMETER NAME TOO SHORT - X

The given parameter name is only one or two characters long. All DASHPACK parameter names are at least three characters long, so there is something wrong. "X" is the value of the offending first argument.

DPGETR - UNCLEARED PRIOR ERROR

This error message indicates that, at the time DPGETR was called, there was an unrecovered outstanding error. In this case, DPGETR cannot continue; it forces the error message for the outstanding error to be printed and then substitutes this one for it.

DPLAST - UNCLEARED PRIOR ERROR

This error message indicates that, at the time DPLAST was called, there was an unrecovered outstanding error. In this case, DPLAST cannot continue; it forces the error message for the outstanding error to be printed and then substitutes this one for it.

DPLINE - UNCLEARED PRIOR ERROR

This error message indicates that, at the time DPLINE was called, there was an unrecovered outstanding error. In this case, DPLINE cannot continue; it forces the error message for the outstanding error to be printed and then substitutes this one for it.

DPSETC - PARAMETER NAME NOT KNOWN - X

The first argument in a call to DPSETC is not one of the legal internal parameter names of DASHPACK. "X" is the value of the offending first argument.

DPSETC - PARAMETER NAME TOO SHORT - X

The given parameter name is only one or two characters long. All DASHPACK parameter names are at least three characters long, so there is something wrong. "X" is the value of the offending first argument.

DPSETC - UNCLEARED PRIOR ERROR

This error message indicates that, at the time DPSETC was called, there was an unrecovered outstanding error. In this case, DPSETC cannot continue; it forces the error message for the outstanding error to be printed and then substitutes this one for it.

DPSETI - UNCLEARED PRIOR ERROR

This error message indicates that, at the time DPSETI was called, there was an unrecovered outstanding error. In this case, DPSETI cannot continue; it forces the error message for the outstanding error to be printed and then substitutes this one for it.

DPSETR - PARAMETER NAME NOT KNOWN - X

The first argument in a call to DPSETR is not one of the legal internal parameter names of DASHPACK. "X" is the value of the offending first argument.

DPSETR - PARAMETER NAME TOO SHORT - X

The given parameter name is only one or two characters long. All DASHPACK parameter names are at least three characters long, so there is something wrong. "X" is the value of the offending first argument.

DPSETR - UNCLEARED PRIOR ERROR

This error message indicates that, at the time DPSETR was called, there was an unrecovered outstanding error. In this case, DPSETR cannot continue; it forces the error message for the outstanding error to be printed and then substitutes this one for it.

DPSMTH - UNCLEARED PRIOR ERROR

This error message indicates that, at the time DPSMTH was called, there was an unrecovered outstanding error. In this case, DPSMTH cannot continue; it forces the error message for the outstanding error to be printed and then substitutes this one for it.

DPVECT - UNCLEARED PRIOR ERROR

This error message indicates that, at the time DPVECT was called, there was an unrecovered outstanding error. In this case, DPVECT cannot continue; it forces the error message for the outstanding error to be printed and then substitutes this one for it.

See Also

Online: dashpack_params, dpcurv, dpdraw, dpfrst, dpgetc, dpgeti, dpgetr, dplast, dpline, dpsetc, dpseti, dpsetr, dpsmth, dpvect, ncarg_cbind.

Hardcopy: None.

Info

March 1995 UNIX NCAR GRAPHICS