Math-Pari

 view release on metacpan or  search on metacpan

patches/diff_add_gnuplotAdd  view on Meta::CPAN

+  gradient_struct *gradient;
+
+  /* the used color model: RGB, HSV, XYZ, etc. */
+  int cmodel;  
+  
+  /* Three mapping function for gray->RGB/HSV/XYZ/etc. mapping
+   * used if colorMode == SMPAL_COLOR_MODE_FUNCTIONS */
+  struct udft_entry Afunc;  /* R for RGB, H for HSV, C for CMY, ... */
+  struct udft_entry Bfunc;  /* G for RGB, S for HSV, M for CMY, ... */
+  struct udft_entry Cfunc;  /* B for RGB, V for HSV, Y for CMY, ... */
+
+  /* gamma for gray scale palettes only */
+  double gamma;
+} t_sm_palette;
+
+/* a point (with integer coordinates) for use in polygon drawing */
+typedef struct {
+    unsigned int x, y;
+#ifdef EXTENDED_COLOR_SPECS
+    double z;
+    colorspec_t spec;
+#endif
+} gpiPoint;
+
+typedef struct TERMENTRY {
+    const char *name;
+#ifdef WIN16
+    const char GPFAR description[80];  /* to make text go in FAR segment */
+#else
+    const char *description;
+#endif
+    unsigned int xmax,ymax,v_char,h_char,v_tic,h_tic;
+
+    void (*options) __PROTO((void));
+    void (*init) __PROTO((void));
+    void (*reset) __PROTO((void));
+    void (*text) __PROTO((void));
+    int (*scale) __PROTO((double, double));
+    void (*graphics) __PROTO((void));
+    void (*move) __PROTO((unsigned int, unsigned int));
+    void (*vector) __PROTO((unsigned int, unsigned int));
+    void (*linetype) __PROTO((int));
+    void (*put_text) __PROTO((unsigned int, unsigned int, const char*));
+    /* the following are optional. set term ensures they are not NULL */
+    int (*text_angle) __PROTO((int));
+    int (*justify_text) __PROTO((enum JUSTIFY));
+    void (*point) __PROTO((unsigned int, unsigned int,int));
+    void (*arrow) __PROTO((unsigned int, unsigned int, unsigned int, unsigned int, TBOOLEAN));
+    int (*set_font) __PROTO((const char *font));
+    void (*pointsize) __PROTO((double)); /* change pointsize */
+    int flags;
+    void (*suspend) __PROTO((void)); /* called after one plot of multiplot */
+    void (*resume)  __PROTO((void)); /* called before plots of multiplot */
+    void (*fillbox) __PROTO((int, unsigned int, unsigned int, unsigned int, unsigned int)); /* clear in multiplot mode */
+    void (*linewidth) __PROTO((double linewidth));
+#ifdef USE_MOUSE
+    int (*waitforinput) __PROTO((void));     /* used for mouse input */
+    void (*put_tmptext) __PROTO((int, const char []));   /* draws temporary text; int determines where: 0=statusline, 1,2: at corners of zoom box, with \r separating text above and below the point */
+    void (*set_ruler) __PROTO((int, int));    /* set ruler location; x<0 switches ruler off */
+    void (*set_cursor) __PROTO((int, int, int));   /* set cursor style and corner of rubber band */
+    void (*set_clipboard) __PROTO((const char[]));  /* write text into cut&paste buffer (clipboard) */
+#endif
+#ifdef PM3D
+    int (*make_palette) __PROTO((t_sm_palette *palette));
+    /* 1. if palette==NULL, then return nice/suitable
+       maximal number of colours supported by this terminal.
+       Returns 0 if it can make colours without palette (like 
+       postscript).
+       2. if palette!=NULL, then allocate its own palette
+       return value is undefined
+       3. available: some negative values of max_colors for whatever 
+       can be useful
+     */
+    void (*previous_palette) __PROTO((void));  
+    /* release the palette that the above routine allocated and get 
+       back the palette that was active before.
+       Some terminals, like displays, may draw parts of the figure
+       using their own palette. Those terminals that possess only 
+       one palette for the whole plot don't need this routine.
+     */
+
+    void (*set_color) __PROTO((double gray));
+    /* gray is from [0;1], terminal uses its palette or another way
+       to transform in into gray or r,g,b
+       This routine (for each terminal separately) remembers or not
+       this colour so that it can apply it for the subsequent drawings
+     */
+    void (*filled_polygon) __PROTO((int points, gpiPoint *corners));
+#endif
+} TERMENTRY;
+#else
+struct TERMENTRY {
+        char *name;
+#if defined(_Windows) && !defined(WIN32)
+        char GPFAR description[80];     /* to make text go in FAR segment */
+#else
+        char *description;
+#endif
+        unsigned int xmax,ymax,v_char,h_char,v_tic,h_tic;
+        FUNC_PTR options,init,reset,text,scale,graphics,move,vector,linetype,
+                put_text,text_angle,justify_text,point,arrow,set_font,
+		pointsize;
+	int flags;
+        FUNC_PTR suspend,resume,fillbox,linewidth;
+};
+#endif
+
+#ifdef _Windows
+#  define termentry TERMENTRY far
+#else
+#  define termentry TERMENTRY
+#endif
+
+extern struct termentry *term;
+
+#ifndef GNUPLOT_NO_CODE_EMIT
+struct termentry *term;
+#endif /* !GNUPLOT_NO_CODE_EMIT */
+
+#define RETVOID
+#define RETINT , 1



( run in 1.713 second using v1.01-cache-2.11-cpan-84e82930d8c )