PLplot  5.14.0
plplot.h
Go to the documentation of this file.
1 // Macros and prototypes for the PLplot package. This header file must
2 // be included by all user codes.
3 //
4 // Note: some systems allow the Fortran & C namespaces to clobber each
5 // other. So for PLplot to work from Fortran, we do some rather nasty
6 // things to the externally callable C function names. This shouldn't
7 // affect any user programs in C as long as this file is included.
8 //
9 // Copyright (C) 1992 Maurice J. LeBrun, Geoff Furnish, Tony Richardson.
10 // Copyright (C) 2004-2018 Alan W. Irwin
11 // Copyright (C) 2004 Rafael Laboissiere
12 // Copyright (C) 2004 Andrew Ross
13 //
14 // This file is part of PLplot.
15 //
16 // PLplot is free software; you can redistribute it and/or modify
17 // it under the terms of the GNU Library General Public License as published
18 // by the Free Software Foundation; either version 2 of the License, or
19 // (at your option) any later version.
20 //
21 // PLplot is distributed in the hope that it will be useful,
22 // but WITHOUT ANY WARRANTY; without even the implied warranty of
23 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 // GNU Library General Public License for more details.
25 //
26 // You should have received a copy of the GNU Library General Public License
27 // along with PLplot; if not, write to the Free Software
28 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
29 //
30 
31 #ifndef __PLPLOT_H__
32 #define __PLPLOT_H__
33 
34 #include "plConfig.h"
35 
36 //--------------------------------------------------------------------------
37 // USING PLplot
38 //
39 // To use PLplot from C or C++, it is only necessary to
40 //
41 // #include "plplot.h"
42 //
43 // This file does all the necessary setup to make PLplot accessible to
44 // your program as documented in the manual. Additionally, this file
45 // allows you to request certain behavior by defining certain symbols
46 // before inclusion. At the moment the only one is:
47 //
48 // #define DOUBLE or..
49 // #define PL_DOUBLE
50 //
51 // This causes PLplot to use doubles instead of floats. Use the type
52 // PLFLT everywhere in your code, and it will always be the right thing.
53 //
54 // Note: most of the functions visible here begin with "pl", while all
55 // of the data types and switches begin with "PL". Eventually everything
56 // will conform to this rule in order to keep namespace pollution of the
57 // user code to a minimum. All the PLplot source files actually include
58 // "plplotP.h", which includes this file as well as all the internally-
59 // visible declarations, etc.
60 //--------------------------------------------------------------------------
61 
62 // The majority of PLplot source files require these, so..
63 // Under ANSI C, they can be included any number of times.
64 
65 #include <stdio.h>
66 #include <stdlib.h>
67 
68 //--------------------------------------------------------------------------
69 // SYSTEM IDENTIFICATION
70 //
71 // Several systems are supported directly by PLplot. In order to avoid
72 // confusion, one id macro per system is used. Since different compilers
73 // may predefine different system id macros, we need to check all the
74 // possibilities, and then set the one we will be referencing. These are:
75 //
76 // __cplusplus Any C++ compiler
77 // __unix Any Unix-like system
78 // __hpux Any HP/UX system
79 // __aix Any AIX system
80 // __linux Linux for i386
81 // (others...)
82 //
83 //--------------------------------------------------------------------------
84 
85 #ifdef unix // the old way
86 #ifndef __unix
87 #define __unix
88 #endif
89 #endif
90 
91 #if 0
92 #if defined ( __GNUC__ ) && __GNUC__ > 3
93 // If gcc 4.x, then turn off all visibility of symbols unless
94 // specified as visible using PLDLLIMPEXP.
95 //#pragma GCC visibility push(hidden)
96 // temporary until issues with above hidden can be sorted out
97  #pragma GCC visibility push(default)
98 #endif
99 #endif
100 // Make sure Unix systems define "__unix"
101 
102 #if defined ( SX ) || /* NEC Super-UX */ \
103  ( defined ( _IBMR2 ) && defined ( _AIX ) ) || /* AIX */ \
104  defined ( __hpux ) || /* HP/UX */ \
105  defined ( sun ) || /* SUN */ \
106  defined ( CRAY ) || /* Cray */ \
107  defined ( __convexc__ ) || /* CONVEX */ \
108  ( defined ( __alpha ) && defined ( __osf__ ) ) || /* DEC Alpha AXP/OSF */ \
109  defined ( __APPLE__ ) // Max OS-X
110 #ifndef __unix
111 #define __unix
112 #endif
113 #endif
114 
115 //--------------------------------------------------------------------------
116 // dll functions
117 //--------------------------------------------------------------------------
118 #include "pldll.h"
119 
120 // Macro to mark function parameters as unused.
121 // For gcc this uses the unused attribute to remove compiler warnings.
122 // For all compilers the parameter name is also mangled to prevent
123 // accidental use.
124 #ifdef PL_UNUSED
125 #elif defined ( __GNUC__ )
126 # define PL_UNUSED( x ) UNUSED_ ## x __attribute__( ( unused ) )
127 #else
128 # define PL_UNUSED( x ) UNUSED_ ## x
129 #endif
130 
131 //--------------------------------------------------------------------------
132 // Base types for PLplot
133 //
134 // Only those that are necessary for function prototypes are defined here.
135 // Notes:
136 //
137 // PLINT is typedef'd to a long by default. This is a change from some
138 // previous versions, where a int was used. However, so long as you have
139 // used type PLINT for integer array arguments as specified by the API,
140 // this change will be transparent for you.
141 //
142 // short is currently used for device page coordinates, so they are
143 // bounded by (-32767, 32767). This gives a max resolution of about 3000
144 // dpi, and improves performance in some areas over using a PLINT.
145 //
146 // PLUNICODE should be a 32-bit unsigned integer on all platforms.
147 // For now, we are using unsigned int for our Linux ix86 unicode experiments,
148 // but that doesn't guarantee 32 bits exactly on all platforms so this will
149 // be subject to change.
150 //--------------------------------------------------------------------------
151 
152 #if defined ( PL_DOUBLE ) || defined ( DOUBLE )
153 typedef double PLFLT;
154 #define PLFLT_MAX DBL_MAX
155 #define PLFLT_MIN DBL_MIN
156 #define PLFLT_HUGE_VAL HUGE_VAL
157 #else
158 typedef float PLFLT;
159 #define PLFLT_MAX FLT_MAX
160 #define PLFLT_MIN FLT_MIN
161 #define PLFLT_HUGE_VAL HUGE_VALF
162 #endif
163 
164 #if ( defined ( PL_HAVE_STDINT_H ) && !defined ( __cplusplus ) ) || \
165  ( defined ( __cplusplus ) && defined ( PL_HAVE_CXX_STDINT_H ) )
166 #include <stdint.h>
167 // This is apparently portable if stdint.h exists.
168 typedef uint32_t PLUINT;
169 typedef int32_t PLINT;
170 typedef int64_t PLINT64;
171 #define PLINT_MIN INT32_MIN
172 #define PLINT_MAX INT32_MAX
173 #else
174 // A reasonable back-up in case stdint.h does not exist on the platform.
175 typedef unsigned int PLUINT;
176 typedef int PLINT;
177 typedef __int64 PLINT64;
178 // for Visual C++ 2003 and later INT_MIN must be used, otherwise
179 // PLINT_MIN is unsigned and 2147483648 NOT -2147483648, see
180 // http://msdn.microsoft.com/en-us/library/4kh09110(VS.71).aspx for
181 // details
182 #if defined ( _MSC_VER ) && _MSC_VER >= 1310
183  #include <Limits.h>
184  #define PLINT_MIN INT_MIN
185 #else
186  #define PLINT_MIN -2147483648
187 #endif
188 //
189 // typedef unsigned int PLUINT;
190 // typedef int PLINT;
191 // typedef long long PLINT64;
192 //
193 #endif
194 
195 // For identifying unicode characters
197 
198 // For identifying logical (boolean) arguments
199 typedef PLINT PLBOOL;
200 
201 // typedefs for generic pointers.
202 
203 // generic pointer to mutable object:
204 typedef void * PLPointer;
205 
206 // Deprecated and only provided for backwards compatibility with
207 // the release of 5.12.0 when these were (mistakenly) introduced.
208 // The plan then was to apply the const attribute to PL_GENERIC_POINTER
209 // for the next release after 5.12.0, but that plan has been aborted
210 // so the lack of the "NC" (for indicating the const attribute has
211 // not been used) in the name is now a misnomer.
214 
215 // PLFLT first element pointers which are used to point to the first
216 // element of a contigous block of memory containing a PLFLT array with
217 // an arbitrary number of dimensions.
218 
219 // mutable version
221 // immutable version
222 typedef const PLFLT * PLFLT_FE_POINTER;
223 
224 // typedefs that are typically used for passing scalar, vector, and
225 // matrix arguments to functions. The NC attribute concerns pointers
226 // to mutable objects, where the objects are used for passing values
227 // that are either output only or both input and output. Pointers whose
228 // name does not contain the NC attribute point to immutable objects
229 // which are strictly input and guaranteed to be unchanged by the function.
230 //
231 
232 // Pointers to mutable scalars:
236 typedef char * PLCHAR_NC_SCALAR;
238 
239 // Pointers to mutable vectors:
240 typedef int * PLINT_NC_VECTOR;
241 typedef char * PLCHAR_NC_VECTOR;
243 
244 // Pointers to immutable vectors:
245 typedef const PLINT * PLINT_VECTOR;
246 typedef const PLBOOL * PLBOOL_VECTOR;
247 typedef const char * PLCHAR_VECTOR;
248 typedef const PLFLT * PLFLT_VECTOR;
249 
250 // Pointers to mutable 2-dimensional matrices:
251 typedef char ** PLCHAR_NC_MATRIX;
253 
254 // Pointers to immutable 2-dimensional matrices,
255 // (i.e., pointers to const pointers to const values):
256 typedef const char * const * PLCHAR_MATRIX;
257 typedef const PLFLT * const * PLFLT_MATRIX;
258 
259 // Callback-related typedefs
262 typedef void ( *PLLABEL_FUNC_callback )( PLINT axis, PLFLT value, PLCHAR_NC_VECTOR label, PLINT length, PLPointer data );
263 typedef PLFLT ( *PLF2EVAL_callback )( PLINT ix, PLINT iy, PLPointer data );
264 typedef void ( *PLFILL_callback )( PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR y );
265 typedef PLINT ( *PLDEFINED_callback )( PLFLT x, PLFLT y );
266 
267 //--------------------------------------------------------------------------
268 // Complex data types and other good stuff
269 //--------------------------------------------------------------------------
270 
271 // Switches for escape function call.
272 // Some of these are obsolete but are retained in order to process
273 // old metafiles
274 
275 #define PLESC_SET_RGB 1 // obsolete
276 #define PLESC_ALLOC_NCOL 2 // obsolete
277 #define PLESC_SET_LPB 3 // obsolete
278 #define PLESC_EXPOSE 4 // handle window expose
279 #define PLESC_RESIZE 5 // handle window resize
280 #define PLESC_REDRAW 6 // handle window redraw
281 #define PLESC_TEXT 7 // switch to text screen
282 #define PLESC_GRAPH 8 // switch to graphics screen
283 #define PLESC_FILL 9 // fill polygon
284 #define PLESC_DI 10 // handle DI command
285 #define PLESC_FLUSH 11 // flush output
286 #define PLESC_EH 12 // handle Window events
287 #define PLESC_GETC 13 // get cursor position
288 #define PLESC_SWIN 14 // set window parameters
289 #define PLESC_DOUBLEBUFFERING 15 // configure double buffering
290 #define PLESC_XORMOD 16 // set xor mode
291 #define PLESC_SET_COMPRESSION 17 // AFR: set compression
292 #define PLESC_CLEAR 18 // RL: clear graphics region
293 #define PLESC_DASH 19 // RL: draw dashed line
294 #define PLESC_HAS_TEXT 20 // driver draws text
295 #define PLESC_IMAGE 21 // handle image
296 #define PLESC_IMAGEOPS 22 // plimage related operations
297 #define PLESC_PL2DEVCOL 23 // convert PLColor to device color
298 #define PLESC_DEV2PLCOL 24 // convert device color to PLColor
299 #define PLESC_SETBGFG 25 // set BG, FG colors
300 #define PLESC_DEVINIT 26 // alternate device initialization
301 #define PLESC_GETBACKEND 27 // get used backend of (wxWidgets) driver - no longer used
302 #define PLESC_BEGIN_TEXT 28 // get ready to draw a line of text
303 #define PLESC_TEXT_CHAR 29 // render a character of text
304 #define PLESC_CONTROL_CHAR 30 // handle a text control character (super/subscript, etc.)
305 #define PLESC_END_TEXT 31 // finish a drawing a line of text
306 #define PLESC_START_RASTERIZE 32 // start rasterized rendering
307 #define PLESC_END_RASTERIZE 33 // end rasterized rendering
308 #define PLESC_ARC 34 // render an arc
309 #define PLESC_GRADIENT 35 // render a gradient
310 #define PLESC_MODESET 36 // set drawing mode
311 #define PLESC_MODEGET 37 // get drawing mode
312 #define PLESC_FIXASPECT 38 // set or unset fixing the aspect ratio of the plot
313 #define PLESC_IMPORT_BUFFER 39 // set the contents of the buffer to a specified byte string
314 #define PLESC_APPEND_BUFFER 40 // append the given byte string to the buffer
315 #define PLESC_FLUSH_REMAINING_BUFFER 41 // flush the remaining buffer e.g. after new data was appended
316 
317 // Alternative unicode text handling control characters
318 #define PLTEXT_FONTCHANGE 0 // font change in the text stream
319 #define PLTEXT_SUPERSCRIPT 1 // superscript in the text stream
320 #define PLTEXT_SUBSCRIPT 2 // subscript in the text stream
321 #define PLTEXT_BACKCHAR 3 // back-char in the text stream
322 #define PLTEXT_OVERLINE 4 // toggle overline in the text stream
323 #define PLTEXT_UNDERLINE 5 // toggle underline in the text stream
324 
325 // image operations
326 #define ZEROW2B 1
327 #define ZEROW2D 2
328 #define ONEW2B 3
329 #define ONEW2D 4
330 
331 // Window parameter tags
332 
333 #define PLSWIN_DEVICE 1 // device coordinates
334 #define PLSWIN_WORLD 2 // world coordinates
335 
336 // Axis label tags
337 #define PL_X_AXIS 1 // The x-axis
338 #define PL_Y_AXIS 2 // The y-axis
339 #define PL_Z_AXIS 3 // The z-axis
340 
341 // PLplot Option table & support constants
342 
343 // Option-specific settings
344 
345 #define PL_OPT_ENABLED 0x0001 // Obsolete
346 #define PL_OPT_ARG 0x0002 // Option has an argument
347 #define PL_OPT_NODELETE 0x0004 // Don't delete after processing
348 #define PL_OPT_INVISIBLE 0x0008 // Make invisible
349 #define PL_OPT_DISABLED 0x0010 // Processing is disabled
350 
351 // Option-processing settings -- mutually exclusive
352 
353 #define PL_OPT_FUNC 0x0100 // Call handler function
354 #define PL_OPT_BOOL 0x0200 // Set *var = 1
355 #define PL_OPT_INT 0x0400 // Set *var = atoi(optarg)
356 #define PL_OPT_FLOAT 0x0800 // Set *var = atof(optarg)
357 #define PL_OPT_STRING 0x1000 // Set var = optarg
358 
359 // Global mode settings
360 // These override per-option settings
361 
362 #define PL_PARSE_PARTIAL 0x0000 // For backward compatibility
363 #define PL_PARSE_FULL 0x0001 // Process fully & exit if error
364 #define PL_PARSE_QUIET 0x0002 // Don't issue messages
365 #define PL_PARSE_NODELETE 0x0004 // Don't delete options after
366  // processing
367 #define PL_PARSE_SHOWALL 0x0008 // Show invisible options
368 #define PL_PARSE_OVERRIDE 0x0010 // Obsolete
369 #define PL_PARSE_NOPROGRAM 0x0020 // Program name NOT in *argv[0]..
370 #define PL_PARSE_NODASH 0x0040 // Set if leading dash NOT required
371 #define PL_PARSE_SKIP 0x0080 // Skip over unrecognized args
372 
373 // FCI (font characterization integer) related constants.
374 #define PL_FCI_MARK 0x80000000
375 #define PL_FCI_IMPOSSIBLE 0x00000000
376 #define PL_FCI_HEXDIGIT_MASK 0xf
377 #define PL_FCI_HEXPOWER_MASK 0x7
378 #define PL_FCI_HEXPOWER_IMPOSSIBLE 0xf
379 // These define hexpower values corresponding to each font attribute.
380 #define PL_FCI_FAMILY 0x0
381 #define PL_FCI_STYLE 0x1
382 #define PL_FCI_WEIGHT 0x2
383 // These are legal values for font family attribute
384 #define PL_FCI_SANS 0x0
385 #define PL_FCI_SERIF 0x1
386 #define PL_FCI_MONO 0x2
387 #define PL_FCI_SCRIPT 0x3
388 #define PL_FCI_SYMBOL 0x4
389 // These are legal values for font style attribute
390 #define PL_FCI_UPRIGHT 0x0
391 #define PL_FCI_ITALIC 0x1
392 #define PL_FCI_OBLIQUE 0x2
393 // These are legal values for font weight attribute
394 #define PL_FCI_MEDIUM 0x0
395 #define PL_FCI_BOLD 0x1
396 
397 // Option table definition
398 
399 typedef struct
400 {
402  int ( *handler )( PLCHAR_VECTOR, PLCHAR_VECTOR, PLPointer );
405  long mode;
408 } PLOptionTable;
409 
410 // PLplot Graphics Input structure
411 
412 #define PL_MAXKEY 16
413 
414 //Masks for use with PLGraphicsIn::state
415 //These exactly coincide with the X11 masks
416 //from X11/X.h, however the values 1<<3 to
417 //1<<7 aparently may vary depending upon
418 //X implementation and keyboard
419 // Numerical #defines are parsed further to help determine
420 // additional files such as ../bindings/swig-support/plplotcapi.i
421 // so must #define numerical #defines with numbers rather than C operators
422 // such as <<.
423 #define PL_MASK_SHIFT 0x1 // ( 1 << 0 )
424 #define PL_MASK_CAPS 0x2 // ( 1 << 1 )
425 #define PL_MASK_CONTROL 0x4 // ( 1 << 2 )
426 #define PL_MASK_ALT 0x8 // ( 1 << 3 )
427 #define PL_MASK_NUM 0x10 // ( 1 << 4 )
428 #define PL_MASK_ALTGR 0x20 // ( 1 << 5 )
429 #define PL_MASK_WIN 0x40 // ( 1 << 6 )
430 #define PL_MASK_SCROLL 0x80 // ( 1 << 7 )
431 #define PL_MASK_BUTTON1 0x100 // ( 1 << 8 )
432 #define PL_MASK_BUTTON2 0x200 // ( 1 << 9 )
433 #define PL_MASK_BUTTON3 0x400 // ( 1 << 10 )
434 #define PL_MASK_BUTTON4 0x800 // ( 1 << 11 )
435 #define PL_MASK_BUTTON5 0x1000 // ( 1 << 12 )
436 
437 typedef struct
438 {
439  int type; // of event (CURRENTLY UNUSED)
440  unsigned int state; // key or button mask
441  unsigned int keysym; // key selected
442  unsigned int button; // mouse button selected
443  PLINT subwindow; // subwindow (alias subpage, alias subplot) number
444  char string[PL_MAXKEY]; // translated string
445  int pX, pY; // absolute device coordinates of pointer
446  PLFLT dX, dY; // relative device coordinates of pointer
447  PLFLT wX, wY; // world coordinates of pointer
448 } PLGraphicsIn;
449 
450 // Structure for describing the plot window
451 
452 #define PL_MAXWINDOWS 64 // Max number of windows/page tracked
453 
454 typedef struct
455 {
456  PLFLT dxmi, dxma, dymi, dyma; // min, max window rel dev coords
457  PLFLT wxmi, wxma, wymi, wyma; // min, max window world coords
458 } PLWindow;
459 
460 // Structure for doing display-oriented operations via escape commands
461 // May add other attributes in time
462 
463 typedef struct
464 {
465  unsigned int x, y; // upper left hand corner
466  unsigned int width, height; // window dimensions
467 } PLDisplay;
468 
469 // Macro used (in some cases) to ignore value of argument
470 // I don't plan on changing the value so you can hard-code it
471 
472 #define PL_NOTSET ( -42 )
473 
474 // See plcont.c for examples of the following
475 
476 //
477 // PLfGrid is for passing (as a pointer to the first element) an arbitrarily
478 // dimensioned array. The grid dimensions MUST be stored, with a maximum of 3
479 // dimensions assumed for now.
480 //
481 
482 typedef struct
483 {
485  PLINT nx, ny, nz;
486 } PLfGrid;
487 
488 //
489 // PLfGrid2 is for passing (as an array of pointers) a 2d function array. The
490 // grid dimensions are passed for possible bounds checking.
491 //
492 
493 typedef struct
494 {
496  PLINT nx, ny;
497 } PLfGrid2;
498 
499 //
500 // NOTE: a PLfGrid3 is a good idea here but there is no way to exploit it yet
501 // so I'll leave it out for now.
502 //
503 
504 //
505 // PLcGrid is for passing (as a pointer to the first element) arbitrarily
506 // dimensioned coordinate transformation arrays. The grid dimensions MUST be
507 // stored, with a maximum of 3 dimensions assumed for now.
508 //
509 
510 typedef struct
511 {
513  PLINT nx, ny, nz;
514 } PLcGrid;
515 
516 //
517 // PLcGrid2 is for passing (as arrays of pointers) 2d coordinate
518 // transformation arrays. The grid dimensions are passed for possible bounds
519 // checking.
520 //
521 
522 typedef struct
523 {
525  PLINT nx, ny;
526 } PLcGrid2;
527 
528 //
529 // NOTE: a PLcGrid3 is a good idea here but there is no way to exploit it yet
530 // so I'll leave it out for now.
531 //
532 
533 // PLColor is the usual way to pass an rgb color value.
534 
535 typedef struct
536 {
537  unsigned char r; // red
538  unsigned char g; // green
539  unsigned char b; // blue
540  PLFLT a; // alpha (or transparency)
542 } PLColor;
543 
544 // PLControlPt is how cmap1 control points are represented.
545 
546 typedef struct
547 {
548  PLFLT c1; // hue or red
549  PLFLT c2; // lightness or green
550  PLFLT c3; // saturation or blue
551  PLFLT p; // position
552  PLFLT a; // alpha (or transparency)
553  int alt_hue_path; // if set, interpolate through h=0
554 } PLControlPt;
555 
556 // A PLBufferingCB is a control block for interacting with devices
557 // that support double buffering.
558 
559 typedef struct
560 {
563 } PLBufferingCB;
564 
565 #define PLESC_DOUBLEBUFFERING_ENABLE 1
566 #define PLESC_DOUBLEBUFFERING_DISABLE 2
567 #define PLESC_DOUBLEBUFFERING_QUERY 3
568 
569 typedef struct
570 {
575 
576 //
577 // typedefs for access methods for arbitrary (i.e. user defined) data storage
578 //
579 
580 //
581 // This type of struct holds pointers to functions that are used to
582 // get, set, modify, and test individual 2-D data points referenced by
583 // a PLPointer or PLPointer. How these
584 // generic pointers are used depends entirely on the functions
585 // that implement the various operations. Certain common data
586 // representations have predefined instances of this structure
587 // prepopulated with pointers to predefined functions.
588 //
589 
590 typedef struct
591 {
592  PLFLT ( *get )( PLPointer p, PLINT ix, PLINT iy );
593  PLFLT ( *set )( PLPointer p, PLINT ix, PLINT iy, PLFLT z );
594  PLFLT ( *add )( PLPointer p, PLINT ix, PLINT iy, PLFLT z );
595  PLFLT ( *sub )( PLPointer p, PLINT ix, PLINT iy, PLFLT z );
596  PLFLT ( *mul )( PLPointer p, PLINT ix, PLINT iy, PLFLT z );
597  PLFLT ( *div )( PLPointer p, PLINT ix, PLINT iy, PLFLT z );
598  PLINT ( *is_nan )( PLPointer p, PLINT ix, PLINT iy );
599  void ( *minmax )( PLPointer p, PLINT nx, PLINT ny, PLFLT_NC_SCALAR zmin, PLFLT_NC_SCALAR zmax );
600  //
601  // f2eval is backwards compatible signature for "f2eval" functions that
602  // existed before plf2ops "operator function families" were used.
603  //
604  PLFLT ( *f2eval )( PLINT ix, PLINT iy, PLPointer p );
605 } plf2ops_t;
606 
607 //
608 // A typedef to facilitate declaration of a pointer to a plfops_t structure.
609 //
610 
611 typedef plf2ops_t * PLF2OPS;
612 
613 //
614 // A struct to pass a buffer around
615 //
616 typedef struct
617 {
618  size_t size;
620 } plbuffer;
621 
622 //--------------------------------------------------------------------------
623 // BRAINDEAD-ness
624 //
625 // Some systems allow the Fortran & C namespaces to clobber each other.
626 // For PLplot to work from Fortran on these systems, we must name the the
627 // externally callable C functions something other than their Fortran entry
628 // names. In order to make this as easy as possible for the casual user,
629 // yet reversible to those who abhor my solution, I have done the
630 // following:
631 //
632 // The C-language bindings are actually different from those
633 // described in the manual. Macros are used to convert the
634 // documented names to the names used in this package. The
635 // user MUST include plplot.h in order to get the name
636 // redefinition correct.
637 //
638 // Sorry to have to resort to such an ugly kludge, but it is really the
639 // best way to handle the situation at present. If all available
640 // compilers offer a way to correct this stupidity, then perhaps we can
641 // eventually reverse it.
642 //
643 // If you feel like screaming at someone (I sure do), please
644 // direct it at your nearest system vendor who has a braindead shared
645 // C/Fortran namespace. Some vendors do offer compiler switches that
646 // change the object names, but then everybody who wants to use the
647 // package must throw these same switches, leading to no end of trouble.
648 //
649 // Note that this definition should not cause any noticable effects except
650 // when debugging PLplot calls, in which case you will need to remember
651 // the real function names (same as before but with a 'c_' prepended).
652 //
653 // Also, to avoid macro conflicts, the BRAINDEAD part must not be expanded
654 // in the stub routines.
655 //
656 // Aside: the reason why a shared Fortran/C namespace is deserving of the
657 // BRAINDEAD characterization is that it completely precludes the the kind
658 // of universal API that is attempted (more or less) with PLplot, without
659 // Herculean efforts (e.g. remapping all of the C bindings by macros as
660 // done here). The vendors of such a scheme, in order to allow a SINGLE
661 // type of argument to be passed transparently between C and Fortran,
662 // namely, a pointer to a conformable data type, have slammed the door on
663 // insertion of stub routines to handle the conversions needed for other
664 // data types. Intelligent linkers could solve this problem, but these are
665 // not anywhere close to becoming universal. So meanwhile, one must live
666 // with either stub routines for the inevitable data conversions, or a
667 // different API. The former is what is used here, but is made far more
668 // difficult in a braindead shared Fortran/C namespace.
669 //--------------------------------------------------------------------------
670 
671 #ifndef BRAINDEAD
672 #define BRAINDEAD
673 #endif
674 
675 #ifdef BRAINDEAD
676 
677 #ifndef __PLSTUBS_H__ // i.e. do not expand this in the stubs
678 
679 #define pl_setcontlabelformat c_pl_setcontlabelformat
680 #define pl_setcontlabelparam c_pl_setcontlabelparam
681 #define pladv c_pladv
682 #define plarc c_plarc
683 #define plaxes c_plaxes
684 #define plbin c_plbin
685 #define plbop c_plbop
686 #define plbox c_plbox
687 #define plbox3 c_plbox3
688 #define plbtime c_plbtime
689 #define plcalc_world c_plcalc_world
690 #define plclear c_plclear
691 #define plcol0 c_plcol0
692 #define plcol1 c_plcol1
693 #define plcolorbar c_plcolorbar
694 #define plconfigtime c_plconfigtime
695 #define plcont c_plcont
696 #define plcpstrm c_plcpstrm
697 #define plctime c_plctime
698 #define plend c_plend
699 #define plend1 c_plend1
700 #define plenv c_plenv
701 #define plenv0 c_plenv0
702 #define pleop c_pleop
703 #define plerrx c_plerrx
704 #define plerry c_plerry
705 #define plfamadv c_plfamadv
706 #define plfill c_plfill
707 #define plfill3 c_plfill3
708 #define plflush c_plflush
709 #define plfont c_plfont
710 #define plfontld c_plfontld
711 #define plgchr c_plgchr
712 #define plgcmap1_range c_plgcmap1_range
713 #define plgcol0 c_plgcol0
714 #define plgcol0a c_plgcol0a
715 #define plgcolbg c_plgcolbg
716 #define plgcolbga c_plgcolbga
717 #define plgcompression c_plgcompression
718 #define plgdev c_plgdev
719 #define plgdidev c_plgdidev
720 #define plgdiori c_plgdiori
721 #define plgdiplt c_plgdiplt
722 #define plgdrawmode c_plgdrawmode
723 #define plgfam c_plgfam
724 #define plgfci c_plgfci
725 #define plgfnam c_plgfnam
726 #define plgfont c_plgfont
727 #define plglevel c_plglevel
728 #define plgpage c_plgpage
729 #define plgra c_plgra
730 #define plgradient c_plgradient
731 #define plgriddata c_plgriddata
732 #define plgspa c_plgspa
733 #define plgstrm c_plgstrm
734 #define plgver c_plgver
735 #define plgvpd c_plgvpd
736 #define plgvpw c_plgvpw
737 #define plgxax c_plgxax
738 #define plgyax c_plgyax
739 #define plgzax c_plgzax
740 #define plhist c_plhist
741 #define plhlsrgb c_plhlsrgb
742 #define plimage c_plimage
743 #define plimagefr c_plimagefr
744 #define plinit c_plinit
745 #define pljoin c_pljoin
746 #define pllab c_pllab
747 #define pllegend c_pllegend
748 #define pllightsource c_pllightsource
749 #define plline c_plline
750 #define plpath c_plpath
751 #define plline3 c_plline3
752 #define pllsty c_pllsty
753 #define plmap c_plmap
754 #define plmapline c_plmapline
755 #define plmapstring c_plmapstring
756 #define plmaptex c_plmaptex
757 #define plmapfill c_plmapfill
758 #define plmeridians c_plmeridians
759 #define plmesh c_plmesh
760 #define plmeshc c_plmeshc
761 #define plmkstrm c_plmkstrm
762 #define plmtex c_plmtex
763 #define plmtex3 c_plmtex3
764 #define plot3d c_plot3d
765 #define plot3dc c_plot3dc
766 #define plot3dcl c_plot3dcl
767 #define plparseopts c_plparseopts
768 #define plpat c_plpat
769 #define plpoin c_plpoin
770 #define plpoin3 c_plpoin3
771 #define plpoly3 c_plpoly3
772 #define plprec c_plprec
773 #define plpsty c_plpsty
774 #define plptex c_plptex
775 #define plptex3 c_plptex3
776 #define plrandd c_plrandd
777 #define plreplot c_plreplot
778 #define plrgbhls c_plrgbhls
779 #define plschr c_plschr
780 #define plscmap0 c_plscmap0
781 #define plscmap0a c_plscmap0a
782 #define plscmap0n c_plscmap0n
783 #define plscmap1 c_plscmap1
784 #define plscmap1a c_plscmap1a
785 #define plscmap1l c_plscmap1l
786 #define plscmap1la c_plscmap1la
787 #define plscmap1n c_plscmap1n
788 #define plscmap1_range c_plscmap1_range
789 #define plscol0 c_plscol0
790 #define plscol0a c_plscol0a
791 #define plscolbg c_plscolbg
792 #define plscolbga c_plscolbga
793 #define plscolor c_plscolor
794 #define plscompression c_plscompression
795 #define plsdev c_plsdev
796 #define plsdidev c_plsdidev
797 #define plsdimap c_plsdimap
798 #define plsdiori c_plsdiori
799 #define plsdiplt c_plsdiplt
800 #define plsdiplz c_plsdiplz
801 #define plsdrawmode c_plsdrawmode
802 #define plseed c_plseed
803 #define plsesc c_plsesc
804 #define plsetopt c_plsetopt
805 #define plsfam c_plsfam
806 #define plsfci c_plsfci
807 #define plsfnam c_plsfnam
808 #define plsfont c_plsfont
809 #define plshade c_plshade
810 #ifdef PL_DEPRECATED
811 #define plshade1 c_plshade1
812 #endif // PL_DEPRECATED
813 #define plshades c_plshades
814 #define plslabelfunc c_plslabelfunc
815 #define plsmaj c_plsmaj
816 #define plsmem c_plsmem
817 #define plsmema c_plsmema
818 #define plsmin c_plsmin
819 #define plsori c_plsori
820 #define plspage c_plspage
821 #define plspal0 c_plspal0
822 #define plspal1 c_plspal1
823 #define plspause c_plspause
824 #define plsstrm c_plsstrm
825 #define plssub c_plssub
826 #define plssym c_plssym
827 #define plstar c_plstar
828 #define plstart c_plstart
829 #define plstransform c_plstransform
830 #define plstring c_plstring
831 #define plstring3 c_plstring3
832 #define plstripa c_plstripa
833 #define plstripc c_plstripc
834 #define plstripd c_plstripd
835 #define plstyl c_plstyl
836 #define plsurf3d c_plsurf3d
837 #define plsurf3dl c_plsurf3dl
838 #define plsvect c_plsvect
839 #define plsvpa c_plsvpa
840 #define plsxax c_plsxax
841 #define plsyax c_plsyax
842 #define plsym c_plsym
843 #define plszax c_plszax
844 #define pltext c_pltext
845 #define pltimefmt c_pltimefmt
846 #define plvasp c_plvasp
847 #define plvect c_plvect
848 #define plvpas c_plvpas
849 #define plvpor c_plvpor
850 #define plvsta c_plvsta
851 #define plw3d c_plw3d
852 #define plwidth c_plwidth
853 #define plwind c_plwind
854 #define plxormod c_plxormod
855 
856 #endif // __PLSTUBS_H__
857 
858 #endif // BRAINDEAD
859 
860 //--------------------------------------------------------------------------
861 // Function Prototypes
862 //--------------------------------------------------------------------------
863 
864 #ifdef __cplusplus
865 extern "C" {
866 #endif
867 
868 // All void types
869 
870 // C routines callable from stub routines come first
871 
872 // set the format of the contour labels
873 
874 PLDLLIMPEXP void
875 c_pl_setcontlabelformat( PLINT lexp, PLINT sigdig );
876 
877 // set offset and spacing of contour labels
878 
879 PLDLLIMPEXP void
880 c_pl_setcontlabelparam( PLFLT offset, PLFLT size, PLFLT spacing, PLINT active );
881 
882 // Advance to subpage "page", or to the next one if "page" = 0.
883 
884 PLDLLIMPEXP void
885 c_pladv( PLINT page );
886 
887 // Plot an arc
888 
889 PLDLLIMPEXP void
890 c_plarc( PLFLT x, PLFLT y, PLFLT a, PLFLT b, PLFLT angle1, PLFLT angle2,
891  PLFLT rotate, PLBOOL fill );
892 
893 // This functions similarly to plbox() except that the origin of the axes
894 // is placed at the user-specified point (x0, y0).
895 
896 PLDLLIMPEXP void
897 c_plaxes( PLFLT x0, PLFLT y0, PLCHAR_VECTOR xopt, PLFLT xtick, PLINT nxsub,
898  PLCHAR_VECTOR yopt, PLFLT ytick, PLINT nysub );
899 
900 // Plot a histogram using x to store data values and y to store frequencies
901 
902 // Flags for plbin() - opt argument
903 #define PL_BIN_DEFAULT 0x0
904 #define PL_BIN_CENTRED 0x1
905 #define PL_BIN_NOEXPAND 0x2
906 #define PL_BIN_NOEMPTY 0x4
907 
908 PLDLLIMPEXP void
909 c_plbin( PLINT nbin, PLFLT_VECTOR x, PLFLT_VECTOR y, PLINT opt );
910 
911 // Calculate broken-down time from continuous time for current stream.
912 PLDLLIMPEXP void
914 
915 // Start new page. Should only be used with pleop().
916 
917 PLDLLIMPEXP void
918 c_plbop( void );
919 
920 // This draws a box around the current viewport.
921 
922 PLDLLIMPEXP void
923 c_plbox( PLCHAR_VECTOR xopt, PLFLT xtick, PLINT nxsub,
924  PLCHAR_VECTOR yopt, PLFLT ytick, PLINT nysub );
925 
926 // This is the 3-d analogue of plbox().
927 
928 PLDLLIMPEXP void
929 c_plbox3( PLCHAR_VECTOR xopt, PLCHAR_VECTOR xlabel, PLFLT xtick, PLINT nxsub,
930  PLCHAR_VECTOR yopt, PLCHAR_VECTOR ylabel, PLFLT ytick, PLINT nysub,
931  PLCHAR_VECTOR zopt, PLCHAR_VECTOR zlabel, PLFLT ztick, PLINT nzsub );
932 
933 // Calculate world coordinates and subpage from relative device coordinates.
934 
935 PLDLLIMPEXP void
937 
938 // Clear current subpage.
939 
940 PLDLLIMPEXP void
941 c_plclear( void );
942 
943 // Set color, map 0. Argument is integer between 0 and 15.
944 
945 PLDLLIMPEXP void
946 c_plcol0( PLINT icol0 );
947 
948 // Set color, map 1. Argument is a float between 0. and 1.
949 
950 PLDLLIMPEXP void
951 c_plcol1( PLFLT col1 );
952 
953 // Configure transformation between continuous and broken-down time (and
954 // vice versa) for current stream.
955 PLDLLIMPEXP void
956 c_plconfigtime( PLFLT scale, PLFLT offset1, PLFLT offset2, PLINT ccontrol, PLBOOL ifbtime_offset, PLINT year, PLINT month, PLINT day, PLINT hour, PLINT min, PLFLT sec );
957 
958 // Draws a contour plot from data in f(nx,ny). Is just a front-end to
959 // plfcont, with a particular choice for f2eval and f2eval_data.
960 //
961 
962 PLDLLIMPEXP void
963 c_plcont( PLFLT_MATRIX f, PLINT nx, PLINT ny, PLINT kx, PLINT lx,
964  PLINT ky, PLINT ly, PLFLT_VECTOR clevel, PLINT nlevel,
965  PLTRANSFORM_callback pltr, PLPointer pltr_data );
966 
967 // Draws a contour plot using the function evaluator f2eval and data stored
968 // by way of the f2eval_data pointer. This allows arbitrary organizations
969 // of 2d array data to be used.
970 //
971 
972 PLDLLIMPEXP void
973 plfcont( PLF2EVAL_callback f2eval, PLPointer f2eval_data,
974  PLINT nx, PLINT ny, PLINT kx, PLINT lx,
975  PLINT ky, PLINT ly, PLFLT_VECTOR clevel, PLINT nlevel,
976  PLTRANSFORM_callback pltr, PLPointer pltr_data );
977 
978 // Copies state parameters from the reference stream to the current stream.
979 
980 PLDLLIMPEXP void
981 c_plcpstrm( PLINT iplsr, PLBOOL flags );
982 
983 // Calculate continuous time from broken-down time for current stream.
984 PLDLLIMPEXP void
985 c_plctime( PLINT year, PLINT month, PLINT day, PLINT hour, PLINT min, PLFLT sec, PLFLT_NC_SCALAR ctime );
986 
987 // Converts input values from relative device coordinates to relative plot
988 // coordinates.
989 
990 PLDLLIMPEXP void
992 
993 // Converts input values from relative plot coordinates to relative
994 // device coordinates.
995 
996 PLDLLIMPEXP void
998 
999 // End a plotting session for all open streams.
1000 
1001 PLDLLIMPEXP void
1002 c_plend( void );
1003 
1004 // End a plotting session for the current stream only.
1005 
1006 PLDLLIMPEXP void
1007 c_plend1( void );
1008 
1009 // Simple interface for defining viewport and window.
1010 
1011 PLDLLIMPEXP void
1012 c_plenv( PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax,
1013  PLINT just, PLINT axis );
1014 
1015 
1016 // similar to plenv() above, but in multiplot mode does not advance the subpage,
1017 // instead the current subpage is cleared
1018 
1019 PLDLLIMPEXP void
1020 c_plenv0( PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax,
1021  PLINT just, PLINT axis );
1022 
1023 // End current page. Should only be used with plbop().
1024 
1025 PLDLLIMPEXP void
1026 c_pleop( void );
1027 
1028 // Plot horizontal error bars (xmin(i),y(i)) to (xmax(i),y(i))
1029 
1030 PLDLLIMPEXP void
1032 
1033 // Plot vertical error bars (x,ymin(i)) to (x(i),ymax(i))
1034 
1035 PLDLLIMPEXP void
1037 
1038 // Advance to the next family file on the next new page
1039 
1040 PLDLLIMPEXP void
1041 c_plfamadv( void );
1042 
1043 // Pattern fills the polygon bounded by the input points.
1044 
1045 PLDLLIMPEXP void
1047 
1048 // Pattern fills the 3d polygon bounded by the input points.
1049 
1050 PLDLLIMPEXP void
1052 
1053 // Flushes the output stream. Use sparingly, if at all.
1054 
1055 PLDLLIMPEXP void
1056 c_plflush( void );
1057 
1058 // Sets the global font flag to 'ifont'.
1059 
1060 PLDLLIMPEXP void
1061 c_plfont( PLINT ifont );
1062 
1063 // Load specified font set.
1064 
1065 PLDLLIMPEXP void
1066 c_plfontld( PLINT fnt );
1067 
1068 // Get character default height and current (scaled) height
1069 
1070 PLDLLIMPEXP void
1072 
1073 // Get the color map 1 range used in continuous plots
1074 
1075 PLDLLIMPEXP void
1076 c_plgcmap1_range( PLFLT_NC_SCALAR min_color, PLFLT_NC_SCALAR max_color );
1077 
1078 // Returns 8 bit RGB values for given color from color map 0
1079 
1080 PLDLLIMPEXP void
1082 
1083 // Returns 8 bit RGB values for given color from color map 0 and alpha value
1084 
1085 PLDLLIMPEXP void
1087 
1088 // Returns the background color by 8 bit RGB value
1089 
1090 PLDLLIMPEXP void
1092 
1093 // Returns the background color by 8 bit RGB value and alpha value
1094 
1095 PLDLLIMPEXP void
1097 
1098 // Returns the current compression setting
1099 
1100 PLDLLIMPEXP void
1101 c_plgcompression( PLINT_NC_SCALAR compression );
1102 
1103 // Get the current device (keyword) name
1104 
1105 PLDLLIMPEXP void
1106 c_plgdev( PLCHAR_NC_VECTOR p_dev );
1107 
1108 // Retrieve current window into device space
1109 
1110 PLDLLIMPEXP void
1112 
1113 // Get plot orientation
1114 
1115 PLDLLIMPEXP void
1116 c_plgdiori( PLFLT_NC_SCALAR p_rot );
1117 
1118 // Retrieve current window into plot space
1119 
1120 PLDLLIMPEXP void
1122 
1123 // Get the drawing mode
1124 
1126 c_plgdrawmode( void );
1127 
1128 // Get FCI (font characterization integer)
1129 
1130 PLDLLIMPEXP void
1131 c_plgfci( PLUNICODE_NC_SCALAR p_fci );
1132 
1133 // Get family file parameters
1134 
1135 PLDLLIMPEXP void
1137 
1138 // Get the (current) output file name. Must be preallocated to >80 bytes
1139 
1140 PLDLLIMPEXP void
1141 c_plgfnam( PLCHAR_NC_VECTOR fnam );
1142 
1143 // Get the current font family, style and weight
1144 
1145 PLDLLIMPEXP void
1146 c_plgfont( PLINT_NC_SCALAR p_family, PLINT_NC_SCALAR p_style, PLINT_NC_SCALAR p_weight );
1147 
1148 // Get the (current) run level.
1149 
1150 PLDLLIMPEXP void
1151 c_plglevel( PLINT_NC_SCALAR p_level );
1152 
1153 // Get output device parameters.
1154 
1155 PLDLLIMPEXP void
1157  PLINT_NC_SCALAR p_xleng, PLINT_NC_SCALAR p_yleng, PLINT_NC_SCALAR p_xoff, PLINT_NC_SCALAR p_yoff );
1158 
1159 // Switches to graphics screen.
1160 
1161 PLDLLIMPEXP void
1162 c_plgra( void );
1163 
1164 // Draw gradient in polygon.
1165 
1166 PLDLLIMPEXP void
1168 
1169 // grid irregularly sampled data
1170 
1171 PLDLLIMPEXP void
1173  PLFLT_VECTOR xg, PLINT nptsx, PLFLT_VECTOR yg, PLINT nptsy,
1174  PLFLT_NC_MATRIX zg, PLINT type, PLFLT data );
1175 
1176 PLDLLIMPEXP void
1178  PLFLT_VECTOR xg, PLINT nptsx, PLFLT_VECTOR yg, PLINT nptsy,
1179  PLF2OPS zops, PLPointer zgp, PLINT type, PLFLT data );
1180 
1181 // type of gridding algorithm for plgriddata()
1182 
1183 #define GRID_CSA 1 // Bivariate Cubic Spline approximation
1184 #define GRID_DTLI 2 // Delaunay Triangulation Linear Interpolation
1185 #define GRID_NNI 3 // Natural Neighbors Interpolation
1186 #define GRID_NNIDW 4 // Nearest Neighbors Inverse Distance Weighted
1187 #define GRID_NNLI 5 // Nearest Neighbors Linear Interpolation
1188 #define GRID_NNAIDW 6 // Nearest Neighbors Around Inverse Distance Weighted
1189 
1190 // Get subpage boundaries in absolute coordinates
1191 
1192 PLDLLIMPEXP void
1194 
1195 // Get current stream number.
1196 
1197 PLDLLIMPEXP void
1198 c_plgstrm( PLINT_NC_SCALAR p_strm );
1199 
1200 // Get the current library version number
1201 
1202 PLDLLIMPEXP void
1203 c_plgver( PLCHAR_NC_VECTOR p_ver );
1204 
1205 // Get viewport boundaries in normalized device coordinates
1206 
1207 PLDLLIMPEXP void
1208 c_plgvpd( PLFLT_NC_SCALAR p_xmin, PLFLT_NC_SCALAR p_xmax, PLFLT_NC_SCALAR p_ymin, PLFLT_NC_SCALAR p_ymax );
1209 
1210 // Get viewport boundaries in world coordinates
1211 
1212 PLDLLIMPEXP void
1213 c_plgvpw( PLFLT_NC_SCALAR p_xmin, PLFLT_NC_SCALAR p_xmax, PLFLT_NC_SCALAR p_ymin, PLFLT_NC_SCALAR p_ymax );
1214 
1215 // Get x axis labeling parameters
1216 
1217 PLDLLIMPEXP void
1218 c_plgxax( PLINT_NC_SCALAR p_digmax, PLINT_NC_SCALAR p_digits );
1219 
1220 // Get y axis labeling parameters
1221 
1222 PLDLLIMPEXP void
1223 c_plgyax( PLINT_NC_SCALAR p_digmax, PLINT_NC_SCALAR p_digits );
1224 
1225 // Get z axis labeling parameters
1226 
1227 PLDLLIMPEXP void
1228 c_plgzax( PLINT_NC_SCALAR p_digmax, PLINT_NC_SCALAR p_digits );
1229 
1230 // Draws a histogram of n values of a variable in array data[0..n-1]
1231 
1232 // Flags for plhist() - opt argument; note: some flags are passed to
1233 // plbin() for the actual plotting
1234 #define PL_HIST_DEFAULT 0x00
1235 #define PL_HIST_NOSCALING 0x01
1236 #define PL_HIST_IGNORE_OUTLIERS 0x02
1237 #define PL_HIST_NOEXPAND 0x08
1238 #define PL_HIST_NOEMPTY 0x10
1239 
1240 PLDLLIMPEXP void
1241 c_plhist( PLINT n, PLFLT_VECTOR data, PLFLT datmin, PLFLT datmax,
1242  PLINT nbin, PLINT opt );
1243 
1244 // Functions for converting between HLS and RGB color space
1245 
1246 PLDLLIMPEXP void
1248 
1249 // Initializes PLplot, using preset or default options
1250 
1251 PLDLLIMPEXP void
1252 c_plinit( void );
1253 
1254 // Draws a line segment from (x1, y1) to (x2, y2).
1255 
1256 PLDLLIMPEXP void
1257 c_pljoin( PLFLT x1, PLFLT y1, PLFLT x2, PLFLT y2 );
1258 
1259 // Simple routine for labelling graphs.
1260 
1261 PLDLLIMPEXP void
1262 c_pllab( PLCHAR_VECTOR xlabel, PLCHAR_VECTOR ylabel, PLCHAR_VECTOR tlabel );
1263 
1264 //flags used for position argument of both pllegend and plcolorbar
1265 #define PL_POSITION_NULL 0x0
1266 #define PL_POSITION_LEFT 0x1
1267 #define PL_POSITION_RIGHT 0x2
1268 #define PL_POSITION_TOP 0x4
1269 #define PL_POSITION_BOTTOM 0x8
1270 #define PL_POSITION_INSIDE 0x10
1271 #define PL_POSITION_OUTSIDE 0x20
1272 #define PL_POSITION_VIEWPORT 0x40
1273 #define PL_POSITION_SUBPAGE 0x80
1274 
1275 // Flags for pllegend.
1276 #define PL_LEGEND_NULL 0x0
1277 #define PL_LEGEND_NONE 0x1
1278 #define PL_LEGEND_COLOR_BOX 0x2
1279 #define PL_LEGEND_LINE 0x4
1280 #define PL_LEGEND_SYMBOL 0x8
1281 #define PL_LEGEND_TEXT_LEFT 0x10
1282 #define PL_LEGEND_BACKGROUND 0x20
1283 #define PL_LEGEND_BOUNDING_BOX 0x40
1284 #define PL_LEGEND_ROW_MAJOR 0x80
1285 
1286 // Flags for plcolorbar
1287 #define PL_COLORBAR_NULL 0x0
1288 #define PL_COLORBAR_LABEL_LEFT 0x1
1289 #define PL_COLORBAR_LABEL_RIGHT 0x2
1290 #define PL_COLORBAR_LABEL_TOP 0x4
1291 #define PL_COLORBAR_LABEL_BOTTOM 0x8
1292 #define PL_COLORBAR_IMAGE 0x10
1293 #define PL_COLORBAR_SHADE 0x20
1294 #define PL_COLORBAR_GRADIENT 0x40
1295 #define PL_COLORBAR_CAP_NONE 0x80
1296 #define PL_COLORBAR_CAP_LOW 0x100
1297 #define PL_COLORBAR_CAP_HIGH 0x200
1298 #define PL_COLORBAR_SHADE_LABEL 0x400
1299 #define PL_COLORBAR_ORIENT_RIGHT 0x800
1300 #define PL_COLORBAR_ORIENT_TOP 0x1000
1301 #define PL_COLORBAR_ORIENT_LEFT 0x2000
1302 #define PL_COLORBAR_ORIENT_BOTTOM 0x4000
1303 #define PL_COLORBAR_BACKGROUND 0x8000
1304 #define PL_COLORBAR_BOUNDING_BOX 0x10000
1305 
1306 // Flags for drawing mode
1307 #define PL_DRAWMODE_UNKNOWN 0x0
1308 #define PL_DRAWMODE_DEFAULT 0x1
1309 #define PL_DRAWMODE_REPLACE 0x2
1310 #define PL_DRAWMODE_XOR 0x4
1311 
1312 // Routine for drawing discrete line, symbol, or cmap0 legends
1313 PLDLLIMPEXP void
1314 c_pllegend( PLFLT_NC_SCALAR p_legend_width, PLFLT_NC_SCALAR p_legend_height,
1315  PLINT opt, PLINT position, PLFLT x, PLFLT y, PLFLT plot_width,
1316  PLINT bg_color, PLINT bb_color, PLINT bb_style,
1317  PLINT nrow, PLINT ncolumn,
1318  PLINT nlegend, PLINT_VECTOR opt_array,
1319  PLFLT text_offset, PLFLT text_scale, PLFLT text_spacing,
1320  PLFLT text_justification,
1321  PLINT_VECTOR text_colors, PLCHAR_MATRIX text,
1322  PLINT_VECTOR box_colors, PLINT_VECTOR box_patterns,
1323  PLFLT_VECTOR box_scales, PLFLT_VECTOR box_line_widths,
1324  PLINT_VECTOR line_colors, PLINT_VECTOR line_styles,
1325  PLFLT_VECTOR line_widths,
1326  PLINT_VECTOR symbol_colors, PLFLT_VECTOR symbol_scales,
1327  PLINT_VECTOR symbol_numbers, PLCHAR_MATRIX symbols );
1328 
1329 // Routine for drawing continuous colour legends
1330 PLDLLIMPEXP void
1331 c_plcolorbar( PLFLT_NC_SCALAR p_colorbar_width, PLFLT_NC_SCALAR p_colorbar_height,
1332  PLINT opt, PLINT position, PLFLT x, PLFLT y,
1333  PLFLT x_length, PLFLT y_length,
1334  PLINT bg_color, PLINT bb_color, PLINT bb_style,
1335  PLFLT low_cap_color, PLFLT high_cap_color,
1336  PLINT cont_color, PLFLT cont_width,
1337  PLINT n_labels, PLINT_VECTOR label_opts, PLCHAR_MATRIX labels,
1338  PLINT n_axes, PLCHAR_MATRIX axis_opts,
1339  PLFLT_VECTOR ticks, PLINT_VECTOR sub_ticks,
1340  PLINT_VECTOR n_values, PLFLT_MATRIX values );
1341 
1342 // Sets position of the light source
1343 PLDLLIMPEXP void
1344 c_pllightsource( PLFLT x, PLFLT y, PLFLT z );
1345 
1346 // Draws line segments connecting a series of points.
1347 
1348 PLDLLIMPEXP void
1350 
1351 // Draws a line in 3 space.
1352 
1353 PLDLLIMPEXP void
1355 
1356 // Set line style.
1357 
1358 PLDLLIMPEXP void
1359 c_pllsty( PLINT lin );
1360 
1361 // Plot continental outline in world coordinates
1362 
1363 PLDLLIMPEXP void
1365  PLFLT minx, PLFLT maxx, PLFLT miny, PLFLT maxy );
1366 
1367 // Plot map outlines
1368 
1369 PLDLLIMPEXP void
1371  PLFLT minx, PLFLT maxx, PLFLT miny, PLFLT maxy,
1372  PLINT_VECTOR plotentries, PLINT nplotentries );
1373 
1374 // Plot map points
1375 
1376 PLDLLIMPEXP void
1379  PLFLT minx, PLFLT maxx, PLFLT miny, PLFLT maxy,
1380  PLINT_VECTOR plotentries, PLINT nplotentries );
1381 
1382 // Plot map text
1383 
1384 PLDLLIMPEXP void
1387  PLFLT minx, PLFLT maxx, PLFLT miny, PLFLT maxy,
1388  PLINT plotentry );
1389 
1390 // Plot map fills
1391 
1392 PLDLLIMPEXP void
1394  PLCHAR_VECTOR name, PLFLT minx, PLFLT maxx, PLFLT miny, PLFLT maxy,
1395  PLINT_VECTOR plotentries, PLINT nplotentries );
1396 
1397 // Plot the latitudes and longitudes on the background.
1398 
1399 PLDLLIMPEXP void
1401  PLFLT dlong, PLFLT dlat,
1402  PLFLT minlong, PLFLT maxlong, PLFLT minlat, PLFLT maxlat );
1403 
1404 // Plots a mesh representation of the function z[x][y].
1405 
1406 PLDLLIMPEXP void
1408 
1409 // Like plmesh, but uses an evaluator function to access z data from zp
1410 
1411 PLDLLIMPEXP void
1413  PLINT nx, PLINT ny, PLINT opt );
1414 
1415 // Plots a mesh representation of the function z[x][y] with contour
1416 
1417 PLDLLIMPEXP void
1419  PLFLT_VECTOR clevel, PLINT nlevel );
1420 
1421 // Like plmeshc, but uses an evaluator function to access z data from zp
1422 
1423 PLDLLIMPEXP void
1425  PLINT nx, PLINT ny, PLINT opt, PLFLT_VECTOR clevel, PLINT nlevel );
1426 
1427 // Creates a new stream and makes it the default.
1428 
1429 PLDLLIMPEXP void
1430 c_plmkstrm( PLINT_NC_SCALAR p_strm );
1431 
1432 // Prints out "text" at specified position relative to viewport
1433 
1434 PLDLLIMPEXP void
1435 c_plmtex( PLCHAR_VECTOR side, PLFLT disp, PLFLT pos, PLFLT just,
1436  PLCHAR_VECTOR text );
1437 
1438 // Prints out "text" at specified position relative to viewport (3D)
1439 
1440 PLDLLIMPEXP void
1441 c_plmtex3( PLCHAR_VECTOR side, PLFLT disp, PLFLT pos, PLFLT just,
1442  PLCHAR_VECTOR text );
1443 
1444 // Plots a 3-d representation of the function z[x][y].
1445 
1446 PLDLLIMPEXP void
1448  PLINT nx, PLINT ny, PLINT opt, PLBOOL side );
1449 
1450 // Like plot3d, but uses an evaluator function to access z data from zp
1451 
1452 PLDLLIMPEXP void
1454  PLINT nx, PLINT ny, PLINT opt, PLBOOL side );
1455 
1456 // Plots a 3-d representation of the function z[x][y] with contour.
1457 
1458 PLDLLIMPEXP void
1460  PLINT nx, PLINT ny, PLINT opt,
1461  PLFLT_VECTOR clevel, PLINT nlevel );
1462 
1463 // Like plot3dc, but uses an evaluator function to access z data from zp
1464 
1465 PLDLLIMPEXP void
1467  PLINT nx, PLINT ny, PLINT opt, PLFLT_VECTOR clevel, PLINT nlevel );
1468 
1469 // Plots a 3-d representation of the function z[x][y] with contour and
1470 // y index limits.
1471 
1472 PLDLLIMPEXP void
1474  PLINT nx, PLINT ny, PLINT opt,
1475  PLFLT_VECTOR clevel, PLINT nlevel,
1476  PLINT indexxmin, PLINT indexxmax, PLINT_VECTOR indexymin, PLINT_VECTOR indexymax );
1477 
1478 // Like plot3dcl, but uses an evaluator function to access z data from zp
1479 
1480 PLDLLIMPEXP void
1482  PLINT nx, PLINT ny, PLINT opt,
1483  PLFLT_VECTOR clevel, PLINT nlevel,
1484  PLINT indexxmin, PLINT indexxmax, PLINT_VECTOR indexymin, PLINT_VECTOR indexymax );
1485 
1486 //
1487 // definitions for the opt argument in plot3dc() and plsurf3d()
1488 //
1489 // DRAW_LINEX *must* be 1 and DRAW_LINEY *must* be 2, because of legacy code!
1490 //
1491 
1492 #define DRAW_LINEX 0x001 // draw lines parallel to the X axis
1493 #define DRAW_LINEY 0x002 // draw lines parallel to the Y axis
1494 #define DRAW_LINEXY 0x003 // draw lines parallel to both the X and Y axis
1495 #define MAG_COLOR 0x004 // draw the mesh with a color dependent of the magnitude
1496 #define BASE_CONT 0x008 // draw contour plot at bottom xy plane
1497 #define TOP_CONT 0x010 // draw contour plot at top xy plane
1498 #define SURF_CONT 0x020 // draw contour plot at surface
1499 #define DRAW_SIDES 0x040 // draw sides
1500 #define FACETED 0x080 // draw outline for each square that makes up the surface
1501 #define MESH 0x100 // draw mesh
1502 
1503 //
1504 // valid options for plot3dc():
1505 //
1506 // DRAW_SIDES, BASE_CONT, TOP_CONT (not yet),
1507 // MAG_COLOR, DRAW_LINEX, DRAW_LINEY, DRAW_LINEXY.
1508 //
1509 // valid options for plsurf3d():
1510 //
1511 // MAG_COLOR, BASE_CONT, SURF_CONT, FACETED, DRAW_SIDES.
1512 //
1513 
1514 // Set fill pattern directly.
1515 
1516 PLDLLIMPEXP void
1517 c_plpat( PLINT nlin, PLINT_VECTOR inc, PLINT_VECTOR del );
1518 
1519 // Draw a line connecting two points, accounting for coordinate transforms
1520 
1521 PLDLLIMPEXP void
1522 c_plpath( PLINT n, PLFLT x1, PLFLT y1, PLFLT x2, PLFLT y2 );
1523 
1524 // Plots array y against x for n points using ASCII code "code".
1525 
1526 PLDLLIMPEXP void
1527 c_plpoin( PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR y, PLINT code );
1528 
1529 // Draws a series of points in 3 space.
1530 
1531 PLDLLIMPEXP void
1533 
1534 // Draws a polygon in 3 space.
1535 
1536 PLDLLIMPEXP void
1538 
1539 // Set the floating point precision (in number of places) in numeric labels.
1540 
1541 PLDLLIMPEXP void
1542 c_plprec( PLINT setp, PLINT prec );
1543 
1544 // Set fill pattern, using one of the predefined patterns.
1545 
1546 PLDLLIMPEXP void
1547 c_plpsty( PLINT patt );
1548 
1549 // Prints out "text" at world cooordinate (x,y).
1550 
1551 PLDLLIMPEXP void
1552 c_plptex( PLFLT x, PLFLT y, PLFLT dx, PLFLT dy, PLFLT just, PLCHAR_VECTOR text );
1553 
1554 // Prints out "text" at world cooordinate (x,y,z).
1555 
1556 PLDLLIMPEXP void
1557 c_plptex3( PLFLT wx, PLFLT wy, PLFLT wz, PLFLT dx, PLFLT dy, PLFLT dz,
1558  PLFLT sx, PLFLT sy, PLFLT sz, PLFLT just, PLCHAR_VECTOR text );
1559 
1560 // Random number generator based on Mersenne Twister.
1561 // Obtain real random number in range [0,1].
1562 
1564 c_plrandd( void );
1565 
1566 // Replays contents of plot buffer to current device/file.
1567 
1568 PLDLLIMPEXP void
1569 c_plreplot( void );
1570 
1571 // Functions for converting between HLS and RGB color space
1572 
1573 PLDLLIMPEXP void
1575 
1576 // Set character height.
1577 
1578 PLDLLIMPEXP void
1579 c_plschr( PLFLT def, PLFLT scale );
1580 
1581 // Set color map 0 colors by 8 bit RGB values
1582 
1583 PLDLLIMPEXP void
1585 
1586 // Set color map 0 colors by 8 bit RGB values and alpha values
1587 
1588 PLDLLIMPEXP void
1590 
1591 // Set number of colors in cmap 0
1592 
1593 PLDLLIMPEXP void
1594 c_plscmap0n( PLINT ncol0 );
1595 
1596 // Set color map 1 colors by 8 bit RGB values
1597 
1598 PLDLLIMPEXP void
1600 
1601 // Set color map 1 colors by 8 bit RGB and alpha values
1602 
1603 PLDLLIMPEXP void
1605 
1606 // Set color map 1 colors using a piece-wise linear relationship between
1607 // intensity [0,1] (cmap 1 index) and position in HLS or RGB color space.
1608 
1609 PLDLLIMPEXP void
1610 c_plscmap1l( PLBOOL itype, PLINT npts, PLFLT_VECTOR intensity,
1611  PLFLT_VECTOR coord1, PLFLT_VECTOR coord2, PLFLT_VECTOR coord3, PLBOOL_VECTOR alt_hue_path );
1612 
1613 // Set color map 1 colors using a piece-wise linear relationship between
1614 // intensity [0,1] (cmap 1 index) and position in HLS or RGB color space.
1615 // Will also linear interpolate alpha values.
1616 
1617 PLDLLIMPEXP void
1618 c_plscmap1la( PLBOOL itype, PLINT npts, PLFLT_VECTOR intensity,
1619  PLFLT_VECTOR coord1, PLFLT_VECTOR coord2, PLFLT_VECTOR coord3, PLFLT_VECTOR alpha, PLBOOL_VECTOR alt_hue_path );
1620 
1621 // Set number of colors in cmap 1
1622 
1623 PLDLLIMPEXP void
1624 c_plscmap1n( PLINT ncol1 );
1625 
1626 // Set the color map 1 range used in continuous plots
1627 
1628 PLDLLIMPEXP void
1629 c_plscmap1_range( PLFLT min_color, PLFLT max_color );
1630 
1631 // Set a given color from color map 0 by 8 bit RGB value
1632 
1633 PLDLLIMPEXP void
1634 c_plscol0( PLINT icol0, PLINT r, PLINT g, PLINT b );
1635 
1636 // Set a given color from color map 0 by 8 bit RGB value
1637 
1638 PLDLLIMPEXP void
1639 c_plscol0a( PLINT icol0, PLINT r, PLINT g, PLINT b, PLFLT alpha );
1640 
1641 // Set the background color by 8 bit RGB value
1642 
1643 PLDLLIMPEXP void
1644 c_plscolbg( PLINT r, PLINT g, PLINT b );
1645 
1646 // Set the background color by 8 bit RGB value and alpha value
1647 
1648 PLDLLIMPEXP void
1649 c_plscolbga( PLINT r, PLINT g, PLINT b, PLFLT alpha );
1650 
1651 // Used to globally turn color output on/off
1652 
1653 PLDLLIMPEXP void
1655 
1656 // Set the compression level
1657 
1658 PLDLLIMPEXP void
1659 c_plscompression( PLINT compression );
1660 
1661 // Set the device (keyword) name
1662 
1663 PLDLLIMPEXP void
1664 c_plsdev( PLCHAR_VECTOR devname );
1665 
1666 // Set window into device space using margin, aspect ratio, and
1667 // justification
1668 
1669 PLDLLIMPEXP void
1670 c_plsdidev( PLFLT mar, PLFLT aspect, PLFLT jx, PLFLT jy );
1671 
1672 // Set up transformation from metafile coordinates.
1673 
1674 PLDLLIMPEXP void
1675 c_plsdimap( PLINT dimxmin, PLINT dimxmax, PLINT dimymin, PLINT dimymax,
1676  PLFLT dimxpmm, PLFLT dimypmm );
1677 
1678 // Set plot orientation, specifying rotation in units of pi/2.
1679 
1680 PLDLLIMPEXP void
1681 c_plsdiori( PLFLT rot );
1682 
1683 // Set window into plot space
1684 
1685 PLDLLIMPEXP void
1686 c_plsdiplt( PLFLT xmin, PLFLT ymin, PLFLT xmax, PLFLT ymax );
1687 
1688 // Set window into plot space incrementally (zoom)
1689 
1690 PLDLLIMPEXP void
1691 c_plsdiplz( PLFLT xmin, PLFLT ymin, PLFLT xmax, PLFLT ymax );
1692 
1693 // Set the drawing mode
1694 PLDLLIMPEXP void
1695 c_plsdrawmode( PLINT mode );
1696 
1697 // Set seed for internal random number generator
1698 
1699 PLDLLIMPEXP void
1700 c_plseed( unsigned int seed );
1701 
1702 // Set the escape character for text strings.
1703 
1704 PLDLLIMPEXP void
1705 c_plsesc( char esc );
1706 
1707 // Set family file parameters
1708 
1709 PLDLLIMPEXP void
1710 c_plsfam( PLINT fam, PLINT num, PLINT bmax );
1711 
1712 // Set FCI (font characterization integer)
1713 
1714 PLDLLIMPEXP void
1715 c_plsfci( PLUNICODE fci );
1716 
1717 // Set the output file name.
1718 
1719 PLDLLIMPEXP void
1720 c_plsfnam( PLCHAR_VECTOR fnam );
1721 
1722 // Set the current font family, style and weight
1723 
1724 PLDLLIMPEXP void
1725 c_plsfont( PLINT family, PLINT style, PLINT weight );
1726 
1727 // Shade region.
1728 
1729 PLDLLIMPEXP void
1731  PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax,
1732  PLFLT shade_min, PLFLT shade_max,
1733  PLINT sh_cmap, PLFLT sh_color, PLFLT sh_width,
1734  PLINT min_color, PLFLT min_width,
1735  PLINT max_color, PLFLT max_width,
1736  PLFILL_callback fill, PLBOOL rectangular,
1737  PLTRANSFORM_callback pltr, PLPointer pltr_data );
1738 
1739 #ifdef PL_DEPRECATED
1740 PLDLLIMPEXP void
1741 c_plshade1( PLFLT_FE_POINTER a, PLINT nx, PLINT ny, PLDEFINED_callback defined,
1742  PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax,
1743  PLFLT shade_min, PLFLT shade_max,
1744  PLINT sh_cmap, PLFLT sh_color, PLFLT sh_width,
1745  PLINT min_color, PLFLT min_width,
1746  PLINT max_color, PLFLT max_width,
1747  PLFILL_callback fill, PLBOOL rectangular,
1748  PLTRANSFORM_callback pltr, PLPointer pltr_data );
1749 #endif // PL_DEPRECATED
1750 
1751 PLDLLIMPEXP void
1753  PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax,
1754  PLFLT_VECTOR clevel, PLINT nlevel, PLFLT fill_width,
1755  PLINT cont_color, PLFLT cont_width,
1756  PLFILL_callback fill, PLBOOL rectangular,
1757  PLTRANSFORM_callback pltr, PLPointer pltr_data );
1758 
1759 PLDLLIMPEXP void
1760 plfshades( PLF2OPS zops, PLPointer zp, PLINT nx, PLINT ny,
1761  PLDEFINED_callback defined,
1762  PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax,
1763  PLFLT_VECTOR clevel, PLINT nlevel, PLFLT fill_width,
1764  PLINT cont_color, PLFLT cont_width,
1765  PLFILL_callback fill, PLINT rectangular,
1766  PLTRANSFORM_callback pltr, PLPointer pltr_data );
1767 
1768 PLDLLIMPEXP void
1769 plfshade( PLF2EVAL_callback f2eval, PLPointer f2eval_data,
1770  PLF2EVAL_callback c2eval, PLPointer c2eval_data,
1771  PLINT nx, PLINT ny,
1772  PLFLT left, PLFLT right, PLFLT bottom, PLFLT top,
1773  PLFLT shade_min, PLFLT shade_max,
1774  PLINT sh_cmap, PLFLT sh_color, PLFLT sh_width,
1775  PLINT min_color, PLFLT min_width,
1776  PLINT max_color, PLFLT max_width,
1777  PLFILL_callback fill, PLBOOL rectangular,
1778  PLTRANSFORM_callback pltr, PLPointer pltr_data );
1779 
1780 PLDLLIMPEXP void
1781 plfshade1( PLF2OPS zops, PLPointer zp, PLINT nx, PLINT ny,
1782  PLDEFINED_callback defined,
1783  PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax,
1784  PLFLT shade_min, PLFLT shade_max,
1785  PLINT sh_cmap, PLFLT sh_color, PLFLT sh_width,
1786  PLINT min_color, PLFLT min_width,
1787  PLINT max_color, PLFLT max_width,
1788  PLFILL_callback fill, PLINT rectangular,
1789  PLTRANSFORM_callback pltr, PLPointer pltr_data );
1790 
1791 // Setup a user-provided custom labeling function
1792 
1793 PLDLLIMPEXP void
1795 
1796 // Set up lengths of major tick marks.
1797 
1798 PLDLLIMPEXP void
1799 c_plsmaj( PLFLT def, PLFLT scale );
1800 
1801 // Set the RGB memory area to be plotted (with the 'mem' or 'memcairo' drivers)
1802 
1803 PLDLLIMPEXP void
1804 c_plsmem( PLINT maxx, PLINT maxy, PLPointer plotmem );
1805 
1806 // Set the RGBA memory area to be plotted (with the 'memcairo' driver)
1807 
1808 PLDLLIMPEXP void
1809 c_plsmema( PLINT maxx, PLINT maxy, PLPointer plotmem );
1810 
1811 // Set up lengths of minor tick marks.
1812 
1813 PLDLLIMPEXP void
1814 c_plsmin( PLFLT def, PLFLT scale );
1815 
1816 // Set orientation. Must be done before calling plinit.
1817 
1818 PLDLLIMPEXP void
1819 c_plsori( PLINT ori );
1820 
1821 // Set output device parameters. Usually ignored by the driver.
1822 
1823 PLDLLIMPEXP void
1824 c_plspage( PLFLT xp, PLFLT yp, PLINT xleng, PLINT yleng,
1825  PLINT xoff, PLINT yoff );
1826 
1827 // Set the colors for color table 0 from a cmap0 file
1828 
1829 PLDLLIMPEXP void
1830 c_plspal0( PLCHAR_VECTOR filename );
1831 
1832 // Set the colors for color table 1 from a cmap1 file
1833 
1834 PLDLLIMPEXP void
1835 c_plspal1( PLCHAR_VECTOR filename, PLBOOL interpolate );
1836 
1837 // Set the pause (on end-of-page) status
1838 
1839 PLDLLIMPEXP void
1840 c_plspause( PLBOOL pause );
1841 
1842 // Set stream number.
1843 
1844 PLDLLIMPEXP void
1845 c_plsstrm( PLINT strm );
1846 
1847 // Set the number of subwindows in x and y
1848 
1849 PLDLLIMPEXP void
1850 c_plssub( PLINT nx, PLINT ny );
1851 
1852 // Set symbol height.
1853 
1854 PLDLLIMPEXP void
1855 c_plssym( PLFLT def, PLFLT scale );
1856 
1857 // Initialize PLplot, passing in the windows/page settings.
1858 
1859 PLDLLIMPEXP void
1860 c_plstar( PLINT nx, PLINT ny );
1861 
1862 // Initialize PLplot, passing the device name and windows/page settings.
1863 
1864 PLDLLIMPEXP void
1865 c_plstart( PLCHAR_VECTOR devname, PLINT nx, PLINT ny );
1866 
1867 // Set the coordinate transform
1868 
1869 PLDLLIMPEXP void
1870 c_plstransform( PLTRANSFORM_callback coordinate_transform, PLPointer coordinate_transform_data );
1871 
1872 // Prints out the same string repeatedly at the n points in world
1873 // coordinates given by the x and y arrays. Supersedes plpoin and
1874 // plsymbol for the case where text refers to a unicode glyph either
1875 // directly as UTF-8 or indirectly via the standard text escape
1876 // sequences allowed for PLplot input strings.
1877 
1878 PLDLLIMPEXP void
1880 
1881 // Prints out the same string repeatedly at the n points in world
1882 // coordinates given by the x, y, and z arrays. Supersedes plpoin3
1883 // for the case where text refers to a unicode glyph either directly
1884 // as UTF-8 or indirectly via the standard text escape sequences
1885 // allowed for PLplot input strings.
1886 
1887 PLDLLIMPEXP void
1889 
1890 // Add a point to a stripchart.
1891 
1892 PLDLLIMPEXP void
1893 c_plstripa( PLINT id, PLINT pen, PLFLT x, PLFLT y );
1894 
1895 // Create 1d stripchart
1896 
1897 PLDLLIMPEXP void
1899  PLFLT xmin, PLFLT xmax, PLFLT xjump, PLFLT ymin, PLFLT ymax,
1900  PLFLT xlpos, PLFLT ylpos,
1901  PLBOOL y_ascl, PLBOOL acc,
1902  PLINT colbox, PLINT collab,
1903  PLINT_VECTOR colline, PLINT_VECTOR styline, PLCHAR_MATRIX legline,
1904  PLCHAR_VECTOR labx, PLCHAR_VECTOR laby, PLCHAR_VECTOR labtop );
1905 
1906 // Deletes and releases memory used by a stripchart.
1907 
1908 PLDLLIMPEXP void
1909 c_plstripd( PLINT id );
1910 
1911 // plots a 2d image (or a matrix too large for plshade() )
1912 
1913 PLDLLIMPEXP void
1914 c_plimagefr( PLFLT_MATRIX idata, PLINT nx, PLINT ny,
1915  PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax,
1916  PLFLT valuemin, PLFLT valuemax,
1917  PLTRANSFORM_callback pltr, PLPointer pltr_data );
1918 
1919 //
1920 // Like plimagefr, but uses an evaluator function to access image data from
1921 // idatap. getminmax is only used if zmin == zmax.
1922 //
1923 
1924 PLDLLIMPEXP void
1925 plfimagefr( PLF2OPS idataops, PLPointer idatap, PLINT nx, PLINT ny,
1926  PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax,
1927  PLFLT valuemin, PLFLT valuemax,
1928  PLTRANSFORM_callback pltr, PLPointer pltr_data );
1929 
1930 // plots a 2d image (or a matrix too large for plshade() ) - colors
1931 // automatically scaled
1932 
1933 PLDLLIMPEXP void
1934 c_plimage( PLFLT_MATRIX idata, PLINT nx, PLINT ny,
1935  PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax,
1936  PLFLT Dxmin, PLFLT Dxmax, PLFLT Dymin, PLFLT Dymax );
1937 
1938 //
1939 // Like plimage, but uses an operator functions to access image data from
1940 // idatap.
1941 //
1942 
1943 PLDLLIMPEXP void
1944 plfimage( PLF2OPS idataops, PLPointer idatap, PLINT nx, PLINT ny,
1945  PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax,
1946  PLFLT Dxmin, PLFLT Dxmax, PLFLT Dymin, PLFLT Dymax );
1947 
1948 // Set up a new line style
1949 
1950 PLDLLIMPEXP void
1951 c_plstyl( PLINT nms, PLINT_VECTOR mark, PLINT_VECTOR space );
1952 
1953 // Plots the 3d surface representation of the function z[x][y].
1954 
1955 PLDLLIMPEXP void
1957  PLINT opt, PLFLT_VECTOR clevel, PLINT nlevel );
1958 
1959 // Like plsurf3d, but uses an evaluator function to access z data from zp
1960 
1961 PLDLLIMPEXP void
1963  PLINT nx, PLINT ny, PLINT opt, PLFLT_VECTOR clevel, PLINT nlevel );
1964 
1965 // Plots the 3d surface representation of the function z[x][y] with y
1966 // index limits.
1967 
1968 PLDLLIMPEXP void
1970  PLINT opt, PLFLT_VECTOR clevel, PLINT nlevel,
1971  PLINT indexxmin, PLINT indexxmax, PLINT_VECTOR indexymin, PLINT_VECTOR indexymax );
1972 
1973 // Like plsurf3dl, but uses an evaluator function to access z data from zp
1974 
1975 PLDLLIMPEXP void
1977  PLINT opt, PLFLT_VECTOR clevel, PLINT nlevel,
1978  PLINT indexxmin, PLINT indexxmax, PLINT_VECTOR indexymin, PLINT_VECTOR indexymax );
1979 
1980 // Set arrow style for vector plots.
1981 PLDLLIMPEXP void
1982 c_plsvect( PLFLT_VECTOR arrowx, PLFLT_VECTOR arrowy, PLINT npts, PLBOOL fill );
1983 
1984 // Sets the edges of the viewport to the specified absolute coordinates
1985 
1986 PLDLLIMPEXP void
1987 c_plsvpa( PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax );
1988 
1989 // Set x axis labeling parameters
1990 
1991 PLDLLIMPEXP void
1992 c_plsxax( PLINT digmax, PLINT digits );
1993 
1994 // Set inferior X window
1995 
1996 PLDLLIMPEXP void
1997 plsxwin( PLINT window_id );
1998 
1999 // Set y axis labeling parameters
2000 
2001 PLDLLIMPEXP void
2002 c_plsyax( PLINT digmax, PLINT digits );
2003 
2004 // Plots array y against x for n points using Hershey symbol "code"
2005 
2006 PLDLLIMPEXP void
2007 c_plsym( PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR y, PLINT code );
2008 
2009 // Set z axis labeling parameters
2010 
2011 PLDLLIMPEXP void
2012 c_plszax( PLINT digmax, PLINT digits );
2013 
2014 // Switches to text screen.
2015 
2016 PLDLLIMPEXP void
2017 c_pltext( void );
2018 
2019 // Set the format for date / time labels for current stream.
2020 
2021 PLDLLIMPEXP void
2022 c_pltimefmt( PLCHAR_VECTOR fmt );
2023 
2024 // Sets the edges of the viewport with the given aspect ratio, leaving
2025 // room for labels.
2026 
2027 PLDLLIMPEXP void
2028 c_plvasp( PLFLT aspect );
2029 
2030 // Creates the largest viewport of the specified aspect ratio that fits
2031 // within the specified normalized subpage coordinates.
2032 
2033 // simple arrow plotter.
2034 
2035 PLDLLIMPEXP void
2036 c_plvect( PLFLT_MATRIX u, PLFLT_MATRIX v, PLINT nx, PLINT ny, PLFLT scale,
2037  PLTRANSFORM_callback pltr, PLPointer pltr_data );
2038 
2039 //
2040 // Routine to plot a vector array with arbitrary coordinate
2041 // and vector transformations
2042 //
2043 PLDLLIMPEXP void
2045  PLINT nx, PLINT ny, PLFLT scale,
2046  PLTRANSFORM_callback pltr, PLPointer pltr_data );
2047 
2048 PLDLLIMPEXP void
2049 c_plvpas( PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT aspect );
2050 
2051 // Creates a viewport with the specified normalized subpage coordinates.
2052 
2053 PLDLLIMPEXP void
2054 c_plvpor( PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax );
2055 
2056 // Defines a "standard" viewport with seven character heights for
2057 // the left margin and four character heights everywhere else.
2058 
2059 PLDLLIMPEXP void
2060 c_plvsta( void );
2061 
2062 // Set up a window for three-dimensional plotting.
2063 
2064 PLDLLIMPEXP void
2065 c_plw3d( PLFLT basex, PLFLT basey, PLFLT height, PLFLT xmin,
2066  PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin,
2067  PLFLT zmax, PLFLT alt, PLFLT az );
2068 
2069 // Set pen width.
2070 
2071 PLDLLIMPEXP void
2072 c_plwidth( PLFLT width );
2073 
2074 // Set up world coordinates of the viewport boundaries (2d plots).
2075 
2076 PLDLLIMPEXP void
2077 c_plwind( PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax );
2078 
2079 // Set xor mode; mode = 1-enter, 0-leave, status = 0 if not interactive device
2080 
2081 PLDLLIMPEXP void
2082 c_plxormod( PLBOOL mode, PLBOOL_NC_SCALAR status );
2083 
2084 
2085 //--------------------------------------------------------------------------
2086 // Functions for use from C or C++ only
2087 //--------------------------------------------------------------------------
2088 
2089 // Returns a list of file-oriented device names and their menu strings
2090 
2091 PLDLLIMPEXP void
2092 plgFileDevs( PLCHAR_VECTOR **p_menustr, PLCHAR_VECTOR **p_devname, int *p_ndev );
2093 
2094 // Returns a list of all device names and their menu strings
2095 
2096 PLDLLIMPEXP void
2097 plgDevs( PLCHAR_VECTOR **p_menustr, PLCHAR_VECTOR **p_devname, int *p_ndev );
2098 
2099 // Set the function pointer for the keyboard event handler
2100 
2101 PLDLLIMPEXP void
2102 plsKeyEH( void ( *KeyEH )( PLGraphicsIn *, PLPointer, int * ), PLPointer KeyEH_data );
2103 
2104 // Set the function pointer for the (mouse) button event handler
2105 
2106 PLDLLIMPEXP void
2107 plsButtonEH( void ( *ButtonEH )( PLGraphicsIn *, PLPointer, int * ),
2108  PLPointer ButtonEH_data );
2109 
2110 // Sets an optional user bop handler
2111 
2112 PLDLLIMPEXP void
2113 plsbopH( void ( *handler )( PLPointer, int * ), PLPointer handler_data );
2114 
2115 // Sets an optional user eop handler
2116 
2117 PLDLLIMPEXP void
2118 plseopH( void ( *handler )( PLPointer, int * ), PLPointer handler_data );
2119 
2120 // Set the variables to be used for storing error info
2121 
2122 PLDLLIMPEXP void
2124 
2125 // Sets an optional user exit handler.
2126 
2127 PLDLLIMPEXP void
2128 plsexit( int ( *handler )( PLCHAR_VECTOR ) );
2129 
2130 // Sets an optional user abort handler.
2131 
2132 PLDLLIMPEXP void
2133 plsabort( void ( *handler )( PLCHAR_VECTOR ) );
2134 
2135 // Transformation routines
2136 
2137 // Identity transformation.
2138 
2139 PLDLLIMPEXP void
2140 pltr0( PLFLT x, PLFLT y, PLFLT_NC_SCALAR tx, PLFLT_NC_SCALAR ty, PLPointer pltr_data );
2141 
2142 // Does linear interpolation from singly dimensioned coord arrays.
2143 
2144 PLDLLIMPEXP void
2145 pltr1( PLFLT x, PLFLT y, PLFLT_NC_SCALAR tx, PLFLT_NC_SCALAR ty, PLPointer pltr_data );
2146 
2147 // Does linear interpolation from doubly dimensioned coord arrays
2148 // (column dominant, as per normal C 2d arrays).
2149 
2150 PLDLLIMPEXP void
2151 pltr2( PLFLT x, PLFLT y, PLFLT_NC_SCALAR tx, PLFLT_NC_SCALAR ty, PLPointer pltr_data );
2152 
2153 // Just like pltr2() but uses pointer arithmetic to get coordinates from
2154 // 2d grid tables.
2155 
2156 PLDLLIMPEXP void
2157 pltr2p( PLFLT x, PLFLT y, PLFLT_NC_SCALAR tx, PLFLT_NC_SCALAR ty, PLPointer pltr_data );
2158 
2159 // Does linear interpolation from doubly dimensioned coord arrays
2160 // (row dominant, i.e. Fortran ordering).
2161 
2162 PLDLLIMPEXP void
2163 pltr2f( PLFLT x, PLFLT y, PLFLT_NC_SCALAR tx, PLFLT_NC_SCALAR ty, PLPointer pltr_data );
2164 
2165 //
2166 // Returns a pointer to a plf2ops_t stucture with pointers to functions for
2167 // accessing 2-D data referenced as (PLFLT **), such as the C variable z
2168 // declared as...
2169 //
2170 // PLFLT z[nx][ny];
2171 //
2172 
2174 plf2ops_c( void );
2175 
2176 //
2177 // Returns a pointer to a plf2ops_t stucture with pointers to functions for accessing 2-D data
2178 // referenced as (PLfGrid2 *), where the PLfGrid2's "f" is treated as type
2179 // (PLFLT **).
2180 //
2181 
2183 plf2ops_grid_c( void );
2184 
2185 //
2186 // Returns a pointer to a plf2ops_t stucture with pointers to functions for
2187 // accessing 2-D data stored in (PLfGrid2 *), with the PLfGrid2's "f" field
2188 // treated as type (PLFLT *) pointing to 2-D data stored in row-major order.
2189 // In the context of plotting, it might be easier to think of it as "X-major"
2190 // order. In this ordering, values for a single X index are stored in
2191 // consecutive memory locations.
2192 //
2193 
2195 plf2ops_grid_row_major( void );
2196 
2197 //
2198 // Returns a pointer to a plf2ops_t stucture with pointers to functions for
2199 // accessing 2-D data stored in (PLfGrid2 *), with the PLfGrid2's "f" field
2200 // treated as type (PLFLT *) pointing to 2-D data stored in column-major order.
2201 // In the context of plotting, it might be easier to think of it as "Y-major"
2202 // order. In this ordering, values for a single Y index are stored in
2203 // consecutive memory locations.
2204 //
2205 
2207 plf2ops_grid_col_major( void );
2208 
2209 
2210 // Function evaluators (Should these be deprecated in favor of plf2ops?)
2211 
2212 //
2213 // Does a lookup from a 2d function array. plf2eval_data is treated as type
2214 // (PLFLT **) and data for (ix,iy) is returned from...
2215 //
2216 // plf2eval_data[ix][iy];
2217 //
2218 
2220 plf2eval1( PLINT ix, PLINT iy, PLPointer plf2eval_data );
2221 
2222 //
2223 // Does a lookup from a 2d function array. plf2eval_data is treated as type
2224 // (PLfGrid2 *) and data for (ix,iy) is returned from...
2225 //
2226 // plf2eval_data->f[ix][iy];
2227 //
2228 
2230 plf2eval2( PLINT ix, PLINT iy, PLPointer plf2eval_data );
2231 
2232 //
2233 // Does a lookup from a 2d function array. plf2eval_data is treated as type
2234 // (PLfGrid *) and data for (ix,iy) is returned from...
2235 //
2236 // plf2eval_data->f[ix * plf2eval_data->ny + iy];
2237 //
2238 // This is commonly called "row-major order", but in the context of plotting,
2239 // it might be easier to think of it as "X-major order". In this ordering,
2240 // values for a single X index are stored in consecutive memory locations.
2241 // This is also known as C ordering.
2242 //
2243 
2245 plf2eval( PLINT ix, PLINT iy, PLPointer plf2eval_data );
2246 
2247 //
2248 // Does a lookup from a 2d function array. plf2eval_data is treated as type
2249 // (PLfGrid *) and data for (ix,iy) is returned from...
2250 //
2251 // plf2eval_data->f[ix + iy * plf2eval_data->nx];
2252 //
2253 // This is commonly called "column-major order", but in the context of
2254 // plotting, it might be easier to think of it as "Y-major order". In this
2255 // ordering, values for a single Y index are stored in consecutive memory
2256 // locations. This is also known as FORTRAN ordering.
2257 //
2258 
2260 plf2evalr( PLINT ix, PLINT iy, PLPointer plf2eval_data );
2261 
2262 // Command line parsing utilities
2263 
2264 // Clear internal option table info structure.
2265 
2266 PLDLLIMPEXP void
2267 plClearOpts( void );
2268 
2269 // Reset internal option table info structure.
2270 
2271 PLDLLIMPEXP void
2272 plResetOpts( void );
2273 
2274 // Merge user option table into internal info structure.
2275 
2278 
2279 // Set the strings used in usage and syntax messages.
2280 
2281 PLDLLIMPEXP void
2282 plSetUsage( PLCHAR_VECTOR program_string, PLCHAR_VECTOR usage_string );
2283 
2284 // Process input strings, treating them as an option and argument pair.
2285 // The first is for the external API, the second the work routine declared
2286 // here for backward compatibilty.
2287 
2289 c_plsetopt( PLCHAR_VECTOR opt, PLCHAR_VECTOR optarg );
2290 
2291 // Process options list using current options info.
2292 
2294 c_plparseopts( int *p_argc, PLCHAR_NC_MATRIX argv, PLINT mode );
2295 
2296 // Print usage & syntax message.
2297 
2298 PLDLLIMPEXP void
2299 plOptUsage( void );
2300 
2301 // Miscellaneous
2302 
2303 // Set the output file pointer
2304 
2305 PLDLLIMPEXP void
2306 plgfile( FILE **p_file );
2307 
2308 // Get the output file pointer
2309 
2310 PLDLLIMPEXP void
2311 plsfile( FILE *file );
2312 
2313 // Get the escape character for text strings.
2314 
2315 PLDLLIMPEXP void
2316 plgesc( PLCHAR_NC_SCALAR p_esc );
2317 
2318 // Front-end to driver escape function.
2319 
2320 PLDLLIMPEXP void
2321 pl_cmd( PLINT op, PLPointer ptr );
2322 
2323 // Return full pathname for given file if executable
2324 
2327 
2328 // Looks for the specified executable file according to usual search path.
2329 
2332 
2333 // Gets search name for file by concatenating the dir, subdir, and file
2334 // name, allocating memory as needed.
2335 
2336 PLDLLIMPEXP void
2337 plGetName( PLCHAR_VECTOR dir, PLCHAR_VECTOR subdir, PLCHAR_VECTOR filename, PLCHAR_NC_VECTOR *filespec );
2338 
2339 // Prompts human to input an integer in response to given message.
2340 
2342 plGetInt( PLCHAR_VECTOR s );
2343 
2344 // Prompts human to input a float in response to given message.
2345 
2347 plGetFlt( PLCHAR_VECTOR s );
2348 
2349 // C, C++ only. Determine the Iliffe column vector of pointers to PLFLT row
2350 // vectors corresponding to a 2D matrix of PLFLT's that is statically
2351 // allocated.
2352 
2353 PLDLLIMPEXP void
2354 plStatic2dGrid( PLFLT_NC_MATRIX zIliffe, PLFLT_VECTOR zStatic, PLINT nx, PLINT ny );
2355 
2356 // C, C++ only. Allocate a block of memory for use as a 2-d grid of PLFLT's organized
2357 // as an Iliffe column vector of pointers to PLFLT row vectors.
2358 
2359 PLDLLIMPEXP void
2361 
2362 // Frees a block of memory allocated with plAlloc2dGrid().
2363 
2364 PLDLLIMPEXP void
2366 
2367 // Find the maximum and minimum of a 2d matrix allocated with plAllc2dGrid().
2368 
2369 PLDLLIMPEXP void
2371 
2372 // Wait for graphics input event and translate to world coordinates
2373 
2375 plGetCursor( PLGraphicsIn *gin );
2376 
2377 // Translates relative device coordinates to world coordinates.
2378 
2381 
2382 // Set the pointer to the data used in driver initialisation
2383 
2384 // N.B. Currently used only by the wxwidgets device driver and
2385 // associated binding. This function might be used for other device drivers
2386 // later on whether written in c++ or c. But this function is not part of the
2387 // common API and should not be propagated to any binding other than
2388 // c++.
2389 
2390 PLDLLIMPEXP void
2391 plsdevdata( PLPointer data );
2392 
2393 #ifdef __cplusplus
2394 }
2395 #endif
2396 #if 0
2397 #if defined ( __GNUC__ ) && __GNUC__ > 3
2398  #pragma GCC visibility pop
2399 #endif
2400 #endif
2401 
2402 #endif // __PLPLOT_H__
PLDLLIMPEXP void c_plstripc(PLINT_NC_SCALAR id, PLCHAR_VECTOR xspec, PLCHAR_VECTOR yspec, PLFLT xmin, PLFLT xmax, PLFLT xjump, PLFLT ymin, PLFLT ymax, PLFLT xlpos, PLFLT ylpos, PLBOOL y_ascl, PLBOOL acc, PLINT colbox, PLINT collab, PLINT_VECTOR colline, PLINT_VECTOR styline, PLCHAR_MATRIX legline, PLCHAR_VECTOR labx, PLCHAR_VECTOR laby, PLCHAR_VECTOR labtop)
char ** PLCHAR_NC_MATRIX
Definition: plplot.h:251
PLDLLIMPEXP void c_plscmap1a(PLINT_VECTOR r, PLINT_VECTOR g, PLINT_VECTOR b, PLFLT_VECTOR alpha, PLINT ncol1)
Definition: plctrl.c:559
PLDLLIMPEXP void c_plspal1(PLCHAR_VECTOR filename, PLBOOL interpolate)
Definition: plctrl.c:1618
int alt_hue_path
Definition: plplot.h:553
PLDLLIMPEXP void c_plsstrm(PLINT strm)
Definition: plcore.c:2595
PLDLLIMPEXP void c_plsfont(PLINT family, PLINT style, PLINT weight)
Definition: plsym.c:2076
PLDLLIMPEXP void pltr0(PLFLT x, PLFLT y, PLFLT_NC_SCALAR tx, PLFLT_NC_SCALAR ty, PLPointer pltr_data)
PLDLLIMPEXP void c_plerrx(PLINT n, PLFLT_VECTOR xmin, PLFLT_VECTOR xmax, PLFLT_VECTOR y)
Definition: pltick.c:179
static const char * name
Definition: tkMain.c:135
PLDLLIMPEXP void c_plmtex(PLCHAR_VECTOR side, PLFLT disp, PLFLT pos, PLFLT just, PLCHAR_VECTOR text)
Definition: plsym.c:576
alias _N5 PLfGrid
Definition: plplot.d:1307
static char ** argv
Definition: qt.cpp:40
PLDLLIMPEXP void c_plsesc(char esc)
Definition: plcore.c:3864
PLFLT dymi
Definition: plplot.h:456
PLFLT * PLFLT_NC_SCALAR
Definition: plplot.h:237
PLDLLIMPEXP void c_plsvpa(PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax)
Definition: plvpor.c:506
PLDLLIMPEXP void c_plgcompression(PLINT_NC_SCALAR compression)
void(* PLTRANSFORM_callback)(PLFLT x, PLFLT y, PLFLT_NC_SCALAR xp, PLFLT_NC_SCALAR yp, PLPointer data)
Definition: plplot.h:261
PLFLT a
Definition: plplot.h:552
PLDLLIMPEXP void c_plrgbhls(PLFLT r, PLFLT g, PLFLT b, PLFLT_NC_SCALAR p_h, PLFLT_NC_SCALAR p_l, PLFLT_NC_SCALAR p_s)
PLDLLIMPEXP void c_plvect(PLFLT_MATRIX u, PLFLT_MATRIX v, PLINT nx, PLINT ny, PLFLT scale, PLTRANSFORM_callback pltr, PLPointer pltr_data)
Definition: plvect.c:261
PLDLLIMPEXP void c_plsfci(PLUNICODE fci)
Definition: plcore.c:3900
PLDLLIMPEXP PLINT plTranslateCursor(PLGraphicsIn *gin)
Definition: plpage.c:259
PLDLLIMPEXP void pltr2(PLFLT x, PLFLT y, PLFLT_NC_SCALAR tx, PLFLT_NC_SCALAR ty, PLPointer pltr_data)
PLDLLIMPEXP void plResetOpts(void)
Definition: plargs.c:834
PLDLLIMPEXP void c_plconfigtime(PLFLT scale, PLFLT offset1, PLFLT offset2, PLINT ccontrol, PLBOOL ifbtime_offset, PLINT year, PLINT month, PLINT day, PLINT hour, PLINT min, PLFLT sec)
Definition: pltime.c:36
const PLBOOL * PLBOOL_VECTOR
Definition: plplot.h:246
PLDLLIMPEXP void c_plspage(PLFLT xp, PLFLT yp, PLINT xleng, PLINT yleng, PLINT xoff, PLINT yoff)
Definition: plcore.c:3567
unsigned char b
Definition: plplot.h:539
PLDLLIMPEXP void plfshade1(PLF2OPS zops, PLPointer zp, PLINT nx, PLINT ny, PLDEFINED_callback defined, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT shade_min, PLFLT shade_max, PLINT sh_cmap, PLFLT sh_color, PLFLT sh_width, PLINT min_color, PLFLT min_width, PLINT max_color, PLFLT max_width, PLFILL_callback fill, PLINT rectangular, PLTRANSFORM_callback pltr, PLPointer pltr_data)
Definition: plshade.c:447
char * PLCHAR_NC_SCALAR
Definition: plplot.h:236
PLDLLIMPEXP void c_plsdrawmode(PLINT mode)
Definition: plctrl.c:2052
PLDLLIMPEXP void c_plmap(PLMAPFORM_callback mapform, PLCHAR_VECTOR name, PLFLT minx, PLFLT maxx, PLFLT miny, PLFLT maxy)
void(* PLFILL_callback)(PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR y)
Definition: plplot.h:264
PLDLLIMPEXP void c_plsori(PLINT ori)
Definition: plcore.c:3739
alias _N6 PLfGrid2
Definition: plplot.d:1320
PLDLLIMPEXP void plgDevs(PLCHAR_VECTOR **p_menustr, PLCHAR_VECTOR **p_devname, int *p_ndev)
Definition: plcore.c:3516
PLDLLIMPEXP void c_plgra(void)
Definition: plctrl.c:2007
int min(int a, int b)
PLDLLIMPEXP void c_plgriddata(PLFLT_VECTOR x, PLFLT_VECTOR y, PLFLT_VECTOR z, PLINT npts, PLFLT_VECTOR xg, PLINT nptsx, PLFLT_VECTOR yg, PLINT nptsy, PLFLT_NC_MATRIX zg, PLINT type, PLFLT data)
PLDLLIMPEXP void c_plvpor(PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax)
Definition: plvpor.c:342
PLDLLIMPEXP void c_plreplot(void)
Definition: plcore.c:3480
PLDLLIMPEXP void c_plxormod(PLBOOL mode, PLBOOL_NC_SCALAR status)
PLDLLIMPEXP void c_plvasp(PLFLT aspect)
Definition: plvpor.c:454
PLDLLIMPEXP void c_plsmaj(PLFLT def, PLFLT scale)
Definition: plsdef.c:235
void mapform(PLINT n, PLFLT *x, PLFLT *y)
Definition: tclAPI.c:3693
PLDLLIMPEXP void plsxwin(PLINT window_id)
Definition: plcore.c:3952
PLDLLIMPEXP void c_plscolbga(PLINT r, PLINT g, PLINT b, PLFLT alpha)
Definition: plctrl.c:234
PLUINT PLUNICODE
Definition: plplot.h:196
PLDLLIMPEXP void c_plscmap1n(PLINT ncol1)
Definition: plctrl.c:1071
char * PLCHAR_NC_VECTOR
Definition: plplot.h:241
PLDLLIMPEXP PLFLT c_plrandd(void)
Definition: plctrl.c:3085
PLINT nz
Definition: plplot.h:513
PLDLLIMPEXP void c_plgfci(PLUNICODE_NC_SCALAR p_fci)
PLDLLIMPEXP void c_plstripa(PLINT id, PLINT pen, PLFLT x, PLFLT y)
Definition: plstripc.c:221
const PLFLT *const * PLFLT_MATRIX
Definition: plplot.h:257
PLDLLIMPEXP void c_plsyax(PLINT digmax, PLINT digits)
Definition: plcore.c:4035
PLINT * PLINT_NC_SCALAR
Definition: plplot.h:233
int * PLINT_NC_VECTOR
Definition: plplot.h:240
PLDLLIMPEXP void c_plgzax(PLINT_NC_SCALAR p_digmax, PLINT_NC_SCALAR p_digits)
PLDLLIMPEXP PLCHAR_NC_VECTOR plFindCommand(PLCHAR_VECTOR fn)
Definition: plctrl.c:2150
PLCHAR_VECTOR opt
Definition: plplot.h:401
PLDLLIMPEXP void plsexit(int(*handler)(PLCHAR_VECTOR))
Definition: plctrl.c:1991
PLDLLIMPEXP void plfsurf3d(PLFLT_VECTOR x, PLFLT_VECTOR y, PLF2OPS zops, PLPointer zp, PLINT nx, PLINT ny, PLINT opt, PLFLT_VECTOR clevel, PLINT nlevel)
Definition: plot3d.c:334
PLDLLIMPEXP void c_plmeridians(PLMAPFORM_callback mapform, PLFLT dlong, PLFLT dlat, PLFLT minlong, PLFLT maxlong, PLFLT minlat, PLFLT maxlat)
PLDLLIMPEXP void c_plbin(PLINT nbin, PLFLT_VECTOR x, PLFLT_VECTOR y, PLINT opt)
Definition: plhist.c:125
const char * PLCHAR_VECTOR
Definition: plplot.h:247
PLDLLIMPEXP void plfcont(PLF2EVAL_callback f2eval, PLPointer f2eval_data, PLINT nx, PLINT ny, PLINT kx, PLINT lx, PLINT ky, PLINT ly, PLFLT_VECTOR clevel, PLINT nlevel, PLTRANSFORM_callback pltr, PLPointer pltr_data)
Definition: plcont.c:535
PLDLLIMPEXP void c_plcalc_world(PLFLT rx, PLFLT ry, PLFLT_NC_SCALAR wx, PLFLT_NC_SCALAR wy, PLINT_NC_SCALAR window)
PLDLLIMPEXP void c_plmaptex(PLMAPFORM_callback mapform, PLCHAR_VECTOR name, PLFLT dx, PLFLT dy, PLFLT just, PLCHAR_VECTOR text, PLFLT minx, PLFLT maxx, PLFLT miny, PLFLT maxy, PLINT plotentry)
#define PL_MAXKEY
Definition: plplot.h:412
PLDLLIMPEXP void c_plszax(PLINT digmax, PLINT digits)
Definition: plcore.c:4053
PLDLLIMPEXP void c_plsfnam(PLCHAR_VECTOR fnam)
Definition: plcore.c:3804
PLDLLIMPEXP void c_plgfnam(PLCHAR_NC_VECTOR fnam)
Definition: plcore.c:3785
PLDLLIMPEXP void plgFileDevs(PLCHAR_VECTOR **p_menustr, PLCHAR_VECTOR **p_devname, int *p_ndev)
Definition: plcore.c:3504
PLDLLIMPEXP void plfplot3dcl(PLFLT_VECTOR x, PLFLT_VECTOR y, PLF2OPS zops, PLPointer zp, PLINT nx, PLINT ny, PLINT opt, PLFLT_VECTOR clevel, PLINT nlevel, PLINT indexxmin, PLINT indexxmax, PLINT_VECTOR indexymin, PLINT_VECTOR indexymax)
PLDLLIMPEXP void c_pllegend(PLFLT_NC_SCALAR p_legend_width, PLFLT_NC_SCALAR p_legend_height, PLINT opt, PLINT position, PLFLT x, PLFLT y, PLFLT plot_width, PLINT bg_color, PLINT bb_color, PLINT bb_style, PLINT nrow, PLINT ncolumn, PLINT nlegend, PLINT_VECTOR opt_array, PLFLT text_offset, PLFLT text_scale, PLFLT text_spacing, PLFLT text_justification, PLINT_VECTOR text_colors, PLCHAR_MATRIX text, PLINT_VECTOR box_colors, PLINT_VECTOR box_patterns, PLFLT_VECTOR box_scales, PLFLT_VECTOR box_line_widths, PLINT_VECTOR line_colors, PLINT_VECTOR line_styles, PLFLT_VECTOR line_widths, PLINT_VECTOR symbol_colors, PLFLT_VECTOR symbol_scales, PLINT_VECTOR symbol_numbers, PLCHAR_MATRIX symbols)
PLDLLIMPEXP void c_plimagefr(PLFLT_MATRIX idata, PLINT nx, PLINT ny, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax, PLFLT valuemin, PLFLT valuemax, PLTRANSFORM_callback pltr, PLPointer pltr_data)
Definition: plimage.c:238
PLDLLIMPEXP void c_plprec(PLINT setp, PLINT prec)
Definition: plcore.c:3834
PLDLLIMPEXP void plfshades(PLF2OPS zops, PLPointer zp, PLINT nx, PLINT ny, PLDEFINED_callback defined, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT_VECTOR clevel, PLINT nlevel, PLFLT fill_width, PLINT cont_color, PLFLT cont_width, PLFILL_callback fill, PLINT rectangular, PLTRANSFORM_callback pltr, PLPointer pltr_data)
Definition: plshade.c:245
PLDLLIMPEXP void pldid2pc(PLFLT_NC_SCALAR xmin, PLFLT_NC_SCALAR ymin, PLFLT_NC_SCALAR xmax, PLFLT_NC_SCALAR ymax)
PLFLT a
Definition: plplot.h:540
PLDLLIMPEXP void plMinMax2dGrid(PLFLT_MATRIX f, PLINT nx, PLINT ny, PLFLT_NC_SCALAR fmax, PLFLT_NC_SCALAR fmin)
PLDLLIMPEXP void plsButtonEH(void(*ButtonEH)(PLGraphicsIn *, PLPointer, int *), PLPointer ButtonEH_data)
Definition: plcore.c:3699
PLDLLIMPEXP void c_pllab(PLCHAR_VECTOR xlabel, PLCHAR_VECTOR ylabel, PLCHAR_VECTOR tlabel)
Definition: plsym.c:531
const char *const * PLCHAR_MATRIX
Definition: plplot.h:256
PLDLLIMPEXP void pl_cmd(PLINT op, PLPointer ptr)
Definition: plctrl.c:2122
PLDLLIMPEXP void c_plctime(PLINT year, PLINT month, PLINT day, PLINT hour, PLINT min, PLFLT sec, PLFLT_NC_SCALAR ctime)
PLFLT(* PLF2EVAL_callback)(PLINT ix, PLINT iy, PLPointer data)
Definition: plplot.h:263
PLDLLIMPEXP void plsabort(void(*handler)(PLCHAR_VECTOR))
Definition: plctrl.c:1942
PLDLLIMPEXP void c_plsurf3dl(PLFLT_VECTOR x, PLFLT_VECTOR y, PLFLT_MATRIX z, PLINT nx, PLINT ny, PLINT opt, PLFLT_VECTOR clevel, PLINT nlevel, PLINT indexxmin, PLINT indexxmax, PLINT_VECTOR indexymin, PLINT_VECTOR indexymax)
Definition: plot3d.c:389
PLDLLIMPEXP void c_plwidth(PLFLT width)
Definition: plcore.c:3751
PLDLLIMPEXP PLF2OPS plf2ops_grid_row_major(void)
Definition: plf2ops.c:348
PLINT(* PLDEFINED_callback)(PLFLT x, PLFLT y)
Definition: plplot.h:265
PLDLLIMPEXP PLF2OPS plf2ops_grid_col_major(void)
Definition: plf2ops.c:430
void * PLPointer
Definition: plplot.h:204
PLDLLIMPEXP void c_plgstrm(PLINT_NC_SCALAR p_strm)
PLFLT exp_label_disp
Definition: plplot.h:571
PLDLLIMPEXP void c_plgradient(PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR y, PLFLT angle)
Definition: plgradient.c:52
PLDLLIMPEXP void plGetName(PLCHAR_VECTOR dir, PLCHAR_VECTOR subdir, PLCHAR_VECTOR filename, PLCHAR_NC_VECTOR *filespec)
Definition: plctrl.c:2457
PLDLLIMPEXP void plsfile(FILE *file)
Definition: plcore.c:3776
PLDLLIMPEXP void c_plgspa(PLFLT_NC_SCALAR xmin, PLFLT_NC_SCALAR xmax, PLFLT_NC_SCALAR ymin, PLFLT_NC_SCALAR ymax)
PLDLLIMPEXP void c_plfont(PLINT ifont)
Definition: plsym.c:1323
PLDLLIMPEXP void plsdevdata(PLPointer data)
Definition: plcore.c:3818
PLDLLIMPEXP void c_pladv(PLINT page)
Definition: plpage.c:34
PLDLLIMPEXP void plgesc(PLCHAR_NC_SCALAR p_esc)
Definition: plcore.c:3888
PLDLLIMPEXP void c_plfill3(PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR y, PLFLT_VECTOR z)
Definition: plfill.c:202
PLDLLIMPEXP void plfshade(PLF2EVAL_callback f2eval, PLPointer f2eval_data, PLF2EVAL_callback c2eval, 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, PLFLT sh_width, PLINT min_color, PLFLT min_width, PLINT max_color, PLFLT max_width, PLFILL_callback fill, PLBOOL rectangular, PLTRANSFORM_callback pltr, PLPointer pltr_data)
Definition: plshade.c:416
PLINT ny
Definition: plplot.h:525
PLDLLIMPEXP void c_plot3d(PLFLT_VECTOR x, PLFLT_VECTOR y, PLFLT_MATRIX z, PLINT nx, PLINT ny, PLINT opt, PLBOOL side)
Definition: plot3d.c:860
PLDLLIMPEXP void plOptUsage(void)
Definition: plargs.c:1289
PLDLLIMPEXP void plfplot3dc(PLFLT_VECTOR x, PLFLT_VECTOR y, PLF2OPS zops, PLPointer zp, PLINT nx, PLINT ny, PLINT opt, PLFLT_VECTOR clevel, PLINT nlevel)
Definition: plot3d.c:891
alias _N10 PLControlPt
Definition: plplot.d:1388
alias _N2 PLGraphicsIn
Definition: plplot.d:1262
PLDLLIMPEXP void c_plsdiori(PLFLT rot)
Definition: plcore.c:1996
static int color
Definition: ps.c:78
int PLINT
Definition: plplot.h:176
PLFLT_NC_MATRIX f
Definition: plplot.h:495
PLINT PLBOOL
Definition: plplot.h:199
PLDLLIMPEXP void pltr1(PLFLT x, PLFLT y, PLFLT_NC_SCALAR tx, PLFLT_NC_SCALAR ty, PLPointer pltr_data)
PLDLLIMPEXP void c_plgdiori(PLFLT_NC_SCALAR p_rot)
plf2ops_t * PLF2OPS
Definition: plplot.h:611
PLFLT c3
Definition: plplot.h:550
PLDLLIMPEXP void c_pl_setcontlabelparam(PLFLT offset, PLFLT size, PLFLT spacing, PLINT active)
Definition: plcont.c:247
PLINT result
Definition: plplot.h:562
PLDLLIMPEXP void c_plgcol0(PLINT icol0, PLINT_NC_SCALAR r, PLINT_NC_SCALAR g, PLINT_NC_SCALAR b)
PLDLLIMPEXP void c_plscol0(PLINT icol0, PLINT r, PLINT g, PLINT b)
Definition: plctrl.c:282
PLDLLIMPEXP void c_plot3dc(PLFLT_VECTOR x, PLFLT_VECTOR y, PLFLT_MATRIX z, PLINT nx, PLINT ny, PLINT opt, PLFLT_VECTOR clevel, PLINT nlevel)
Definition: plot3d.c:883
PLFLT p
Definition: plplot.h:551
PLDLLIMPEXP void c_plpsty(PLINT patt)
Definition: plsdef.c:327
PLFLT * PLFLT_NC_FE_POINTER
Definition: plplot.h:220
PLDLLIMPEXP void c_plschr(PLFLT def, PLFLT scale)
Definition: plsdef.c:202
PLFLT exp_label_pos
Definition: plplot.h:572
PLDLLIMPEXP void c_plshade(PLFLT_MATRIX a, PLINT nx, PLINT ny, PLDEFINED_callback defined, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT shade_min, PLFLT shade_max, PLINT sh_cmap, PLFLT sh_color, PLFLT sh_width, PLINT min_color, PLFLT min_width, PLINT max_color, PLFLT max_width, PLFILL_callback fill, PLBOOL rectangular, PLTRANSFORM_callback pltr, PLPointer pltr_data)
Definition: plshade.c:352
PLDLLIMPEXP void c_plgcolbga(PLINT_NC_SCALAR r, PLINT_NC_SCALAR g, PLINT_NC_SCALAR b, PLFLT_NC_SCALAR alpha)
PLFLT exp_label_just
Definition: plplot.h:573
unsigned char g
Definition: plplot.h:538
PLFLT wymi
Definition: plplot.h:457
PLDLLIMPEXP PLFLT plf2evalr(PLINT ix, PLINT iy, PLPointer plf2eval_data)
Definition: plcont.c:466
PLDLLIMPEXP void c_plgxax(PLINT_NC_SCALAR p_digmax, PLINT_NC_SCALAR p_digits)
PLDLLIMPEXP void plFree2dGrid(PLFLT_NC_MATRIX f, PLINT nx, PLINT ny)
PLDLLIMPEXP void c_plmtex3(PLCHAR_VECTOR side, PLFLT disp, PLFLT pos, PLFLT just, PLCHAR_VECTOR text)
Definition: plsym.c:1592
PLDLLIMPEXP void plsError(PLINT_NC_SCALAR errcode, PLCHAR_NC_VECTOR errmsg)
PLDLLIMPEXP void c_pltext(void)
Switches to text screen.
Definition: plctrl.c:2104
PLDLLIMPEXP void plfsurf3dl(PLFLT_VECTOR x, PLFLT_VECTOR y, PLF2OPS zops, PLPointer zp, PLINT nx, PLINT ny, PLINT opt, PLFLT_VECTOR clevel, PLINT nlevel, PLINT indexxmin, PLINT indexxmax, PLINT_VECTOR indexymin, PLINT_VECTOR indexymax)
Definition: plot3d.c:398
PLDLLIMPEXP void c_plenv0(PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLINT just, PLINT axis)
Definition: plvpor.c:103
PLDLLIMPEXP void c_plbox3(PLCHAR_VECTOR xopt, PLCHAR_VECTOR xlabel, PLFLT xtick, PLINT nxsub, PLCHAR_VECTOR yopt, PLCHAR_VECTOR ylabel, PLFLT ytick, PLINT nysub, PLCHAR_VECTOR zopt, PLCHAR_VECTOR zlabel, PLFLT ztick, PLINT nzsub)
Definition: plbox.c:593
PLDLLIMPEXP void c_plgdiplt(PLFLT_NC_SCALAR p_xmin, PLFLT_NC_SCALAR p_ymin, PLFLT_NC_SCALAR p_xmax, PLFLT_NC_SCALAR p_ymax)
alias _N4 PLDisplay
Definition: plplot.d:1290
int type
Definition: plplot.h:439
PLINT ny
Definition: plplot.h:496
PLDLLIMPEXP void c_plptex3(PLFLT wx, PLFLT wy, PLFLT wz, PLFLT dx, PLFLT dy, PLFLT dz, PLFLT sx, PLFLT sy, PLFLT sz, PLFLT just, PLCHAR_VECTOR text)
Definition: plsym.c:1964
PLDLLIMPEXP void pltr2f(PLFLT x, PLFLT y, PLFLT_NC_SCALAR tx, PLFLT_NC_SCALAR ty, PLPointer pltr_data)
PLDLLIMPEXP void c_plaxes(PLFLT x0, PLFLT y0, PLCHAR_VECTOR xopt, PLFLT xtick, PLINT nxsub, PLCHAR_VECTOR yopt, PLFLT ytick, PLINT nysub)
Definition: plbox.c:135
PLPointer PL_NC_GENERIC_POINTER
Definition: plplot.h:212
PLDLLIMPEXP void c_plpath(PLINT n, PLFLT x1, PLFLT y1, PLFLT x2, PLFLT y2)
Definition: plline.c:94
PLDLLIMPEXP void c_plfill(PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR y)
Definition: plfill.c:132
PLDLLIMPEXP void c_plfamadv(void)
Definition: plcore.c:3995
PLDLLIMPEXP void c_plmapstring(PLMAPFORM_callback mapform, PLCHAR_VECTOR name, PLCHAR_VECTOR string, PLFLT minx, PLFLT maxx, PLFLT miny, PLFLT maxy, PLINT_VECTOR plotentries, PLINT nplotentries)
PLDLLIMPEXP void plfplot3d(PLFLT_VECTOR x, PLFLT_VECTOR y, PLF2OPS zops, PLPointer zp, PLINT nx, PLINT ny, PLINT opt, PLBOOL side)
Definition: plot3d.c:867
PLDLLIMPEXP void c_plscmap1(PLINT_VECTOR r, PLINT_VECTOR g, PLINT_VECTOR b, PLINT ncol1)
Definition: plctrl.c:518
PLDLLIMPEXP void c_plend(void)
Definition: plcore.c:2458
PLDLLIMPEXP void c_plstyl(PLINT nms, PLINT_VECTOR mark, PLINT_VECTOR space)
Definition: plline.c:404
PLCHAR_VECTOR syntax
Definition: plplot.h:406
PLDLLIMPEXP void c_plseed(unsigned int seed)
Definition: plctrl.c:3072
PLDLLIMPEXP void c_plscolor(PLINT color)
Definition: plctrl.c:1206
PLFLT_NC_FE_POINTER zg
Definition: plplot.h:512
PLDLLIMPEXP void c_plscol0a(PLINT icol0, PLINT r, PLINT g, PLINT b, PLFLT alpha)
Definition: plctrl.c:318
PLUNICODE * PLUNICODE_NC_SCALAR
Definition: plplot.h:235
PLFLT c1
Definition: plplot.h:548
PLDLLIMPEXP void c_plfontld(PLINT fnt)
Definition: plcore.c:3462
PLDLLIMPEXP void c_plssym(PLFLT def, PLFLT scale)
Definition: plsdef.c:250
PLDLLIMPEXP void c_plsmema(PLINT maxx, PLINT maxy, PLPointer plotmem)
Definition: plcore.c:3657
PLDLLIMPEXP PLINT c_plsetopt(PLCHAR_VECTOR opt, PLCHAR_VECTOR optarg)
Definition: plargs.c:740
PLDLLIMPEXP PLINT c_plgdrawmode(void)
Definition: plctrl.c:2075
PLDLLIMPEXP void c_plmkstrm(PLINT_NC_SCALAR p_strm)
PLDLLIMPEXP void c_plcol0(PLINT icol0)
Definition: plctrl.c:141
PLDLLIMPEXP void plfgriddata(PLFLT_VECTOR x, PLFLT_VECTOR y, PLFLT_VECTOR z, PLINT npts, PLFLT_VECTOR xg, PLINT nptsx, PLFLT_VECTOR yg, PLINT nptsy, PLF2OPS zops, PLPointer zgp, PLINT type, PLFLT data)
Definition: plgridd.c:124
PLDLLIMPEXP void c_plwind(PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax)
Definition: plwind.c:33
alias _N11 PLBufferingCB
Definition: plplot.d:1398
PLDLLIMPEXP void c_plenv(PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLINT just, PLINT axis)
Definition: plvpor.c:89
size_t size
Definition: plplot.h:618
PLDLLIMPEXP void plStatic2dGrid(PLFLT_NC_MATRIX zIliffe, PLFLT_VECTOR zStatic, PLINT nx, PLINT ny)
Definition: plmem.c:61
PLDLLIMPEXP void c_plsdev(PLCHAR_VECTOR devname)
Definition: plcore.c:3614
const PLINT * PLINT_VECTOR
Definition: plplot.h:245
PLCHAR_VECTOR name
Definition: plplot.h:541
PLDLLIMPEXP void c_plw3d(PLFLT basex, PLFLT basey, PLFLT height, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax, PLFLT alt, PLFLT az)
Definition: plwind.c:137
PLDLLIMPEXP void c_plsdiplt(PLFLT xmin, PLFLT ymin, PLFLT xmax, PLFLT ymax)
Definition: plcore.c:1756
unsigned int keysym
Definition: plplot.h:441
PLDLLIMPEXP void c_plvpas(PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT aspect)
Definition: plvpor.c:384
PLCHAR_VECTOR desc
Definition: plplot.h:407
PLDLLIMPEXP void c_plpoin(PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR y, PLINT code)
Definition: plsym.c:162
PLDLLIMPEXP void c_plclear(void)
Definition: plpage.c:71
PLPointer var
Definition: plplot.h:404
PLDLLIMPEXP void c_plline3(PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR y, PLFLT_VECTOR z)
Definition: plline.c:131
PLDLLIMPEXP void c_plcpstrm(PLINT iplsr, PLBOOL flags)
Definition: plcore.c:2735
PLDLLIMPEXP PLINT plFindName(PLCHAR_NC_VECTOR p)
Definition: plctrl.c:2436
PLDLLIMPEXP void c_plssub(PLINT nx, PLINT ny)
Definition: plcore.c:3591
PLDLLIMPEXP PLF2OPS plf2ops_grid_c(void)
Definition: plf2ops.c:233
PLDLLIMPEXP void plsbopH(void(*handler)(PLPointer, int *), PLPointer handler_data)
Definition: plcore.c:3709
PLDLLIMPEXP void c_plmapfill(PLMAPFORM_callback mapform, PLCHAR_VECTOR name, PLFLT minx, PLFLT maxx, PLFLT miny, PLFLT maxy, PLINT_VECTOR plotentries, PLINT nplotentries)
PLDLLIMPEXP void c_pleop(void)
Definition: plpage.c:101
PLDLLIMPEXP void c_plgcmap1_range(PLFLT_NC_SCALAR min_color, PLFLT_NC_SCALAR max_color)
PLINT nz
Definition: plplot.h:485
PLDLLIMPEXP void c_plstring(PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR y, PLCHAR_VECTOR string)
Definition: plsym.c:98
PLDLLIMPEXP void c_plmeshc(PLFLT_VECTOR x, PLFLT_VECTOR y, PLFLT_MATRIX z, PLINT nx, PLINT ny, PLINT opt, PLFLT_VECTOR clevel, PLINT nlevel)
Definition: plot3d.c:150
PLDLLIMPEXP void plfmeshc(PLFLT_VECTOR x, PLFLT_VECTOR y, PLF2OPS zops, PLPointer zp, PLINT nx, PLINT ny, PLINT opt, PLFLT_VECTOR clevel, PLINT nlevel)
Definition: plot3d.c:157
PLDLLIMPEXP void c_plinit(void)
Definition: plcore.c:2299
const PLFLT * PLFLT_FE_POINTER
Definition: plplot.h:222
void(* PLMAPFORM_callback)(PLINT n, PLFLT_NC_VECTOR x, PLFLT_NC_VECTOR y)
Definition: plplot.h:260
PLDLLIMPEXP void c_plgver(PLCHAR_NC_VECTOR p_ver)
Definition: plcore.c:3944
alias _N9 PLColor
Definition: plplot.d:1375
PLDLLIMPEXP void c_plptex(PLFLT x, PLFLT y, PLFLT dx, PLFLT dy, PLFLT just, PLCHAR_VECTOR text)
Definition: plsym.c:716
PLDLLIMPEXP void plClearOpts(void)
Definition: plargs.c:821
static PLFLT value(double n1, double n2, double hue)
Definition: plctrl.c:1223
static PLOptionTable options[]
Definition: tclMain.c:108
PLDLLIMPEXP void c_plgcolbg(PLINT_NC_SCALAR r, PLINT_NC_SCALAR g, PLINT_NC_SCALAR b)
PLDLLIMPEXP PLINT plGetInt(PLCHAR_VECTOR s)
Definition: plctrl.c:2914
PLINT subwindow
Definition: plplot.h:443
PLDLLIMPEXP void c_plcont(PLFLT_MATRIX f, PLINT nx, PLINT ny, PLINT kx, PLINT lx, PLINT ky, PLINT ly, PLFLT_VECTOR clevel, PLINT nlevel, PLTRANSFORM_callback pltr, PLPointer pltr_data)
Definition: plcont.c:508
static int text
Definition: ps.c:77
PLDLLIMPEXP void c_plgyax(PLINT_NC_SCALAR p_digmax, PLINT_NC_SCALAR p_digits)
PLDLLIMPEXP void c_plstripd(PLINT id)
Definition: plstripc.c:327
PLDLLIMPEXP void c_plsmin(PLFLT def, PLFLT scale)
Definition: plsdef.c:220
PLDLLIMPEXP void c_plpoin3(PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR y, PLFLT_VECTOR z, PLINT code)
Definition: plsym.c:225
PLDLLIMPEXP void c_plsdidev(PLFLT mar, PLFLT aspect, PLFLT jx, PLFLT jy)
Definition: plcore.c:1866
PLDLLIMPEXP void pldip2dc(PLFLT_NC_SCALAR xmin, PLFLT_NC_SCALAR ymin, PLFLT_NC_SCALAR xmax, PLFLT_NC_SCALAR ymax)
PLPointer PL_GENERIC_POINTER
Definition: plplot.h:213
PLDLLIMPEXP void plfimage(PLF2OPS idataops, PLPointer idatap, PLINT nx, PLINT ny, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax, PLFLT Dxmin, PLFLT Dxmax, PLFLT Dymin, PLFLT Dymax)
Definition: plimage.c:385
PLDLLIMPEXP void c_plsym(PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR y, PLINT code)
Definition: plsym.c:118
PLBOOL * PLBOOL_NC_SCALAR
Definition: plplot.h:234
PLDLLIMPEXP void plfvect(PLF2EVAL_callback getuv, PLPointer up, PLPointer vp, PLINT nx, PLINT ny, PLFLT scale, PLTRANSFORM_callback pltr, PLPointer pltr_data)
Definition: plvect.c:147
PLDLLIMPEXP void c_plstring3(PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR y, PLFLT_VECTOR z, PLCHAR_VECTOR string)
Definition: plsym.c:301
float PLFLT
Definition: plplot.h:158
PLDLLIMPEXP PLF2OPS plf2ops_c(void)
Definition: plf2ops.c:126
PLDLLIMPEXP void c_plerry(PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR ymin, PLFLT_VECTOR ymax)
Definition: pltick.c:200
PLDLLIMPEXP void c_plscompression(PLINT compression)
Definition: plcore.c:4244
PLDLLIMPEXP void c_plsxax(PLINT digmax, PLINT digits)
Definition: plcore.c:4017
void(* PLLABEL_FUNC_callback)(PLINT axis, PLFLT value, PLCHAR_NC_VECTOR label, PLINT length, PLPointer data)
Definition: plplot.h:262
PLFLT_NC_MATRIX zg
Definition: plplot.h:524
PLDLLIMPEXP void c_plstransform(PLTRANSFORM_callback coordinate_transform, PLPointer coordinate_transform_data)
Definition: plcore.c:4447
PLDLLIMPEXP void c_plhlsrgb(PLFLT h, PLFLT l, PLFLT s, PLFLT_NC_SCALAR p_r, PLFLT_NC_SCALAR p_g, PLFLT_NC_SCALAR p_b)
PLDLLIMPEXP void c_plgdev(PLCHAR_NC_VECTOR p_dev)
Definition: plcore.c:3632
PLDLLIMPEXP void c_plsdimap(PLINT dimxmin, PLINT dimxmax, PLINT dimymin, PLINT dimymax, PLFLT dimxpmm, PLFLT dimypmm)
Definition: plcore.c:2134
PLDLLIMPEXP void c_plsurf3d(PLFLT_VECTOR x, PLFLT_VECTOR y, PLFLT_MATRIX z, PLINT nx, PLINT ny, PLINT opt, PLFLT_VECTOR clevel, PLINT nlevel)
Definition: plot3d.c:326
PLDLLIMPEXP void plAlloc2dGrid(PLFLT_NC_MATRIX *f, PLINT nx, PLINT ny)
PLDLLIMPEXP PLFLT plGetFlt(PLCHAR_VECTOR s)
Definition: plctrl.c:2949
PLDLLIMPEXP PLFLT plf2eval(PLINT ix, PLINT iy, PLPointer plf2eval_data)
Definition: plcont.c:447
PLDLLIMPEXP void c_plslabelfunc(PLLABEL_FUNC_callback label_func, PLPointer label_data)
Definition: plbox.c:2645
PLDLLIMPEXP void c_plscmap0a(PLINT_VECTOR r, PLINT_VECTOR g, PLINT_VECTOR b, PLFLT_VECTOR alpha, PLINT ncol0)
Definition: plctrl.c:476
PLDLLIMPEXP void plfimagefr(PLF2OPS idataops, PLPointer idatap, PLINT nx, PLINT ny, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax, PLFLT valuemin, PLFLT valuemax, PLTRANSFORM_callback pltr, PLPointer pltr_data)
Definition: plimage.c:249
PLDLLIMPEXP void plsKeyEH(void(*KeyEH)(PLGraphicsIn *, PLPointer, int *), PLPointer KeyEH_data)
Definition: plcore.c:3689
PLDLLIMPEXP void c_plspal0(PLCHAR_VECTOR filename)
Definition: plctrl.c:1562
PLDLLIMPEXP void c_pltimefmt(PLCHAR_VECTOR fmt)
Definition: pltime.c:66
PLDLLIMPEXP void c_plglevel(PLINT_NC_SCALAR p_level)
PLDLLIMPEXP void c_pllightsource(PLFLT x, PLFLT y, PLFLT z)
Definition: plot3d.c:101
PLDLLIMPEXP void c_plpat(PLINT nlin, PLINT_VECTOR inc, PLINT_VECTOR del)
Definition: plsdef.c:293
unsigned int state
Definition: plplot.h:440
PLFLT ** PLFLT_NC_MATRIX
Definition: plplot.h:252
PLDLLIMPEXP void c_plarc(PLFLT x, PLFLT y, PLFLT a, PLFLT b, PLFLT angle1, PLFLT angle2, PLFLT rotate, PLBOOL fill)
Definition: plarc.c:141
PLDLLIMPEXP void c_plshades(PLFLT_MATRIX a, PLINT nx, PLINT ny, PLDEFINED_callback defined, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT_VECTOR clevel, PLINT nlevel, PLFLT fill_width, PLINT cont_color, PLFLT cont_width, PLFILL_callback fill, PLBOOL rectangular, PLTRANSFORM_callback pltr, PLPointer pltr_data)
Definition: plshade.c:216
PLDLLIMPEXP PLINT c_plparseopts(int *p_argc, PLCHAR_NC_MATRIX argv, PLINT mode)
Definition: plargs.c:856
unsigned char r
Definition: plplot.h:537
PLDLLIMPEXP void c_plscolbg(PLINT r, PLINT g, PLINT b)
Definition: plctrl.c:215
PLDLLIMPEXP void pltr2p(PLFLT x, PLFLT y, PLFLT_NC_SCALAR tx, PLFLT_NC_SCALAR ty, PLPointer pltr_data)
alias _N3 PLWindow
Definition: plplot.d:1278
PLPointer client_data
Definition: plplot.h:403
PLDLLIMPEXP void c_plpoly3(PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR y, PLFLT_VECTOR z, PLBOOL_VECTOR draw, PLBOOL ifcc)
Definition: plline.c:266
PLDLLIMPEXP void c_plgchr(PLFLT_NC_SCALAR p_def, PLFLT_NC_SCALAR p_ht)
PLDLLIMPEXP void c_plgfam(PLINT_NC_SCALAR p_fam, PLINT_NC_SCALAR p_num, PLINT_NC_SCALAR p_bmax)
PLDLLIMPEXP void c_plvsta(void)
Definition: plvpor.c:307
PLDLLIMPEXP void c_plscmap0(PLINT_VECTOR r, PLINT_VECTOR g, PLINT_VECTOR b, PLINT ncol0)
Definition: plctrl.c:434
PLDLLIMPEXP PLFLT plf2eval1(PLINT ix, PLINT iy, PLPointer plf2eval_data)
Definition: plcont.c:410
PLDLLIMPEXP void c_plflush(void)
Definition: plcore.c:2204
PLDLLIMPEXP void c_plscmap1l(PLBOOL itype, PLINT npts, PLFLT_VECTOR intensity, PLFLT_VECTOR coord1, PLFLT_VECTOR coord2, PLFLT_VECTOR coord3, PLBOOL_VECTOR alt_hue_path)
PLINT cmd
Definition: plplot.h:561
PLDLLIMPEXP PLINT plMergeOpts(PLOptionTable *options, PLCHAR_VECTOR name, PLCHAR_VECTOR *notes)
Definition: plargs.c:774
unsigned int button
Definition: plplot.h:442
unsigned int PLUINT
Definition: plplot.h:175
PLDLLIMPEXP void c_plmesh(PLFLT_VECTOR x, PLFLT_VECTOR y, PLFLT_MATRIX z, PLINT nx, PLINT ny, PLINT opt)
Definition: plot3d.c:118
static char errmsg[160]
Definition: tclAPI.c:158
PLDLLIMPEXP PLFLT plf2eval2(PLINT ix, PLINT iy, PLPointer plf2eval_data)
Definition: plcont.c:428
PLDLLIMPEXP void c_plscmap1la(PLBOOL itype, PLINT npts, PLFLT_VECTOR intensity, PLFLT_VECTOR coord1, PLFLT_VECTOR coord2, PLFLT_VECTOR coord3, PLFLT_VECTOR alpha, PLBOOL_VECTOR alt_hue_path)
PLDLLIMPEXP void c_plstar(PLINT nx, PLINT ny)
Definition: plcore.c:2260
PLDLLIMPEXP void c_plstart(PLCHAR_VECTOR devname, PLINT nx, PLINT ny)
Definition: plcore.c:2279
#define PLDLLIMPEXP
Definition: pldll.h:49
alias _N1 PLOptionTable
Definition: plplot.d:1242
PLDLLIMPEXP void c_plmapline(PLMAPFORM_callback mapform, PLCHAR_VECTOR name, PLFLT minx, PLFLT maxx, PLFLT miny, PLFLT maxy, PLINT_VECTOR plotentries, PLINT nplotentries)
PLDLLIMPEXP void c_plline(PLINT n, PLFLT_VECTOR x, PLFLT_VECTOR y)
Definition: plline.c:75
PLFLT dY
Definition: plplot.h:446
PLDLLIMPEXP void c_plcol1(PLFLT col1)
Definition: plctrl.c:175
PLDLLIMPEXP void c_pllsty(PLINT lin)
Definition: plsdef.c:268
PLDLLIMPEXP void c_plsdiplz(PLFLT xmin, PLFLT ymin, PLFLT xmax, PLFLT ymax)
Definition: plcore.c:1780
PLDLLIMPEXP void c_pljoin(PLFLT x1, PLFLT y1, PLFLT x2, PLFLT y2)
Definition: plline.c:62
PLPointer buffer
Definition: plplot.h:619
PLFLT c2
Definition: plplot.h:549
PLDLLIMPEXP void c_plgvpd(PLFLT_NC_SCALAR p_xmin, PLFLT_NC_SCALAR p_xmax, PLFLT_NC_SCALAR p_ymin, PLFLT_NC_SCALAR p_ymax)
PLDLLIMPEXP void c_plgdidev(PLFLT_NC_SCALAR p_mar, PLFLT_NC_SCALAR p_aspect, PLFLT_NC_SCALAR p_jx, PLFLT_NC_SCALAR p_jy)
PLDLLIMPEXP void c_pl_setcontlabelformat(PLINT lexp, PLINT sigdig)
Definition: plcont.c:256
PLDLLIMPEXP void plgfile(FILE **p_file)
Definition: plcore.c:3768
PLDLLIMPEXP void c_plscmap0n(PLINT ncol0)
Definition: plctrl.c:946
PLDLLIMPEXP void c_plsvect(PLFLT_VECTOR arrowx, PLFLT_VECTOR arrowy, PLINT npts, PLBOOL fill)
Definition: plvect.c:49
__int64 PLINT64
Definition: plplot.h:177
PLDLLIMPEXP void c_plgpage(PLFLT_NC_SCALAR p_xp, PLFLT_NC_SCALAR p_yp, PLINT_NC_SCALAR p_xleng, PLINT_NC_SCALAR p_yleng, PLINT_NC_SCALAR p_xoff, PLINT_NC_SCALAR p_yoff)
PLDLLIMPEXP void c_plot3dcl(PLFLT_VECTOR x, PLFLT_VECTOR y, PLFLT_MATRIX z, PLINT nx, PLINT ny, PLINT opt, PLFLT_VECTOR clevel, PLINT nlevel, PLINT indexxmin, PLINT indexxmax, PLINT_VECTOR indexymin, PLINT_VECTOR indexymax)
Definition: plot3d.c:921
const PLFLT * PLFLT_VECTOR
Definition: plplot.h:248
PLDLLIMPEXP void c_plbox(PLCHAR_VECTOR xopt, PLFLT xtick, PLINT nxsub, PLCHAR_VECTOR yopt, PLFLT ytick, PLINT nysub)
Definition: plbox.c:89
PLDLLIMPEXP void c_plbop(void)
Definition: plpage.c:118
PLDLLIMPEXP void c_plend1(void)
Definition: plcore.c:2516
PLDLLIMPEXP void plSetUsage(PLCHAR_VECTOR program_string, PLCHAR_VECTOR usage_string)
Definition: plargs.c:1272
PLDLLIMPEXP PLINT plGetCursor(PLGraphicsIn *gin)
Definition: plpage.c:244
unsigned int width
Definition: plplot.h:466
PLDLLIMPEXP void plseopH(void(*handler)(PLPointer, int *), PLPointer handler_data)
Definition: plcore.c:3718
long mode
Definition: plplot.h:405
PLDLLIMPEXP void c_plspause(PLBOOL pause)
Definition: plcore.c:3826
PLFLT * PLFLT_NC_VECTOR
Definition: plplot.h:242
unsigned int y
Definition: plplot.h:465
PLDLLIMPEXP void c_plscmap1_range(PLFLT min_color, PLFLT max_color)
Definition: plctrl.c:899
PLFLT wY
Definition: plplot.h:447
void(* label_func)(PLINT, PLFLT, char *, PLINT, PLPointer)
PLFLT_FE_POINTER f
Definition: plplot.h:484
PLDLLIMPEXP void c_plcolorbar(PLFLT_NC_SCALAR p_colorbar_width, PLFLT_NC_SCALAR p_colorbar_height, PLINT opt, PLINT position, PLFLT x, PLFLT y, PLFLT x_length, PLFLT y_length, PLINT bg_color, PLINT bb_color, PLINT bb_style, PLFLT low_cap_color, PLFLT high_cap_color, PLINT cont_color, PLFLT cont_width, PLINT n_labels, PLINT_VECTOR label_opts, PLCHAR_MATRIX labels, PLINT n_axes, PLCHAR_MATRIX axis_opts, PLFLT_VECTOR ticks, PLINT_VECTOR sub_ticks, PLINT_VECTOR n_values, PLFLT_MATRIX values)
PLDLLIMPEXP void c_plgvpw(PLFLT_NC_SCALAR p_xmin, PLFLT_NC_SCALAR p_xmax, PLFLT_NC_SCALAR p_ymin, PLFLT_NC_SCALAR p_ymax)
PLDLLIMPEXP void c_plsfam(PLINT fam, PLINT num, PLINT bmax)
Definition: plcore.c:3979
PLDLLIMPEXP_CXX void fill(PLINT n, const PLFLT *x, const PLFLT *y)
Definition: plstream.cc:246
PLDLLIMPEXP void plfmesh(PLFLT_VECTOR x, PLFLT_VECTOR y, PLF2OPS zops, PLPointer zp, PLINT nx, PLINT ny, PLINT opt)
Definition: plot3d.c:124
PLDLLIMPEXP void c_plbtime(PLINT_NC_SCALAR year, PLINT_NC_SCALAR month, PLINT_NC_SCALAR day, PLINT_NC_SCALAR hour, PLINT_NC_SCALAR min, PLFLT_NC_SCALAR sec, PLFLT ctime)
PLDLLIMPEXP void c_plhist(PLINT n, PLFLT_VECTOR data, PLFLT datmin, PLFLT datmax, PLINT nbin, PLINT opt)
Definition: plhist.c:41
PLDLLIMPEXP void c_plsmem(PLINT maxx, PLINT maxy, PLPointer plotmem)
Definition: plcore.c:3647
PLDLLIMPEXP void c_plimage(PLFLT_MATRIX idata, PLINT nx, PLINT ny, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax, PLFLT Dxmin, PLFLT Dxmax, PLFLT Dymin, PLFLT Dymax)
Definition: plimage.c:375
PLDLLIMPEXP void c_plgcol0a(PLINT icol0, PLINT_NC_SCALAR r, PLINT_NC_SCALAR g, PLINT_NC_SCALAR b, PLFLT_NC_SCALAR alpha)
PLDLLIMPEXP void c_plgfont(PLINT_NC_SCALAR p_family, PLINT_NC_SCALAR p_style, PLINT_NC_SCALAR p_weight)