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