]>
git.ipfire.org Git - thirdparty/cups.git/blob - filter/hpgltops.h
2 * "$Id: hpgltops.h 6649 2007-07-11 21:46:42Z mike $"
4 * HP-GL/2 to PostScript filter for the Common UNIX Printing System (CUPS).
6 * Copyright 2007 by Apple Inc.
7 * Copyright 1993-2005 by Easy Software Products.
9 * These coded instructions, statements, and computer programs are the
10 * property of Apple Inc. and are protected by Federal copyright
11 * law. Distribution and use rights are outlined in the file "LICENSE.txt"
12 * which should have been included with this file. If this file is
13 * file is missing or damaged, see the license at "http://www.cups.org/".
15 * This file is subject to the Apple OS-Developed Software exception.
19 * Include necessary headers...
26 # define M_PI 3.14159265358979323846
31 * Maximum number of pens we emulate...
38 * Parameter value structure...
51 #define PARAM_ABSOLUTE 0
52 #define PARAM_RELATIVE 1
53 #define PARAM_STRING 2
62 int symbol_set
, /* Symbol set */
63 spacing
, /* Spacing (0 = fixed, 1 = proportional) */
64 posture
, /* Posture number */
65 weight
, /* Weight number */
66 typeface
; /* Typeface number */
67 float pitch
, /* Characters per inch */
68 height
, /* Height/size of font */
69 xpitch
; /* X pitch scaling value */
70 float x
, y
; /* X and Y direction/scaling */
80 float rgb
[3]; /* Pen color */
81 float width
; /* Pen width */
92 # define VALUE2(x,y) ={x,y}
97 #endif /* _HPGL_MAIN_C_ */
99 VAR ppd_file_t
*PPD
VALUE(NULL
); /* PPD file */
101 VAR
float P1
[2], /* Lower-lefthand physical limit */
102 P2
[2], /* Upper-righthand physical limit */
103 IW1
[2], /* Window lower-lefthand limit */
104 IW2
[2]; /* Window upper-righthand limit */
105 VAR
int Rotation
VALUE(0); /* Page rotation */
106 VAR
int ScalingType
VALUE(-1); /* Type of scaling (-1 for none) */
107 VAR
float Scaling1
[2], /* Lower-lefthand user limit */
108 Scaling2
[2]; /* Upper-righthand user limit */
109 VAR
float Transform
[2][3]; /* Transform matrix */
110 VAR
int PageRotation
VALUE(0); /* Page/plot rotation */
112 VAR
char StringTerminator
VALUE('\003'); /* Terminator for labels */
113 VAR font_t StandardFont
, /* Standard font */
114 AlternateFont
; /* Alternate font */
115 VAR
float PenPosition
[2] VALUE2(0.0f
, 0.0f
),
116 /* Current pen position */
117 PenScaling
VALUE(1.0f
), /* Pen width scaling factor */
118 PenWidth
VALUE(1.0f
); /* Default pen width */
119 VAR pen_t Pens
[MAX_PENS
]; /* State of each pen */
120 VAR
int PenMotion
VALUE(0), /* 0 = absolute, 1 = relative */
121 PenValid
VALUE(0), /* 1 = valid position, 0 = undefined */
122 PenNumber
VALUE(0), /* Current pen number */
123 PenCount
VALUE(8), /* Number of pens */
124 PenDown
VALUE(0), /* 0 = pen up, 1 = pen down */
125 PolygonMode
VALUE(0), /* Drawing polygons? */
126 PageCount
VALUE(0), /* Number of pages in plot */
127 PageDirty
VALUE(0), /* Current page written on? */
128 WidthUnits
VALUE(0); /* 0 = mm, 1 = proportionate */
129 VAR
float PlotSize
[2] VALUE2(2592.0f
, 3456.0f
);
131 VAR
int PlotSizeSet
VALUE(0); /* Plot size set? */
132 VAR
int CharFillMode
VALUE(0), /* Where to draw labels */
133 CharPen
VALUE(0), /* Pen to use for labels */
134 CharFont
VALUE(0); /* Font to use for labels */
135 VAR
float CharHeight
[2] VALUE2(11.5f
,11.5f
);
136 /* Size of font for labels */
137 VAR
int FitPlot
VALUE(0); /* 1 = fit to page */
138 VAR
float ColorRange
[3][2] /* Range of color values */
145 #endif /* _HPGL_MAIN_C_ */
148 VAR
int LineCap
VALUE(0); /* Line capping */
149 VAR
int LineJoin
VALUE(0); /* Line joining */
150 VAR
float MiterLimit
VALUE(3.0f
); /* Miter limit at joints */
158 extern int ParseCommand(FILE *fp
, char *name
, param_t
**params
);
159 extern void FreeParameters(int num_params
, param_t
*params
);
162 extern void update_transform(void);
163 extern void BP_begin_plot(int num_params
, param_t
*params
);
164 extern void DF_default_values(int num_params
, param_t
*params
);
165 extern void IN_initialize(int num_params
, param_t
*params
);
166 extern void IP_input_absolute(int num_params
, param_t
*params
);
167 extern void IR_input_relative(int num_params
, param_t
*params
);
168 extern void IW_input_window(int num_params
, param_t
*params
);
169 extern void PG_advance_page(int num_params
, param_t
*params
);
170 extern void PS_plot_size(int num_params
, param_t
*params
);
171 extern void RO_rotate(int num_params
, param_t
*params
);
172 extern void RP_replot(int num_params
, param_t
*params
);
173 extern void SC_scale(int num_params
, param_t
*params
);
176 extern void AA_arc_absolute(int num_params
, param_t
*params
);
177 extern void AR_arc_relative(int num_params
, param_t
*params
);
178 extern void AT_arc_absolute3(int num_params
, param_t
*params
);
179 extern void CI_circle(int num_params
, param_t
*params
);
180 extern void PA_plot_absolute(int num_params
, param_t
*params
);
181 extern void PD_pen_down(int num_params
, param_t
*params
);
182 extern void PE_polyline_encoded(int num_params
, param_t
*params
);
183 extern void PR_plot_relative(int num_params
, param_t
*params
);
184 extern void PU_pen_up(int num_params
, param_t
*params
);
185 extern void RT_arc_relative3(int num_params
, param_t
*params
);
188 extern void EA_edge_rect_absolute(int num_params
, param_t
*params
);
189 extern void EP_edge_polygon(int num_params
, param_t
*params
);
190 extern void ER_edge_rect_relative(int num_params
, param_t
*params
);
191 extern void EW_edge_wedge(int num_params
, param_t
*params
);
192 extern void FP_fill_polygon(int num_params
, param_t
*params
);
193 extern void PM_polygon_mode(int num_params
, param_t
*params
);
194 extern void RA_fill_rect_absolute(int num_params
, param_t
*params
);
195 extern void RR_fill_rect_relative(int num_params
, param_t
*params
);
196 extern void WG_fill_wedge(int num_params
, param_t
*params
);
199 extern void define_font(int f
);
200 extern void AD_define_alternate(int num_params
, param_t
*params
);
201 extern void CF_character_fill(int num_params
, param_t
*params
);
202 extern void CP_character_plot(int num_params
, param_t
*params
);
203 extern void DI_absolute_direction(int num_params
, param_t
*params
);
204 extern void DR_relative_direction(int num_params
, param_t
*params
);
205 extern void DT_define_label_term(int num_params
, param_t
*params
);
206 extern void DV_define_variable_path(int num_params
, param_t
*params
);
207 extern void ES_extra_space(int num_params
, param_t
*params
);
208 extern void LB_label(int num_params
, param_t
*params
);
209 extern void LO_label_origin(int num_params
, param_t
*params
);
210 extern void SA_select_alternate(int num_params
, param_t
*params
);
211 extern void SD_define_standard(int num_params
, param_t
*params
);
212 extern void SI_absolute_size(int num_params
, param_t
*params
);
213 extern void SL_character_slant(int num_params
, param_t
*params
);
214 extern void SR_relative_size(int num_params
, param_t
*params
);
215 extern void SS_select_standard(int num_params
, param_t
*params
);
216 extern void TD_transparent_data(int num_params
, param_t
*params
);
219 extern void AC_anchor_corner(int num_params
, param_t
*params
);
220 extern void CR_color_range(int num_params
, param_t
*params
);
221 extern void FT_fill_type(int num_params
, param_t
*params
);
222 extern void LA_line_attributes(int num_params
, param_t
*params
);
223 extern void LT_line_type(int num_params
, param_t
*params
);
224 extern void NP_number_pens(int num_params
, param_t
*params
);
225 extern void PC_pen_color(int num_params
, param_t
*params
);
226 extern void PW_pen_width(int num_params
, param_t
*params
);
227 extern void RF_raster_fill(int num_params
, param_t
*params
);
228 extern void SM_symbol_mode(int num_params
, param_t
*params
);
229 extern void SP_select_pen(int num_params
, param_t
*params
);
230 extern void UL_user_line_type(int num_params
, param_t
*params
);
231 extern void WU_width_units(int num_params
, param_t
*params
);
234 extern void OutputProlog(char *title
, char *user
, int shading
);
235 extern void OutputTrailer(void);
236 extern int Outputf(const char *format
, ...);
239 * End of "$Id: hpgltops.h 6649 2007-07-11 21:46:42Z mike $".