Rev 18133 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
10 | reyssat | 1 | /* Copyright (C) 1998-2003 XIAO, Gang of Universite de Nice - Sophia Antipolis |
2 | * |
||
3 | * This program is free software; you can redistribute it and/or modify |
||
4 | * it under the terms of the GNU General Public License as published by |
||
5 | * the Free Software Foundation; either version 2 of the License, or |
||
6 | * (at your option) any later version. |
||
7 | * |
||
8 | * This program is distributed in the hope that it will be useful, |
||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||
11 | * GNU General Public License for more details. |
||
12 | * |
||
13 | * You should have received a copy of the GNU General Public License |
||
14 | * along with this program; if not, write to the Free Software |
||
15 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
||
16 | */ |
||
17 | |||
18 | #include <stdio.h> |
||
19 | #include <stdlib.h> |
||
20 | #include <stdarg.h> |
||
21 | #include <string.h> |
||
22 | #include <unistd.h> |
||
23 | #include <ctype.h> |
||
24 | #include <math.h> |
||
7615 | bpr | 25 | #include <gd.h> |
26 | #include <gdfontt.h> |
||
27 | #include <gdfonts.h> |
||
28 | #include <gdfontmb.h> |
||
29 | #include <gdfontl.h> |
||
30 | #include <gdfontg.h> |
||
10 | reyssat | 31 | |
8102 | bpr | 32 | #include "../Lib/libwims.h" |
33 | |||
10 | reyssat | 34 | #define MAX_PARMS 8192 |
35 | #define MAX_SIZE 4096 |
||
36 | #define MAX_VARS 1024 |
||
37 | #define MAX_VARNAMEBUF 16384 |
||
38 | #define BOUND (MAX_SIZE*10) |
||
39 | #define exec_prefix_char '#' |
||
40 | |||
17574 | bpr | 41 | extern FILE * tikz_file; |
42 | extern int tikz_brushColor; |
||
10 | reyssat | 43 | |
8102 | bpr | 44 | /* from flydraw.c */ |
45 | extern int linecnt, varcnt; |
||
46 | extern ev_variable vartab[]; |
||
47 | extern char varnamebuf[MAX_VARNAMEBUF], *varnameptr; |
||
8158 | bpr | 48 | extern gdImagePtr image, wimg, tileimg, brushimg; |
49 | extern int brushed, tiled, styled, savew, wcolor, transform; |
||
18159 | bpr | 50 | extern int dashed,filled,noreset,reset; |
8102 | bpr | 51 | typedef double matrice[4]; |
52 | #define JC_NB_MATRICES 19 |
||
53 | extern matrice matrices_pavage[JC_NB_MATRICES+1]; |
||
54 | #define matrix matrices_pavage[0] |
||
55 | typedef double vecteur[2]; |
||
56 | extern vecteur vecteurs_pavage[JC_NB_MATRICES+1]; |
||
57 | #define vector vecteurs_pavage[0]; |
||
58 | extern double scale_buf[MAX_PARMS]; |
||
8158 | bpr | 59 | extern double transx, transy; /* translation vector */ |
60 | extern double xscale, yscale, xstart, ystart; |
||
8102 | bpr | 61 | extern int sizex, sizey, saved; |
8158 | bpr | 62 | extern int color_white, color_black, color_bounder, color_frame, lstep; |
8414 | bpr | 63 | extern int width, width2; |
8158 | bpr | 64 | extern double tend, tstart, tstep, plotjump, animstep; |
65 | extern int vimg_enable, vimg_ready; |
||
8102 | bpr | 66 | extern FILE *vimgf; |
17574 | bpr | 67 | extern char vimgfilename[1024], imagefilename[1024], tikzfilename[1024]; |
14873 | georgesk | 68 | extern int tranged; |
69 | extern double parallogram_fonda[6]; |
||
70 | extern char *substit(char *p); |
||
71 | |||
8102 | bpr | 72 | void output(void); |
73 | /* from wimg.c */ |
||
74 | void vimg_init (void); |
||
75 | void vimg_close (void); |
||
8158 | bpr | 76 | void vimg_arc (double x0, double y0, double rx, double ry, double a1, double a2); |
8102 | bpr | 77 | void vimg_ellipse (double x0, double y0, double rx, double ry); |
8158 | bpr | 78 | void vimg_line (double x1, double y1, double x2, double y2); |
8102 | bpr | 79 | void vimg_polyline (double xy[], int cnt, int closed); |
80 | void vimg_rect (double x1, double y1, double x2, double y2); |
||
81 | void vimg_plotstart (void); |
||
82 | void vimg_plot1 (double x, double y); |
||
83 | void vimg_plotend (void); |
||
84 | |||
85 | |||
86 | /* from flylines.c */ |
||
87 | char *find_name_start(char *p); |
||
88 | char *find_name_end(char *p); |
||
8195 | bpr | 89 | void fly_error(char *p); |
8102 | bpr | 90 | void scale(double dbuf[], int ibuf[], int cnt); |
91 | /* scale without displacement */ |
||
92 | void scale2(double xin, double yin, double *xout, double *yout); |
||
93 | int widthcolor(int w, int color); |
||
94 | int getcolor(int r, int g, int b); |
||
95 | void setvar(char *p, double v); |
||
96 | void collapse_item(char *p, int n); |
||
97 | int ggetline(char buf[]); |
||
98 | |||
99 | /* from nametab.c */ |
||
100 | enum {t_prep,t_color,t_obj}; |
||
8158 | bpr | 101 | typedef struct objparm{ int p[MAX_PARMS]; double pd[MAX_PARMS]; int pcnt, color[2], fill; |
102 | char str[MAX_LINELEN+1], font[16]; } objparm; |
||
8102 | bpr | 103 | enum {p_and,p_from,p_to,p_thru,p_center,p_color,p_font, |
104 | p_diameter,p_radius,p_width,p_height }; |
||
105 | |||
106 | extern struct preptab { char *name;int typ; } preptab[]; |
||
107 | extern struct objtab { |
||
8878 | bpr | 108 | char *name; int required_parms, color_pos, fill_tag, subst; |
8102 | bpr | 109 | void (*routine) (objparm *pm); } objtab[]; |
110 | |||
111 | extern struct colortab {char *name;char *def;} colortab[]; |
||
112 | extern struct nametab {char *name;int type;int serial;} nametab[]; |
||
113 | extern int nametab_no, prep_no, obj_no, color_no; |
||
114 | |||
115 | /* from objects.c */ |
||
116 | int obj_main(char *p); |