]>
Commit | Line | Data |
---|---|---|
ef416fc2 | 1 | /* |
c07d5b2d | 2 | * "$Id: hpgltops.h 177 2006-06-21 00:20:03Z jlovell $" |
ef416fc2 | 3 | * |
4 | * HP-GL/2 to PostScript filter for the Common UNIX Printing System (CUPS). | |
5 | * | |
6 | * Copyright 1993-2005 by Easy Software Products. | |
7 | * | |
8 | * These coded instructions, statements, and computer programs are the | |
9 | * property of Easy Software Products and are protected by Federal | |
10 | * copyright law. Distribution and use rights are outlined in the file | |
11 | * "LICENSE.txt" which should have been included with this file. If this | |
12 | * file is missing or damaged please contact Easy Software Products | |
13 | * at: | |
14 | * | |
15 | * Attn: CUPS Licensing Information | |
16 | * Easy Software Products | |
17 | * 44141 Airport View Drive, Suite 204 | |
18 | * Hollywood, Maryland 20636 USA | |
19 | * | |
20 | * Voice: (301) 373-9600 | |
21 | * EMail: cups-info@cups.org | |
22 | * WWW: http://www.cups.org | |
23 | * | |
24 | * This file is subject to the Apple OS-Developed Software exception. | |
25 | */ | |
26 | ||
27 | /* | |
28 | * Include necessary headers... | |
29 | */ | |
30 | ||
31 | #include "common.h" | |
32 | #include <math.h> | |
33 | ||
34 | #ifndef M_PI | |
35 | # define M_PI 3.14159265358979323846 | |
36 | #endif /* M_PI */ | |
37 | ||
38 | /* | |
39 | * Parameter value structure... | |
40 | */ | |
41 | ||
42 | typedef struct | |
43 | { | |
44 | int type; | |
45 | union | |
46 | { | |
47 | float number; | |
48 | char *string; | |
49 | } value; | |
50 | } param_t; | |
51 | ||
52 | #define PARAM_ABSOLUTE 0 | |
53 | #define PARAM_RELATIVE 1 | |
54 | #define PARAM_STRING 2 | |
55 | ||
56 | ||
57 | /* | |
58 | * Font information... | |
59 | */ | |
60 | ||
61 | typedef struct | |
62 | { | |
63 | int symbol_set, /* Symbol set */ | |
64 | spacing, /* Spacing (0 = fixed, 1 = proportional) */ | |
65 | posture, /* Posture number */ | |
66 | weight, /* Weight number */ | |
67 | typeface; /* Typeface number */ | |
68 | float pitch, /* Characters per inch */ | |
69 | height, /* Height/size of font */ | |
70 | xpitch; /* X pitch scaling value */ | |
71 | float x, y; /* X and Y direction/scaling */ | |
72 | } font_t; | |
73 | ||
74 | ||
75 | /* | |
76 | * Pen information... | |
77 | */ | |
78 | ||
79 | typedef struct | |
80 | { | |
81 | float rgb[3]; /* Pen color */ | |
82 | float width; /* Pen width */ | |
83 | } pen_t; | |
84 | ||
85 | ||
86 | /* | |
87 | * Globals... | |
88 | */ | |
89 | ||
90 | #ifdef _HPGL_MAIN_C_ | |
91 | # define VAR | |
92 | # define VALUE(x) =x | |
93 | # define VALUE2(x,y) ={x,y} | |
94 | #else | |
95 | # define VAR extern | |
96 | # define VALUE(x) | |
97 | # define VALUE2(x,y) | |
98 | #endif /* _HPGL_MAIN_C_ */ | |
99 | ||
100 | VAR ppd_file_t *PPD VALUE(NULL); /* PPD file */ | |
101 | ||
102 | VAR float P1[2], /* Lower-lefthand physical limit */ | |
103 | P2[2], /* Upper-righthand physical limit */ | |
104 | IW1[2], /* Window lower-lefthand limit */ | |
105 | IW2[2]; /* Window upper-righthand limit */ | |
106 | VAR int Rotation VALUE(0); /* Page rotation */ | |
107 | VAR int ScalingType VALUE(-1); /* Type of scaling (-1 for none) */ | |
108 | VAR float Scaling1[2], /* Lower-lefthand user limit */ | |
109 | Scaling2[2]; /* Upper-righthand user limit */ | |
110 | VAR float Transform[2][3]; /* Transform matrix */ | |
111 | VAR int PageRotation VALUE(0); /* Page/plot rotation */ | |
112 | ||
113 | VAR char StringTerminator VALUE('\003'); /* Terminator for labels */ | |
114 | VAR font_t StandardFont, /* Standard font */ | |
115 | AlternateFont; /* Alternate font */ | |
116 | VAR float PenPosition[2] VALUE2(0.0f, 0.0f), | |
117 | /* Current pen position */ | |
118 | PenScaling VALUE(1.0f), /* Pen width scaling factor */ | |
119 | PenWidth VALUE(1.0f); /* Default pen width */ | |
120 | VAR pen_t Pens[1024]; /* State of each pen */ | |
121 | VAR int PenMotion VALUE(0), /* 0 = absolute, 1 = relative */ | |
122 | PenValid VALUE(0), /* 1 = valid position, 0 = undefined */ | |
123 | PenNumber VALUE(1), /* Current pen number */ | |
124 | PenCount VALUE(8), /* Number of pens */ | |
125 | PenDown VALUE(0), /* 0 = pen up, 1 = pen down */ | |
126 | PolygonMode VALUE(0), /* Drawing polygons? */ | |
127 | PageCount VALUE(0), /* Number of pages in plot */ | |
128 | PageDirty VALUE(0), /* Current page written on? */ | |
129 | WidthUnits VALUE(0); /* 0 = mm, 1 = proportionate */ | |
130 | VAR float PlotSize[2] VALUE2(2592.0f, 3456.0f); | |
131 | /* Plot size */ | |
132 | VAR int PlotSizeSet VALUE(0); /* Plot size set? */ | |
133 | VAR int CharFillMode VALUE(0), /* Where to draw labels */ | |
134 | CharPen VALUE(0), /* Pen to use for labels */ | |
135 | CharFont VALUE(0); /* Font to use for labels */ | |
136 | VAR float CharHeight[2] VALUE2(11.5f,11.5f); | |
137 | /* Size of font for labels */ | |
138 | VAR int FitPlot VALUE(0); /* 1 = fit to page */ | |
139 | VAR float ColorRange[3][2] /* Range of color values */ | |
140 | #ifdef _HPGL_MAIN_C_ | |
141 | = { | |
142 | { 0.0, 255.0 }, | |
143 | { 0.0, 255.0 }, | |
144 | { 0.0, 255.0 } | |
145 | } | |
146 | #endif /* _HPGL_MAIN_C_ */ | |
147 | ; | |
148 | ||
149 | VAR int LineCap VALUE(0); /* Line capping */ | |
150 | VAR int LineJoin VALUE(0); /* Line joining */ | |
151 | VAR float MiterLimit VALUE(3.0f); /* Miter limit at joints */ | |
152 | ||
153 | ||
154 | /* | |
155 | * Prototypes... | |
156 | */ | |
157 | ||
158 | /* hpgl-input.c */ | |
159 | extern int ParseCommand(FILE *fp, char *name, param_t **params); | |
160 | extern void FreeParameters(int num_params, param_t *params); | |
161 | ||
162 | /* hpgl-config.c */ | |
163 | extern void update_transform(void); | |
164 | extern void BP_begin_plot(int num_params, param_t *params); | |
165 | extern void DF_default_values(int num_params, param_t *params); | |
166 | extern void IN_initialize(int num_params, param_t *params); | |
167 | extern void IP_input_absolute(int num_params, param_t *params); | |
168 | extern void IR_input_relative(int num_params, param_t *params); | |
169 | extern void IW_input_window(int num_params, param_t *params); | |
170 | extern void PG_advance_page(int num_params, param_t *params); | |
171 | extern void PS_plot_size(int num_params, param_t *params); | |
172 | extern void RO_rotate(int num_params, param_t *params); | |
173 | extern void RP_replot(int num_params, param_t *params); | |
174 | extern void SC_scale(int num_params, param_t *params); | |
175 | ||
176 | /* hpgl-vector.c */ | |
177 | extern void AA_arc_absolute(int num_params, param_t *params); | |
178 | extern void AR_arc_relative(int num_params, param_t *params); | |
179 | extern void AT_arc_absolute3(int num_params, param_t *params); | |
180 | extern void CI_circle(int num_params, param_t *params); | |
181 | extern void PA_plot_absolute(int num_params, param_t *params); | |
182 | extern void PD_pen_down(int num_params, param_t *params); | |
183 | extern void PE_polyline_encoded(int num_params, param_t *params); | |
184 | extern void PR_plot_relative(int num_params, param_t *params); | |
185 | extern void PU_pen_up(int num_params, param_t *params); | |
186 | extern void RT_arc_relative3(int num_params, param_t *params); | |
187 | ||
188 | /* hpgl-polygon.c */ | |
189 | extern void EA_edge_rect_absolute(int num_params, param_t *params); | |
190 | extern void EP_edge_polygon(int num_params, param_t *params); | |
191 | extern void ER_edge_rect_relative(int num_params, param_t *params); | |
192 | extern void EW_edge_wedge(int num_params, param_t *params); | |
193 | extern void FP_fill_polygon(int num_params, param_t *params); | |
194 | extern void PM_polygon_mode(int num_params, param_t *params); | |
195 | extern void RA_fill_rect_absolute(int num_params, param_t *params); | |
196 | extern void RR_fill_rect_relative(int num_params, param_t *params); | |
197 | extern void WG_fill_wedge(int num_params, param_t *params); | |
198 | ||
199 | /* hpgl-char.c */ | |
200 | extern void define_font(int f); | |
201 | extern void AD_define_alternate(int num_params, param_t *params); | |
202 | extern void CF_character_fill(int num_params, param_t *params); | |
203 | extern void CP_character_plot(int num_params, param_t *params); | |
204 | extern void DI_absolute_direction(int num_params, param_t *params); | |
205 | extern void DR_relative_direction(int num_params, param_t *params); | |
206 | extern void DT_define_label_term(int num_params, param_t *params); | |
207 | extern void DV_define_variable_path(int num_params, param_t *params); | |
208 | extern void ES_extra_space(int num_params, param_t *params); | |
209 | extern void LB_label(int num_params, param_t *params); | |
210 | extern void LO_label_origin(int num_params, param_t *params); | |
211 | extern void SA_select_alternate(int num_params, param_t *params); | |
212 | extern void SD_define_standard(int num_params, param_t *params); | |
213 | extern void SI_absolute_size(int num_params, param_t *params); | |
214 | extern void SL_character_slant(int num_params, param_t *params); | |
215 | extern void SR_relative_size(int num_params, param_t *params); | |
216 | extern void SS_select_standard(int num_params, param_t *params); | |
217 | extern void TD_transparent_data(int num_params, param_t *params); | |
218 | ||
219 | /* hpgl-attr.c */ | |
220 | extern void AC_anchor_corner(int num_params, param_t *params); | |
221 | extern void CR_color_range(int num_params, param_t *params); | |
222 | extern void FT_fill_type(int num_params, param_t *params); | |
223 | extern void LA_line_attributes(int num_params, param_t *params); | |
224 | extern void LT_line_type(int num_params, param_t *params); | |
225 | extern void NP_number_pens(int num_params, param_t *params); | |
226 | extern void PC_pen_color(int num_params, param_t *params); | |
227 | extern void PW_pen_width(int num_params, param_t *params); | |
228 | extern void RF_raster_fill(int num_params, param_t *params); | |
229 | extern void SM_symbol_mode(int num_params, param_t *params); | |
230 | extern void SP_select_pen(int num_params, param_t *params); | |
231 | extern void UL_user_line_type(int num_params, param_t *params); | |
232 | extern void WU_width_units(int num_params, param_t *params); | |
233 | ||
234 | /* hpgl-prolog.c */ | |
235 | extern void OutputProlog(char *title, char *user, int shading); | |
236 | extern void OutputTrailer(void); | |
237 | extern int Outputf(const char *format, ...); | |
238 | ||
239 | /* | |
c07d5b2d | 240 | * End of "$Id: hpgltops.h 177 2006-06-21 00:20:03Z jlovell $". |
ef416fc2 | 241 | */ |