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