1VVUDMV(3NCARG)                   NCAR GRAPHICS                  VVUDMV(3NCARG)
2
3
4

NAME

6       VVUDMV - This routine is the user-definable external subroutine used to
7       draw masked vectors. The default version of the routine draws any
8       polyline all of whose area identifiers are greater than or equal to
9       zero.
10

SYNOPSIS

12       CALL VVUDMV (XCS,YCS,NCS,IAI,IAG,NAI)
13

DESCRIPTION

15       XCS         (REAL array, assumed size NCS, input): Array of X
16                   coordinates of the points defining the polyline with the
17                   given set of area identifiers.
18
19       YCS         (REAL array, assumed size NCS, input): Array of Y
20                   coordinates of the points defining the polyline with the
21                   given set of area identifiers.
22
23       NCS         (INTEGER, input): Number of points; assumed size of the X
24                   and Y coordinate arrays, XCS and YCS.
25
26       IAI         (INTEGER array, assumed size NAI, input): Array of area
27                   identifier values. Each value represents the area
28                   identifier with respect to the area group in the area group
29                   array with the same array index.
30
31       IAG         (INTEGER array, assumed size NAI, input): Array of area-
32                   identifier groups.
33
34       NAI         (INTEGER, input): Number of area identifier groups. The
35                   current version of Vectors supports up to 64 area groups.
36

USAGE

38       ´VVUDMV´ is the name given to the default version of the masked vector
39       drawing routine, and it is also the name given to the argument through
40       which the external subroutine is passed to VVECTR. However, you may
41       choose any acceptable FORTRAN identifier as the name of a user-defined
42       version of the routine. The substitute routine must have an argument
43       list equivalent to the default version of VVUDMV. Also, whether or not
44       the default version is used, the subroutine that calls VVECTR should
45       contain an external declaration of the routine similar to the
46       following:
47
48               EXTERNAL VVUDMV
49
50       If the MSK parameter is set to the value 1, specifying high precision
51       masking, Vectors sends one set of X and Y polyline coordinate arrays to
52       the area masking routine, ARDRLN, for each vector arrow. ARDRLN
53       subdivides the polyline into pieces such that each smaller polyline has
54       a single area identifier with respect to each area identifier group,
55       then makes a call to VVUDMV for each polyline piece.  While the default
56       version of VVUDMV only checks to see that none of the area identifiers
57       are negative, a user-defined version could perform more complicated
58       decision processing based on knowledge of the meaning of specific area
59       identifier groups and/or area identifier values.  Note that, before
60       invoking VVUDMV, ARDRLN modifies the user coordinate space by making
61       the following calls:
62
63               CALL GETSET(VPL,VPR,VPB,VPT,WDL,WDR,WDB,WDT,LLG) CALL
64               SET(VPL,VPR,VPB,VPT,VPL,VPR,VPB,VPT,1)
65
66       These calls temporarily turn the user to NDC mapping into an identity,
67       allowing the user to call any of the routines, CURVE, CURVED, or the
68       GKS routine GPL, to render the polygon piece , without worrying about a
69       possible non-identity mapping between user and world coordinates.
70
71       If MSK has a value greater than 1, specifying low precision masking,
72       Vectors calls the routine ARGTAI to get the area identifiers with
73       respect to the area identifier groups for a single point that locates
74       the base position of the vector. Vectors then calls the VVUDMV routine
75       itself, passing the coordinate arrays for a complete vector arrow.
76       Thus, a vector arrow whose base position is within an area to be masked
77       can be eliminated, but an arrow whose base position is nearby, but
78       outside, a masked area may intrude into the area. Also, in this case,
79       since faster rendering is the goal, Vectors does not convert the
80       coordinate arrays into normalized device coordinates and do the
81       identity SET call. Therefore, the user should use only CURVE or CURVED
82       to render the polyline, unless there is no possibility of a non-
83       identity user to world coordinate mapping.
84
85       The current version of Vectors supports masked drawing with up to 64
86       area groups. Vectors will exit with an error message if an area map
87       with more than 64 groups is passed to it.
88

EXAMPLES

90       Use the ncargex command to see the following relevant examples: ffex05,
91       vvex01.
92

ACCESS

94       To use VVUDMV, load the NCAR Graphics libraries ncarg, ncarg_gks, and
95       ncarg_c, preferably in that order.
96

SEE ALSO

98       Online: vectors, vectors_params, vvectr, vvgetc, vvgeti, vvgetr,
99       vvinit, vvrset, vvsetc, vvseti, vvsetr, vvumxy, ncarg_cbind.
100
101       Hardcopy: NCAR Graphics Fundamentals, UNIX Version
102
104       Copyright (C) 1987-2009
105       University Corporation for Atmospheric Research
106       The use of this Software is governed by a License Agreement.
107
108
109
110UNIX                              April 1993                    VVUDMV(3NCARG)
Impressum