OSDN Git Service

new file: bin/mrc2mrc
[eos/hostdependX86LINUX64.git] / include / psFile.h
1 #ifndef PS_FILE_H
2 #define PS_FILE_H
3 /*
4 * PostScript File IO utility Header File
5 *   Edited by Tac
6 *   1992.10
7 */
8 #include "File.h"
9
10 /* constant begin */
11 #define MAX_STRING_LENGTH 256
12                              
13 #define PS_FILE_STATUS_ERROR     (0)
14 #define PS_FILE_STATUS_OK        (1)
15 /* constant end */
16
17 /* struct begin */
18 typedef long   psParaTypeInteger;
19 typedef double psParaTypeReal;
20
21 typedef struct psInfo {
22     psParaTypeInteger prologInfoNum;
23     char**            prologInfo;
24         char              label[MAX_STRING_LENGTH];
25     psParaTypeInteger page;
26     psParaTypeInteger status;
27 } psInfo;
28
29 typedef struct psPageInfo psPageInfo;
30
31 struct psPageInfo {
32         psParaTypeInteger page;
33         psParaTypeInteger byte;
34         long start;
35         long end;
36         psPageInfo* next;
37 };
38
39 typedef struct psFile {
40         FILE* fpt;
41         psInfo info;
42         long headEnd;
43         psPageInfo* current;
44         psPageInfo* top;
45         psPageInfo* end;
46         long byte;
47 } psFile;
48
49 /* struct end */
50
51 /* constant begin */
52 #define PROLOG_STRING_NUM    (11)
53
54 #define PROLOG_VERSION        (0)
55 #define PROLOG_TITLE          (1)
56 #define PROLOG_CREATOR        (2)
57 #define PROLOG_CREATION_DATE  (3)
58 #define PROLOG_FOR            (4)
59 #define PROLOG_BOUND_BOX      (5)
60 #define PROLOG_PAGES          (6)
61 #define PROLOG_DOC_FONTS      (7)
62 #define PROLOG_END_DOC        (8)
63 #define PROLOG_END_PRO        (9)
64
65 typedef enum psImageScaleMode {
66     psImageScaleModeBottomLeft = 1,
67     psImageScaleModeCenter     = 2
68 } psImageScaleMode;
69
70 #define PS_IMAGE_CENTRE_LINE_WIDTH  (0.1)
71 #define PS_IMAGE_CENTRE_MARK_LENGTH (0.01)
72
73 #define PS_IMAGE_SCALE_LINE_WIDTH0 (0.2)
74 #define PS_IMAGE_SCALE_LINE_WIDTH1 (0.1)
75 #define PS_IMAGE_SCALE_LINE_LENGTH0 (10.0)
76 #define PS_IMAGE_SCALE_LINE_LENGTH1 (5.0)
77 #define PS_IMAGE_SCALE_LINE_LENGTH2 (3.0)
78 #define PS_IMAGE_SCALE_LINE_LENGTH3 (2.0)
79 #define PS_IMAGE_SCALE_LINE_LENGTH4 (1.0)
80 #define PS_IMAGE_SCALE_LINE_LENGTH00 (-10.0)
81 #define PS_IMAGE_SCALE_LINE_LENGTH10 (-5.0)
82 #define PS_IMAGE_SCALE_LINE_LENGTH20 (-3.0)
83 #define PS_IMAGE_SCALE_LINE_LENGTH30 (-2.0)
84 #define PS_IMAGE_SCALE_LINE_LENGTH40 (-1.0)
85
86 #define psContourMode_DifferentLineWidthContour (0x01)
87 #define psContourMode_SameLineWidthContour      (0x02)
88
89 /* constant end */
90
91 /* struct begin */
92 typedef struct psImageInfo {
93         /* For Image Space */
94     psParaTypeReal scaleX;
95     psParaTypeReal scaleY;
96     psParaTypeReal translateX;
97     psParaTypeReal translateY;
98     psParaTypeReal angle;
99
100         /* Image Size */
101     psParaTypeInteger width;
102     psParaTypeInteger height;
103     psParaTypeInteger section;
104         /* For Contour */
105     psParaTypeInteger bps;
106     psParaTypeInteger nContour;
107     psParaTypeReal*   contourLevel;
108         /* For Density Image */
109     unsigned char*    image;
110         /* For Contour */
111     float*            floatImage;
112         psParaTypeReal    contourLineColorChange;
113         psParaTypeReal    contourLineWidthStart;
114         psParaTypeReal    contourLineWidthStep;
115
116         /* For 3D Contour */
117         psParaTypeReal    eyeX;   /* Eye Position */
118         psParaTypeReal    eyeY;
119         psParaTypeReal    eyeZ;
120         psParaTypeReal    pointX; /* Projection Surface Position */
121         psParaTypeReal    pointY; /* Surface Normal: (position - eye)  */
122         psParaTypeReal    pointZ;
123
124         /* For Colour */
125         psParaTypeInteger flagRGBColor; 
126         psParaTypeInteger flagRGBGradientColor; 
127         psParaTypeReal Red;
128         psParaTypeReal Green;
129         psParaTypeReal Blue;
130         psParaTypeReal RedFirst;
131         psParaTypeReal GreenFirst;
132         psParaTypeReal BlueFirst;
133         psParaTypeReal RedLast;
134         psParaTypeReal GreenLast;
135         psParaTypeReal BlueLast;
136         psParaTypeInteger flagHSBColor; 
137         psParaTypeInteger flagHSBGradientColor; 
138         psParaTypeReal Hue;
139         psParaTypeReal Saturation;
140         psParaTypeReal Brightness;
141         psParaTypeReal HueFirst;
142         psParaTypeReal SaturationFirst;
143         psParaTypeReal BrightnessFirst;
144         psParaTypeReal HueLast;
145         psParaTypeReal SaturationLast;
146         psParaTypeReal BrightnessLast;
147
148         /* For Line Colour */
149         psParaTypeInteger flagLineRGBColor;     
150         psParaTypeInteger flagLineRGBGradientColor;     
151         psParaTypeReal LineRed;
152         psParaTypeReal LineGreen;
153         psParaTypeReal LineBlue;
154         psParaTypeReal LineRedFirst;
155         psParaTypeReal LineGreenFirst;
156         psParaTypeReal LineBlueFirst;
157         psParaTypeReal LineRedLast;
158         psParaTypeReal LineGreenLast;
159         psParaTypeReal LineBlueLast;
160         psParaTypeInteger flagLineHSBColor;     
161         psParaTypeInteger flagLineHSBGradientColor;     
162         psParaTypeReal LineHue;
163         psParaTypeReal LineSaturation;
164         psParaTypeReal LineBrightness;
165         psParaTypeReal LineHueFirst;
166         psParaTypeReal LineSaturationFirst;
167         psParaTypeReal LineBrightnessFirst;
168         psParaTypeReal LineHueLast;
169         psParaTypeReal LineSaturationLast;
170         psParaTypeReal LineBrightnessLast;
171
172         /* For Circle */
173         psParaTypeReal CircleRadius;
174     long              dummy;
175 } psImageInfo;
176 /* struct end */
177
178 /* constant begin */
179 #define PS_PLOT_MODE_AXIS (0x000000ff)
180 #define PS_PLOT_MODE_AXIS_X_AXIS_POS (0x00000001) /* 0: Down 1: Up */
181 #define PS_PLOT_MODE_AXIS_Y_AXIS_POS (0x00000002) /* 0: Left 1: Write */
182 #define PS_PLOT_MODE_AXIS (0x000000ff)
183
184 #define PS_LINE_CIRCLE_MODE (0)
185 #define PS_FILL_WHITE_CIRCLE_MODE (1)
186 #define PS_FILL_BLACK_CIRCLE_MODE (2)
187
188 #define PS_PLOT_SCALE_X_AXIS_Y_POSITION_DOWN ( -5.0)
189 #define PS_PLOT_SCALE_X_AXIS_Y_POSITION_UP   (105.0)
190 #define PS_PLOT_SCALE_X_AXIS_LENGTH     (1.0)
191 /* constant end */
192
193 /* struct begin */
194 typedef struct psPlotInfo {
195     psParaTypeReal scaleX;
196     psParaTypeReal scaleY;
197     psParaTypeReal translateX;
198     psParaTypeReal translateY;
199
200     psParaTypeReal dX;
201     psParaTypeReal dXValue;
202     psParaTypeReal minX;
203     psParaTypeReal centreX;
204     psParaTypeReal maxX;
205     char*          labelX;
206
207     psParaTypeReal dY;
208     psParaTypeReal dYValue;
209     psParaTypeReal minY;
210     psParaTypeReal centreY;
211     psParaTypeReal maxY;
212     char*          labelY;
213
214     psParaTypeInteger nData;
215     psParaTypeReal *data;
216 } psPlotInfo;
217 /* struct end */
218
219 #ifdef __cplusplus
220 extern "C" {
221 #endif 
222
223 /* prototype begin */
224
225 /* in psFileInit.c */
226 extern void psFileInit(psFile* ps, psParaTypeInteger mode);
227
228 /* in psFilePage.c */
229 extern void psFilePageStart(psFile* ps, psParaTypeInteger mode);
230 extern void psFilePageEnd(psFile* ps, psParaTypeInteger mode);
231
232 /* in psFileEnd.c */
233 extern void psFileEnd(psFile* ps);
234
235 /* in psFileImage.c */
236 extern void psFileImage            (psFile* ps, psImageInfo im, psParaTypeInteger mode);
237 extern void psFileImageByCircles   (psFile* ps, psImageInfo im, psParaTypeInteger mode);
238 extern void psFileImageCentre      (psFile* ps, psImageInfo im, psParaTypeInteger mode);
239 extern void psFileImageScale       (psFile* ps, psImageInfo im, psParaTypeInteger mode);
240 extern void psFileImageSpaceSet    (psFile* ps, psImageInfo im, psParaTypeInteger mode);
241 extern void psFileImageSpaceRotateSet    (psFile* ps, psImageInfo im, psParaTypeInteger mode);
242 extern void psFileImageSpaceRestore(psFile* ps, psImageInfo im, psParaTypeInteger mode);
243 extern void psFileImageSpaceRotateRestore(psFile* ps, psImageInfo im, psParaTypeInteger mode);
244
245 /* in psFileLine.c */
246 extern void psFileLineWidthSet     (psFile* ps, float lineWidth);
247 extern void psFileLineDraw(psFile* ps, float x1,float y1,float x2,float y2);
248 extern void psFileDendgramLineDraw(psFile* ps, float width,float height1, float height2, float x, float y);
249
250 /* in psFileString.c */
251 extern void psFileStringStatusSet(psFile* ps, char* fontname, double fontsize);
252 extern void psFileStringDefaultStatusSet(psFile* ps);
253 extern void psFileString (psFile* ps, char* message, double x, double y, psParaTypeInteger mode);
254
255 /* in psFileContour.c */
256 extern void psFileContour(psFile* ps, psImageInfo im, psParaTypeInteger mode);
257 /* in psFileCircle.c */
258 extern void psFileCircleCreate(psFile* ps, float cx, float cy, float r, long mode);
259
260
261
262 /* in psFileRead.c */
263 extern void psFileRead(psFile* ps, FILE* fpt, long mode);
264
265
266 /* in psFileUtil.c */
267 extern long psFileIsStartPage(psFile* ps, char* s);
268 extern long psFileIsEndPage(psFile* ps, char* s);
269
270 /* prototype end */
271
272 #ifdef __cplusplus
273 };
274 #endif
275 #endif /* PS_FILE_H */