1C*PGPT -- draw several graph markers
2C%void cpgpt(int n, const float *xpts, const float *ypts, int symbol);
3C+
4      SUBROUTINE PGPT (N, XPTS, YPTS, SYMBOL)
5      INTEGER N
6      REAL XPTS(*), YPTS(*)
7      INTEGER SYMBOL
8C
9C Primitive routine to draw Graph Markers (polymarker). The markers
10C are drawn using the current values of attributes color-index,
11C line-width, and character-height (character-font applies if the symbol
12C number is >31).  If the point to be marked lies outside the window,
13C no marker is drawn.  The "pen position" is changed to
14C (XPTS(N),YPTS(N)) in world coordinates (if N > 0).
15C
16C Arguments:
17C  N      (input)  : number of points to mark.
18C  XPTS   (input)  : world x-coordinates of the points.
19C  YPTS   (input)  : world y-coordinates of the points.
20C  SYMBOL (input)  : code number of the symbol to be drawn at each
21C                    point:
22C                    -1, -2  : a single dot (diameter = current
23C                              line width).
24C                    -3..-31 : a regular polygon with ABS(SYMBOL)
25C                              edges (style set by current fill style).
26C                    0..31   : standard marker symbols.
27C                    32..127 : ASCII characters (in current font).
28C                              e.g. to use letter F as a marker, let
29C                              SYMBOL = ICHAR('F').
30C                    > 127  :  a Hershey symbol number.
31C
32C Note: the dimension of arrays X and Y must be greater than or equal
33C to N. If N is 1, X and Y may be scalars (constants or variables). If
34C N is less than 1, nothing is drawn.
35C--
36C 27-Nov-1986
37C 17-Dec-1990 - add polygons [PAH].
38C 14-Mar-1997 - optimization: use GRDOT1 [TJP].
39C-----------------------------------------------------------------------
40      LOGICAL PGNOTO
41C
42      IF (N.LT.1) RETURN
43      IF (PGNOTO('PGPT')) RETURN
44C
45      CALL PGBBUF
46      IF (SYMBOL.GE.0 .OR. SYMBOL.LE.-3) THEN
47          CALL GRMKER(SYMBOL,.FALSE.,N,XPTS,YPTS)
48      ELSE
49          CALL GRDOT1(N,XPTS,YPTS)
50      END IF
51      CALL PGEBUF
52      END
53