File: plapi.tpl

package info (click to toggle)
plplot 5.10.0%2Bdfsg2-0.4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 25,792 kB
  • ctags: 13,517
  • sloc: ansic: 83,001; xml: 27,081; ada: 18,878; cpp: 15,966; tcl: 11,651; python: 7,075; f90: 7,058; ml: 6,974; java: 6,665; perl: 5,029; sh: 2,208; makefile: 210; lisp: 75; sed: 25; fortran: 7
file content (1262 lines) | stat: -rw-r--r-- 22,817 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
# --*-perl-*--
# $Id: plapi.tpl 12805 2013-12-03 13:02:59Z andrewross $
#
# PLplot API template specification file.
# Geoffrey Furnish
# 28 June 1995
#
# Copyright (C) 2004  Andrew Ross
#
# This file specifies the PLplot API in a form suitable for input to
# pltclgen, the Perl script which autogenerates a set of Tcl command
# procedures for gaining access to the PLplot API from Tcl.  This file
# was constructed by inserting plplot.h, and then converting the C
# prototype to the form suitable to pltclgen.  Note that not all
# functions can be autogenerated.  As the PLplot Tcl API definition
# matures, the prototypes for the unneeded functions should just be
# eliminated from this file.
###############################################################################

# Set contour label format

pltclcmd pl_setcontlabelformat void
lexp	PLINT
sigprec	PLINT

# Set contour label parameters

pltclcmd pl_setcontlabelparam void
offset	PLFLT
size	PLFLT
spacing	PLFLT
active	PLINT

# Advance to subpage "page", or to the next one if "page" = 0.

pltclcmd pladv void
page	PLINT Def: 0

# Plot an arc

pltclcmd plarc void
x	PLFLT
y	PLFLT
a	PLFLT
b	PLFLT
angle1	PLFLT
angle2	PLFLT
rotate  PLFLT
fill	PLINT

# This functions similarly to plbox() except that the origin of the axes
# is placed at the user-specified point (x0, y0).

pltclcmd plaxes void
x0	PLFLT
y0	PLFLT
xopt	const char *
xtick	PLFLT
nxsub	PLINT
yopt	const char *
ytick	PLFLT
nysub	PLINT

# Plot a histogram using x to store data values and y to store frequencies

pltclcmd plbin void
nbin	PLINT
x	PLFLT *
y	PLFLT *
center	PLINT

# Start new page.  Should only be used with pleop().

pltclcmd plbop void

# This draws a box around the current viewport.

pltclcmd plbox void
xopt	const char *
xtick	PLFLT
nxsub	PLINT
yopt	const char *
ytick	PLFLT
nysub	PLINT

# This is the 3-d analogue of plbox().

pltclcmd plbox3 void
xopt	const char *
xlabel	const char *
xtick	PLFLT
nsubx	PLINT
yopt	const char *
ylabel	const char *
ytick	PLFLT
nsuby	PLINT
zopt	const char *
zlabel	const char *
ztick	PLFLT
nsubz	PLINT

# Calculate broken-down time from continuous time for current stream.

pltclcmd plbtime void
year PLINT&
month PLINT&
day PLINT&
hour PLINT&
min PLINT&
sec PLFLT&
ctime PLFLT

# Calculate world coordinates and subpage from relative device coordinates.

pltclcmd plcalc_world void
rx	PLFLT
ry	PLFLT
wx	PLFLT&
wy	PLFLT&
window	PLINT&

# Clear current subpage

pltclcmd plclear void

# Set color, map 0.  Argument is integer between 0 and 15.

pltclcmd plcol0 void
icol0	PLINT

# Set color, map 1.  Argument is a float between 0. and 1.

pltclcmd plcol1 void
col1	PLFLT

# Configure transformation between continuous and broken-down time (and
# vice versa) for current stream.

pltclcmd plconfigtime void
scale	PLFLT
offset1	PLFLT
offset2	PLFLT
ccontrol	PLINT
ifbtime_offset	PLINT
year	PLINT
month	PLINT
day	PLINT
hour	PLINT
min	PLINT
sec	PLFLT

# Copies state parameters from the reference stream to the current stream.

pltclcmd plcpstrm void
iplsr   PLINT
flags	PLINT

# Calculate continuous time from broken-down time for current stream.

pltclcmd plctime void
year PLINT
month PLINT
day PLINT
hour PLINT
min PLINT
sec PLFLT
ctime PLFLT&

# Converts input values from relative device coordinates to relative plot
# coordinates.

pltclcmd pldid2pc void
xmin	PLFLT&
ymin	PLFLT&
xmax	PLFLT&
ymax	PLFLT&

# Converts input values from relative plot coordinates to relative
# device coordinates.

pltclcmd pldip2dc void
xmin	PLFLT&
ymin	PLFLT&
xmax	PLFLT&
ymax	PLFLT&

# End a plotting session for all open streams.

pltclcmd plend void

# End a plotting session for the current stream only.

pltclcmd plend1 void

# Simple interface for defining viewport and window.

pltclcmd plenv void
xmin	PLFLT
xmax	PLFLT
ymin	PLFLT
ymax	PLFLT
just	PLINT
axis	PLINT

# Similar to plenv() above, but in multiplot mode does not advance the subpage,
# instead the current subpage is cleared.

pltclcmd plenv0 void
xmin	PLFLT
xmax	PLFLT
ymin	PLFLT
ymax	PLFLT
just	PLINT
axis	PLINT

# End current page.  Should only be used with plbop().

pltclcmd pleop void

# Plot horizontal error bars (xmin(i),y(i)) to (xmax(i),y(i))

pltclcmd plerrx void
n	PLINT
xmin	PLFLT *
xmax	PLFLT *
y	PLFLT *

# Plot vertical error bars (x,ymin(i)) to (x(i),ymax(i))

pltclcmd plerry void
n	PLINT
x	PLFLT *
ymin	PLFLT *
ymax	PLFLT *

# Advance to the next family file on the next new page

pltclcmd plfamadv void

# Pattern fills the polygon bounded by the input points.

pltclcmd plfill void
n	PLINT
x	PLFLT *
y	PLFLT *

# Pattern fills the 3d polygon bounded by the input points.

pltclcmd plfill3 void
n	PLINT
x	PLFLT *
y	PLFLT *
z	PLFLT *

# Flushes the output stream.  Use sparingly, if at all.

pltclcmd plflush void

# Sets the global font flag to 'ifont'.

pltclcmd plfont void
ifont	PLINT

# Load specified font set.

pltclcmd plfontld void
fnt	PLINT

# Get character default height and current (scaled) height.

pltclcmd plgchr void
def	PLFLT&
ht	PLFLT&

# Get the range for cmap1

pltclcmd plgcmap1_range void
min_color PLFLT&
max_color PLFLT&

# Returns 8 bit RGB values for given color from color map 0.

pltclcmd plgcol0 void
icol0	PLINT
r	PLINT&
g	PLINT&
b	PLINT&

# Returns 8 bit RGB values for given color from color map 0 and alpha value.

pltclcmd plgcol0a void
icol0	PLINT
r	PLINT&
g	PLINT&
b	PLINT&
a	PLFLT&

# Returns the background color by 8 bit RGB value.

pltclcmd plgcolbg void
r	PLINT&
g	PLINT&
b	PLINT&

# Returns the background color by 8 bit RGB value and alpha value.

pltclcmd plgcolbga void
r	PLINT&
g	PLINT&
b	PLINT&
a	PLFLT&

# Returns the current compression setting

pltclcmd plgcompression void
compression	PLINT&

# Get the device (keyword) name

pltclcmd plgdev void
devnam	char *

# Retrieve current window into device space.

pltclcmd plgdidev void
mar	PLFLT&
aspect	PLFLT&
jx	PLFLT&
jy	PLFLT&

# Get plot orientation .

pltclcmd plgdiori void
rot	PLFLT&

# Retrieve current window into plot space.

pltclcmd plgdiplt void
xmin	PLFLT&
ymin	PLFLT&
xmax	PLFLT&
ymax	PLFLT&

# Get the escape character for text strings.

pltclcmd plgesc void
esc	char&

# Get family file parameters.

pltclcmd plgfam void
fam	PLINT&
num	PLINT&
bmax	PLINT&

# Get the (FCI) font characterisation integer

pltclcmd plgfci void
fci	PLUNICODE&

# Get the output file name.

pltclcmd plgfnam void
fnam	char *

# Get the current font family, style and weight

pltclcmd plgfont void
family	PLINT&
style	PLINT&
weight	PLINT&

# Get the current run level.

pltclcmd plglevel void
level	PLINT&

# Get output device parameters.

pltclcmd plgpage void
xp	PLFLT&
yp	PLFLT&
xleng	PLINT&
yleng	PLINT&
xoff	PLINT&
yoff	PLINT&

# Switches to graphics screen.

pltclcmd plgra void

# Draw gradient in polygon.

pltclcmd plgradient void
n	PLINT
x	PLFLT *
y	PLFLT *
angle	PLFLT

# Get subpage boundaries in absolute coordinates.

pltclcmd plgspa void
xmin	PLFLT&
xmax	PLFLT&
ymin	PLFLT&
ymax	PLFLT&

# Get current stream number.
# NOTE: Providing this feature from Tcl will finally provide a
# reliable mechanism for binding a C++ plstream object to a Tk plframe
# widget.  Query the frame for it's stream id, then pass this to the
# C++ side and use it to initialize the plstream object.

pltclcmd plgstrm void
strm	PLINT&

# Get the current library version number.

pltclcmd plgver void
ver	char *

# Get viewport boundaries in normalized device coordinates.

pltclcmd plgvpd void
xmin    PLFLT&
xmax	PLFLT&
ymin	PLFLT&
ymax	PLFLT&

# Get viewport boundaries in world coordinates.

pltclcmd plgvpw void
xmin    PLFLT&
xmax	PLFLT&
ymin	PLFLT&
ymax	PLFLT&

# Get x axis labeling parameters.

pltclcmd plgxax void
digmax	PLINT&
digits	PLINT&

# Get y axis labeling parameters.

pltclcmd plgyax void
digmax	PLINT&
digits	PLINT&

# Get z axis labeling parameters.

pltclcmd plgzax void
digmax	PLINT&
digits	PLINT&

# Draws a histogram of n values of a variable in array data[0..n-1].
# pltclgen not able to handle Tcl Matrices yet.

pltclcmd plhist void
n	PLINT
data	PLFLT *
datmin	PLFLT
datmax	PLFLT
nbin	PLINT
oldwin	PLINT

# Set current color (map 0) by hue, lightness, and saturation.

#pltclcmd plhls void
#h	PLFLT
#l	PLFLT
#s	PLFLT

# Function to transform from HLS to RGB color space.

pltclcmd plhlsrgb void
h	PLFLT
l	PLFLT
s	PLFLT
r	PLFLT&
g	PLFLT&
b	PLFLT&

# Initializes PLplot, using preset or default options.

pltclcmd plinit void

# Draws a line segment from (x1, y1) to (x2, y2).

pltclcmd pljoin void
x1	PLFLT
y1	PLFLT
x2	PLFLT
y2	PLFLT

# Simple routine for labelling graphs.

pltclcmd pllab void
xlabel	const char *
ylabel	const char *
tlabel	const char *

# Set the 3D position of the light source.

pltclcmd pllightsource void
x	PLFLT
y	PLFLT
z	PLFLT

# Draws line segments connecting a series of points.
# The original tclAPI.c version of this had a defaultable n capability,
# which we don't have...

pltclcmd plline void
n	PLINT
x	PLFLT *
y	PLFLT *

# Draws a line in 3 space.
# pltclgen...

pltclcmd plline3 void
n	PLINT
x	PLFLT *
y	PLFLT *
z	PLFLT *

# Set line style.

pltclcmd pllsty void
lin	PLINT

# Creates a new stream and makes it the default.

pltclcmd plmkstrm void
strm	PLINT&

# Prints out "text" at specified position relative to viewport.

pltclcmd plmtex void
side	const char *
disp	PLFLT
pos	PLFLT
just	PLFLT
text	const char *

# Prints out "text" at specified position relative to viewport (3D).

pltclcmd plmtex3 void
side	const char *
disp	PLFLT
pos	PLFLT
just	PLFLT
text	const char *

# Set fill pattern directly.

pltclcmd plpat void
nlin	PLINT
inc	PLINT *
del	PLINT *

# Draw a line connecting two points, accounting for coordinate transforms

pltclcmd plpath void
n       PLINT
x1      PLFLT
y1      PLFLT
x2      PLFLT
y2      PLFLT

# Plots array y against x for n points using ASCII code "code".
# The original tclAPI.c version of this had a defaultable n capability,
# which we don't have...

pltclcmd plpoin void
n	PLINT
x	PLFLT *
y	PLFLT *
code	PLINT

# Draws a series of points in 3 space.

pltclcmd plpoin3 void
n	PLINT
x	PLFLT *
y	PLFLT *
z	PLFLT *
code	PLINT

# Draws a polygon in 3 space.

pltclcmd plpoly3 void
n	PLINT
x	PLFLT *
y	PLFLT *
z	PLFLT *
draw	PLINT *
ifcc	PLINT

# Set the floating point precision (in number of places) in numeric labels.

pltclcmd plprec void
setp	PLINT
prec	PLINT

# Set fill pattern, using one of the predefined patterns.

pltclcmd plpsty void
patt	PLINT

# Prints out "text" at world cooordinate (x,y).

pltclcmd plptex void
x	PLFLT
y	PLFLT
dx	PLFLT
dy	PLFLT
just	PLFLT
text	const char *

# Prints out "text" at world cooordinate (x,y,z).

pltclcmd plptex3 void
wx	PLFLT
wy	PLFLT
wz	PLFLT
dx	PLFLT
dy	PLFLT
dz	PLFLT
sx	PLFLT
sy	PLFLT
sz	PLFLT
just	PLFLT
text	const char *

# Random number generator based on Mersenne Twister.
# Obtain real random number in range [0,1].
#
#pltclcmd plrandd PLFLT
# (AM: does not work, no value return!)

# Replays contents of plot buffer to current device/file.

pltclcmd plreplot void

# Set line color by red, green, blue from  0. to 1.

#pltclcmd plrgb void
#r	PLFLT
#g	PLFLT
#b	PLFLT

# Set line color by 8 bit RGB values.

#pltclcmd plrgb1 void
#r	PLINT
#g	PLINT
#b	PLINT

# Function to transform from RGB to HLS color space.

pltclcmd plrgbhls void
r	PLFLT
g	PLFLT
b	PLFLT
h	PLFLT&
l	PLFLT&
s	PLFLT&

# Set character height.

pltclcmd plschr void
def	PLFLT
scale	PLFLT

# Set color map 0 colors by 8 bit RGB values.

pltclcmd plscmap0 void
r	PLINT *
g	PLINT *
b	PLINT *
ncol0	PLINT

# Set color map 0 colors by 8 bit RGB values and alpha values.

pltclcmd plscmap0a void
r	PLINT *
g	PLINT *
b	PLINT *
a	PLFLT *
ncol0	PLINT

# Set number of colors in cmap 0.

pltclcmd plscmap0n void
ncol0	PLINT

# Set color map 1 colors by 8 bit RGB values.

pltclcmd plscmap1 void
r	PLINT *
g	PLINT *
b	PLINT *
ncol1	PLINT

# Set color map 1 colors by 8 bit RGB values and alpha values.

pltclcmd plscmap1a void
r	PLINT *
g	PLINT *
b	PLINT *
a	PLFLT *
ncol1	PLINT

# Set color map 1 colors using a piece-wise linear relationship between
# intensity [0,1] (cmap 1 index) and position in HLS or RGB color space.

pltclcmd plscmap1l void
itype		PLINT
npts		PLINT
intensity	PLFLT *
coord1		PLFLT *
coord2		PLFLT *
coord3		PLFLT *
alt_hue_path		PLINT *

# Set color map 1 colors using a piece-wise linear relationship between
# intensity [0,1] (cmap 1 index) and position in HLS or RGB color space.
# Will also linearly interpolate alpha values.

pltclcmd plscmap1la void
itype		PLINT
npts		PLINT
intensity	PLFLT *
coord1		PLFLT *
coord2		PLFLT *
coord3		PLFLT *
a		PLFLT *
alt_hue_path		PLINT *

# Set number of colors in cmap 1.

pltclcmd plscmap1n void
ncol1	PLINT

# Set the range for cmap1

pltclcmd plscmap1_range void
min_color PLFLT
max_color PLFLT


# Set a given color from color map 0 by 8 bit RGB value.

pltclcmd plscol0 void
icol0	PLINT
r	PLINT
g	PLINT
b	PLINT

# Set a given color from color map 0 by 8 bit RGB value and alpha value.

pltclcmd plscol0a void
icol0	PLINT
r	PLINT
g	PLINT
b	PLINT
a	PLFLT

# Set the background color by 8 bit RGB value.

pltclcmd plscolbg void
r	PLINT
g	PLINT
b	PLINT

# Set the background color by 8 bit RGB value and alpha value.

pltclcmd plscolbga void
r	PLINT
g	PLINT
b	PLINT
a	PLFLT

# Used to globally turn color output on/off.

pltclcmd plscolor void
color	PLINT

# Set the compression level.

pltclcmd plscompression void
compression	PLINT

# Set the device (keyword) name

pltclcmd plsdev void
devnam	const char *

# Set window into device space using margin, aspect ratio, and
# justification.

pltclcmd plsdidev void
mar	PLFLT
aspect	PLFLT
jx	PLFLT
jy	PLFLT

# Set up transformation from metafile coordinates.

pltclcmd plsdimap void
dimxmin	PLINT
dimxmax	PLINT
dimymin	PLINT
dimymax	PLINT
dimxpmm	PLFLT
dimypmm	PLFLT

# Set plot orientation, specifying rotation in units of pi/2.

pltclcmd plsdiori void
rot	PLFLT

# Set window into plot space.

pltclcmd plsdiplt void
xmin	PLFLT
ymin	PLFLT
xmax	PLFLT
ymax	PLFLT

# Set window into plot space incrementally (zoom).

pltclcmd plsdiplz void
xmin	PLFLT
ymin	PLFLT
xmax	PLFLT
ymax	PLFLT

# Set seed for internal random number generator

pltclcmd plseed void
s	unsigned int


# Set the escape character for text strings.

pltclcmd plsesc void
esc	char

# Set family file parameters

pltclcmd plsfam void
fam	PLINT
num	PLINT
bmax	PLINT

# Set FCI (font characterization integer)

pltclcmd plsfci void
fci	PLUNICODE

# Set the output file name.

pltclcmd plsfnam void
fnam	const char *

# Set the current font family, style and weight

pltclcmd plsfont void
family	PLINT
style	PLINT
weight	PLINT

# Set up lengths of major tick marks.

pltclcmd plsmaj void
def	PLFLT
scale	PLFLT

# Set up lengths of minor tick marks.

pltclcmd plsmin void
def	PLFLT
scale	PLFLT

# Set orientation.  Must be done before calling plinit.

pltclcmd plsori void
ori	PLINT

# Set output device parameters.  Usually ignored by the driver.

pltclcmd plspage void
xp	PLFLT
yp	PLFLT
xleng	PLINT
yleng	PLINT
xoff	PLINT
yoff	PLINT

# Set color map 0 using a palette file

pltclcmd plspal0 void
filename	const char *

# Set color map 1 using a palette file

pltclcmd plspal1 void
filename	const char *
interpolate	PLINT

# Set the pause (on end-of-page) status.

pltclcmd plspause void
paus	PLINT

# Set stream number.

pltclcmd plsstrm void
strm	PLINT

# Set the number of subwindows in x and y.

pltclcmd plssub void
nx	PLINT
ny	PLINT

# Set symbol height.

pltclcmd plssym void
def	PLFLT
scale	PLFLT

# Initialize PLplot, passing in the windows/page settings.

pltclcmd plstar void
nx	PLINT
ny	PLINT

# Initialize PLplot, passing the device name and windows/page settings.

pltclcmd plstart void
devname 	const char *
nx		PLINT
ny		PLINT

# Plot the same string at a series of locations (x(i),y(i))

pltclcmd plstring void
n	PLINT
x	PLFLT *
y	PLFLT *
string	const char *

# Plot the same string at a series of 3D locations (x(i),y(i),z(i))

pltclcmd plstring3 void
n	PLINT
x	PLFLT *
y	PLFLT *
z	PLFLT *
string	const char *

# Add data to the strip chart

pltclcmd plstripa void
id		PLINT
pen		PLINT
x		PLFLT
y		PLFLT

# Destroy the strip chart

pltclcmd plstripd void
id		PLINT

# Set up a new line style.

pltclcmd plstyl void
nms	PLINT
mark	PLINT *
space	PLINT *

# Sets the edges of the viewport to the specified absolute coordinates.

pltclcmd plsvpa void
xmin	PLFLT
xmax	PLFLT
ymin	PLFLT
ymax	PLFLT

# Set x axis labeling parameters.

pltclcmd plsxax void
digmax	PLINT
digits	PLINT

# Set y axis labeling parameters.

pltclcmd plsyax void
digmax	PLINT	Def: 0
digits	PLINT	Def: 0

# Plots array y against x for n points using Hershey symbol "code".
# The original tclAPI.c version of this had a defaultable n capability,
# which we don't have...

pltclcmd plsym void
n	PLINT
x	PLFLT *
y	PLFLT *
code	PLINT

# Set z axis labeling parameters.

pltclcmd plszax void
digmax	PLINT
digits	PLINT

# Switches to text screen.

pltclcmd pltext void

# Set the format for date / time labels.

pltclcmd pltimefmt void
fmt	const char *

# Sets the edges of the viewport with the given aspect ratio, leaving
# room for labels.

pltclcmd plvasp void
aspect	PLFLT

# Creates the largest viewport of the specified aspect ratio that fits
# within the specified normalized subpage coordinates.

pltclcmd plvpas void
xmin	PLFLT
xmax	PLFLT
ymin	PLFLT
ymax	PLFLT
aspect	PLFLT

# Creates a viewport with the specified normalized subpage coordinates.

pltclcmd plvpor void
xmin	PLFLT
xmax	PLFLT
ymin	PLFLT
ymax	PLFLT

# Defines a "standard" viewport with seven character heights for the
# left margin and four character heights everywhere else.

pltclcmd plvsta void

# Set up a window for three-dimensional plotting.

pltclcmd plw3d void
basex	PLFLT
basey	PLFLT
height	PLFLT
xmin0	PLFLT
xmax0	PLFLT
ymin0	PLFLT
ymax0	PLFLT
zmin0	PLFLT
zmax0	PLFLT
alt	PLFLT
az	PLFLT

# Set pen width.

pltclcmd plwidth void
width	PLFLT

# Set up world coordinates of the viewport boundaries (2d plots).

pltclcmd plwind void
xmin	PLFLT
xmax	PLFLT
ymin	PLFLT
ymax	PLFLT

# Enter xor mode (mod != 0) or leave it (mod = 0)

pltclcmd plxormod void
mod PLINT
st  PLINT&

###############################################################################
# The rest are kept in as reminders to how Tcl API might be improved

# Draws a contour plot from data in f(nx,ny).  Is just a front-end to
# plfcont, with a particular choice for f2eval and f2eval_data.

# void
# c_plcont(PLFLT **f, PLINT nx, PLINT ny, PLINT kx, PLINT lx,
# 	 PLINT ky, PLINT ly, PLFLT *clevel, PLINT nlevel,
# 	 void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer),
# 	 PLPointer pltr_data);

# Draws a contour plot using the function evaluator f2eval and data stored
# by way of the f2eval_data pointer.  This allows arbitrary organizations
# of 2d array data to be used.

# void
# plfcont(PLFLT (*f2eval) (PLINT, PLINT, PLPointer),
# 	PLPointer f2eval_data,
# 	PLINT nx, PLINT ny, PLINT kx, PLINT lx,
# 	PLINT ky, PLINT ly, PLFLT *clevel, PLINT nlevel,
# 	void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer),
# 	PLPointer pltr_data);

# plot continental outline in world coordinates.

# void
# plmap(void (*mapform)(PLINT, PLFLT *, PLFLT *), char *type,
#       PLFLT minlong, PLFLT maxlong, PLFLT minlat, PLFLT maxlat);

# Plot the latitudes and longitudes on the background.

# void
# plmeridians(void (*mapform)(PLINT, PLFLT *, PLFLT *),
# 	    PLFLT dlong, PLFLT dlat,
# 	    PLFLT minlong, PLFLT maxlong, PLFLT minlat, PLFLT maxlat);

# Shade region.

# void
# c_plshade(PLFLT **a, PLINT nx, PLINT ny, const char **defined,
# 	  PLFLT left, PLFLT right, PLFLT bottom, PLFLT top,
# 	  PLFLT shade_min, PLFLT shade_max,
# 	  PLINT sh_cmap, PLFLT sh_color, PLINT sh_width,
# 	  PLINT min_color, PLINT min_width,
# 	  PLINT max_color, PLINT max_width,
# 	  void (*fill) (PLINT, PLFLT *, PLFLT *), PLINT rectangular,
# 	  void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer),
# 	  PLPointer pltr_data);

# void
# plshade1(PLFLT *a, PLINT nx, PLINT ny, const char *defined,
# 	 PLFLT left, PLFLT right, PLFLT bottom, PLFLT top,
# 	 PLFLT shade_min, PLFLT shade_max,
# 	 PLINT sh_cmap, PLFLT sh_color, PLINT sh_width,
# 	 PLINT min_color, PLINT min_width,
# 	 PLINT max_color, PLINT max_width,
# 	 void (*fill) (PLINT, PLFLT *, PLFLT *), PLINT rectangular,
# 	 void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer),
# 	 PLPointer pltr_data);

# void
# plfshade(PLFLT (*f2eval) (PLINT, PLINT, PLPointer),
# 	 PLPointer f2eval_data,
# 	 PLFLT (*c2eval) (PLINT, PLINT, PLPointer),
# 	 PLPointer c2eval_data,
# 	 PLINT nx, PLINT ny,
# 	 PLFLT left, PLFLT right, PLFLT bottom, PLFLT top,
# 	 PLFLT shade_min, PLFLT shade_max,
# 	 PLINT sh_cmap, PLFLT sh_color, PLINT sh_width,
# 	 PLINT min_color, PLINT min_width,
# 	 PLINT max_color, PLINT max_width,
# 	 void (*fill) (PLINT, PLFLT *, PLFLT *), PLINT rectangular,
# 	 void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer),
# 	 PLPointer pltr_data);

# Returns a list of file-oriented device names and their menu strings

# void
# plgFileDevs(char ***p_menustr, char ***p_devname, int *p_ndev);

# Set the function pointer for the keyboard event handler

# void
# plsKeyEH(void (*KeyEH) (PLGraphicsIn *, void *, int *), void *KeyEH_data);

# Set the function pointer for the (mouse) button event handler

# void
# plsButtonEH(void (*ButtonEH) (PLGraphicsIn *, void *, int *),
# 	    void *ButtonEH_data);

# Sets an optional user exit handler.

# void
# plsexit(int (*handler) (char *));

# Command line parsing utilities

# Clear internal option table info structure.

# void
# plClearOpts(void);

# Reset internal option table info structure.

# void
# plResetOpts(void);

# Merge user option table into internal info structure.

# int
# plMergeOpts(PLOptionTable *options, char *name, char **notes);

# Set the strings used in usage and syntax messages.

# void
# plSetUsage(char *program_string, char *usage_string);

# Process input strings, treating them as an option and argument pair.

# int
# plsetopt(char *opt, char *optarg);

# Print usage & syntax message.

# void
# plOptUsage(void);

# Set the output file pointer

# void
# plgfile(FILE **p_file);

# Get the output file pointer

# void
# plsfile(FILE *file);

# Front-end to driver escape function.

# void
# pl_cmd(PLINT op, void *ptr);

# Return full pathname for given file if executable

# int
# plFindName(char *p);

# Looks for the specified executable file according to usual search path.

# char *
# plFindCommand(char *fn);

# Gets search name for file by concatenating the dir, subdir, and file
# name, allocating memory as needed.

# void
# plGetName(char *dir, char *subdir, char *filename, char **filespec);

# Wait for graphics input event and translate to world coordinates

# int
# plGetCursor(PLGraphicsIn *gin);

# Translates relative device coordinates to world coordinates.

# int
# plTranslateCursor(PLGraphicsIn *gin);