3 <H2>Information from source codes</H2>
15 * PostScript File IO utility Header File
22 #define MAX_STRING_LENGTH 256
24 #define PS_FILE_STATUS_ERROR (0)
25 #define PS_FILE_STATUS_OK (1)
29 typedef long psParaTypeInteger;
30 typedef double psParaTypeReal;
32 typedef struct psInfo {
33 psParaTypeInteger prologInfoNum;
35 char label[MAX_STRING_LENGTH];
36 psParaTypeInteger page;
37 psParaTypeInteger status;
40 typedef struct psPageInfo psPageInfo;
43 psParaTypeInteger page;
44 psParaTypeInteger byte;
50 typedef struct psFile {
63 #define PROLOG_STRING_NUM (11)
65 #define PROLOG_VERSION (0)
66 #define PROLOG_TITLE (1)
67 #define PROLOG_CREATOR (2)
68 #define PROLOG_CREATION_DATE (3)
69 #define PROLOG_FOR (4)
70 #define PROLOG_BOUND_BOX (5)
71 #define PROLOG_PAGES (6)
72 #define PROLOG_DOC_FONTS (7)
73 #define PROLOG_END_DOC (8)
74 #define PROLOG_END_PRO (9)
76 typedef enum psImageScaleMode {
77 psImageScaleModeBottomLeft = 1,
78 psImageScaleModeCenter = 2
81 #define PS_IMAGE_CENTRE_LINE_WIDTH (0.1)
82 #define PS_IMAGE_CENTRE_MARK_LENGTH (0.01)
84 #define PS_IMAGE_SCALE_LINE_WIDTH0 (0.2)
85 #define PS_IMAGE_SCALE_LINE_WIDTH1 (0.1)
86 #define PS_IMAGE_SCALE_LINE_LENGTH0 (10.0)
87 #define PS_IMAGE_SCALE_LINE_LENGTH1 (5.0)
88 #define PS_IMAGE_SCALE_LINE_LENGTH2 (3.0)
89 #define PS_IMAGE_SCALE_LINE_LENGTH3 (2.0)
90 #define PS_IMAGE_SCALE_LINE_LENGTH4 (1.0)
91 #define PS_IMAGE_SCALE_LINE_LENGTH00 (-10.0)
92 #define PS_IMAGE_SCALE_LINE_LENGTH10 (-5.0)
93 #define PS_IMAGE_SCALE_LINE_LENGTH20 (-3.0)
94 #define PS_IMAGE_SCALE_LINE_LENGTH30 (-2.0)
95 #define PS_IMAGE_SCALE_LINE_LENGTH40 (-1.0)
97 #define psContourMode_DifferentLineWidthContour (0x01)
98 #define psContourMode_SameLineWidthContour (0x02)
103 typedef struct psImageInfo {
104 /* For Image Space */
105 psParaTypeReal scaleX;
106 psParaTypeReal scaleY;
107 psParaTypeReal translateX;
108 psParaTypeReal translateY;
109 psParaTypeReal angle;
112 psParaTypeInteger width;
113 psParaTypeInteger height;
114 psParaTypeInteger section;
116 psParaTypeInteger bps;
117 psParaTypeInteger nContour;
118 psParaTypeReal* contourLevel;
119 /* For Density Image */
120 unsigned char* image;
123 psParaTypeReal contourLineColorChange;
124 psParaTypeReal contourLineWidthStart;
125 psParaTypeReal contourLineWidthStep;
128 psParaTypeReal eyeX; /* Eye Position */
131 psParaTypeReal pointX; /* Projection Surface Position */
132 psParaTypeReal pointY; /* Surface Normal: (position - eye) */
133 psParaTypeReal pointZ;
136 psParaTypeInteger flagRGBColor;
137 psParaTypeInteger flagRGBGradientColor;
139 psParaTypeReal Green;
141 psParaTypeReal RedFirst;
142 psParaTypeReal GreenFirst;
143 psParaTypeReal BlueFirst;
144 psParaTypeReal RedLast;
145 psParaTypeReal GreenLast;
146 psParaTypeReal BlueLast;
147 psParaTypeInteger flagHSBColor;
148 psParaTypeInteger flagHSBGradientColor;
150 psParaTypeReal Saturation;
151 psParaTypeReal Brightness;
152 psParaTypeReal HueFirst;
153 psParaTypeReal SaturationFirst;
154 psParaTypeReal BrightnessFirst;
155 psParaTypeReal HueLast;
156 psParaTypeReal SaturationLast;
157 psParaTypeReal BrightnessLast;
159 /* For Line Colour */
160 psParaTypeInteger flagLineRGBColor;
161 psParaTypeInteger flagLineRGBGradientColor;
162 psParaTypeReal LineRed;
163 psParaTypeReal LineGreen;
164 psParaTypeReal LineBlue;
165 psParaTypeReal LineRedFirst;
166 psParaTypeReal LineGreenFirst;
167 psParaTypeReal LineBlueFirst;
168 psParaTypeReal LineRedLast;
169 psParaTypeReal LineGreenLast;
170 psParaTypeReal LineBlueLast;
171 psParaTypeInteger flagLineHSBColor;
172 psParaTypeInteger flagLineHSBGradientColor;
173 psParaTypeReal LineHue;
174 psParaTypeReal LineSaturation;
175 psParaTypeReal LineBrightness;
176 psParaTypeReal LineHueFirst;
177 psParaTypeReal LineSaturationFirst;
178 psParaTypeReal LineBrightnessFirst;
179 psParaTypeReal LineHueLast;
180 psParaTypeReal LineSaturationLast;
181 psParaTypeReal LineBrightnessLast;
184 psParaTypeReal CircleRadius;
190 #define PS_PLOT_MODE_AXIS (0x000000ff)
191 #define PS_PLOT_MODE_AXIS_X_AXIS_POS (0x00000001) /* 0: Down 1: Up */
192 #define PS_PLOT_MODE_AXIS_Y_AXIS_POS (0x00000002) /* 0: Left 1: Write */
193 #define PS_PLOT_MODE_AXIS (0x000000ff)
195 #define PS_LINE_CIRCLE_MODE (0)
196 #define PS_FILL_WHITE_CIRCLE_MODE (1)
197 #define PS_FILL_BLACK_CIRCLE_MODE (2)
199 #define PS_PLOT_SCALE_X_AXIS_Y_POSITION_DOWN ( -5.0)
200 #define PS_PLOT_SCALE_X_AXIS_Y_POSITION_UP (105.0)
201 #define PS_PLOT_SCALE_X_AXIS_LENGTH (1.0)
205 typedef struct psPlotInfo {
206 psParaTypeReal scaleX;
207 psParaTypeReal scaleY;
208 psParaTypeReal translateX;
209 psParaTypeReal translateY;
212 psParaTypeReal dXValue;
214 psParaTypeReal centreX;
219 psParaTypeReal dYValue;
221 psParaTypeReal centreY;
225 psParaTypeInteger nData;
226 psParaTypeReal *data;
234 /* prototype begin */
236 /* in psFileInit.c */
237 extern void psFileInit(psFile* ps, psParaTypeInteger mode);
239 /* in psFilePage.c */
240 extern void psFilePageStart(psFile* ps, psParaTypeInteger mode);
241 extern void psFilePageEnd(psFile* ps, psParaTypeInteger mode);
244 extern void psFileEnd(psFile* ps);
246 /* in psFileImage.c */
247 extern void psFileImage (psFile* ps, psImageInfo im, psParaTypeInteger mode);
248 extern void psFileImageByCircles (psFile* ps, psImageInfo im, psParaTypeInteger mode);
249 extern void psFileImageCentre (psFile* ps, psImageInfo im, psParaTypeInteger mode);
250 extern void psFileImageScale (psFile* ps, psImageInfo im, psParaTypeInteger mode);
251 extern void psFileImageSpaceSet (psFile* ps, psImageInfo im, psParaTypeInteger mode);
252 extern void psFileImageSpaceRotateSet (psFile* ps, psImageInfo im, psParaTypeInteger mode);
253 extern void psFileImageSpaceRestore(psFile* ps, psImageInfo im, psParaTypeInteger mode);
254 extern void psFileImageSpaceRotateRestore(psFile* ps, psImageInfo im, psParaTypeInteger mode);
256 /* in psFileLine.c */
257 extern void psFileLineWidthSet (psFile* ps, float lineWidth);
258 extern void psFileLineDraw(psFile* ps, float x1,float y1,float x2,float y2);
259 extern void psFileDendgramLineDraw(psFile* ps, float width,float height1, float height2, float x, float y);
261 /* in psFileString.c */
262 extern void psFileStringStatusSet(psFile* ps, char* fontname, double fontsize);
263 extern void psFileStringDefaultStatusSet(psFile* ps);
264 extern void psFileString (psFile* ps, char* message, double x, double y, psParaTypeInteger mode);
266 /* in psFileContour.c */
267 extern void psFileContour(psFile* ps, psImageInfo im, psParaTypeInteger mode);
268 /* in psFileCircle.c */
269 extern void psFileCircleCreate(psFile* ps, float cx, float cy, float r, long mode);
273 /* in psFileRead.c */
274 extern void psFileRead(psFile* ps, FILE* fpt, long mode);
277 /* in psFileUtil.c */
278 extern long psFileIsStartPage(psFile* ps, char* s);
279 extern long psFileIsEndPage(psFile* ps, char* s);
286 #endif /* PS_FILE_H */