OSDN Git Service

Modified: doc
[eos/optional.git] / doc / Objects / psFile.html
1 <HR>
2 <A NAME="Information">
3 <H2>Information from source codes</H2>
4 </A>
5 <PRE>
6 </PRE>
7 <HR>
8 <A NAME="include">
9 <H2>psFile.h</H2>
10 </A>
11 <PRE>
12 #ifndef PS_FILE_H
13 #define PS_FILE_H
14 /*
15 * PostScript File IO utility Header File
16 *   Edited by Tac
17 *   1992.10
18 */
19 #include "File.h"
20
21 /* constant begin */
22 #define MAX_STRING_LENGTH 256
23                              
24 #define PS_FILE_STATUS_ERROR     (0)
25 #define PS_FILE_STATUS_OK        (1)
26 /* constant end */
27
28 /* struct begin */
29 typedef long   psParaTypeInteger;
30 typedef double psParaTypeReal;
31
32 typedef struct psInfo {
33     psParaTypeInteger prologInfoNum;
34     char**            prologInfo;
35         char              label[MAX_STRING_LENGTH];
36     psParaTypeInteger page;
37     psParaTypeInteger status;
38 } psInfo;
39
40 typedef struct psPageInfo psPageInfo;
41
42 struct psPageInfo {
43         psParaTypeInteger page;
44         psParaTypeInteger byte;
45         long start;
46         long end;
47         psPageInfo* next;
48 };
49
50 typedef struct psFile {
51         FILE* fpt;
52         psInfo info;
53         long headEnd;
54         psPageInfo* current;
55         psPageInfo* top;
56         psPageInfo* end;
57         long byte;
58 } psFile;
59
60 /* struct end */
61
62 /* constant begin */
63 #define PROLOG_STRING_NUM    (11)
64
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)
75
76 typedef enum psImageScaleMode {
77     psImageScaleModeBottomLeft = 1,
78     psImageScaleModeCenter     = 2
79 } psImageScaleMode;
80
81 #define PS_IMAGE_CENTRE_LINE_WIDTH  (0.1)
82 #define PS_IMAGE_CENTRE_MARK_LENGTH (0.01)
83
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)
96
97 #define psContourMode_DifferentLineWidthContour (0x01)
98 #define psContourMode_SameLineWidthContour      (0x02)
99
100 /* constant end */
101
102 /* struct begin */
103 typedef struct psImageInfo {
104         /* For Image Space */
105     psParaTypeReal scaleX;
106     psParaTypeReal scaleY;
107     psParaTypeReal translateX;
108     psParaTypeReal translateY;
109     psParaTypeReal angle;
110
111         /* Image Size */
112     psParaTypeInteger width;
113     psParaTypeInteger height;
114     psParaTypeInteger section;
115         /* For Contour */
116     psParaTypeInteger bps;
117     psParaTypeInteger nContour;
118     psParaTypeReal*   contourLevel;
119         /* For Density Image */
120     unsigned char*    image;
121         /* For Contour */
122     float*            floatImage;
123         psParaTypeReal    contourLineColorChange;
124         psParaTypeReal    contourLineWidthStart;
125         psParaTypeReal    contourLineWidthStep;
126
127         /* For 3D Contour */
128         psParaTypeReal    eyeX;   /* Eye Position */
129         psParaTypeReal    eyeY;
130         psParaTypeReal    eyeZ;
131         psParaTypeReal    pointX; /* Projection Surface Position */
132         psParaTypeReal    pointY; /* Surface Normal: (position - eye)  */
133         psParaTypeReal    pointZ;
134
135         /* For Colour */
136         psParaTypeInteger flagRGBColor; 
137         psParaTypeInteger flagRGBGradientColor; 
138         psParaTypeReal Red;
139         psParaTypeReal Green;
140         psParaTypeReal Blue;
141         psParaTypeReal RedFirst;
142         psParaTypeReal GreenFirst;
143         psParaTypeReal BlueFirst;
144         psParaTypeReal RedLast;
145         psParaTypeReal GreenLast;
146         psParaTypeReal BlueLast;
147         psParaTypeInteger flagHSBColor; 
148         psParaTypeInteger flagHSBGradientColor; 
149         psParaTypeReal Hue;
150         psParaTypeReal Saturation;
151         psParaTypeReal Brightness;
152         psParaTypeReal HueFirst;
153         psParaTypeReal SaturationFirst;
154         psParaTypeReal BrightnessFirst;
155         psParaTypeReal HueLast;
156         psParaTypeReal SaturationLast;
157         psParaTypeReal BrightnessLast;
158
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;
182
183         /* For Circle */
184         psParaTypeReal CircleRadius;
185     long              dummy;
186 } psImageInfo;
187 /* struct end */
188
189 /* constant begin */
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)
194
195 #define PS_LINE_CIRCLE_MODE (0)
196 #define PS_FILL_WHITE_CIRCLE_MODE (1)
197 #define PS_FILL_BLACK_CIRCLE_MODE (2)
198
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)
202 /* constant end */
203
204 /* struct begin */
205 typedef struct psPlotInfo {
206     psParaTypeReal scaleX;
207     psParaTypeReal scaleY;
208     psParaTypeReal translateX;
209     psParaTypeReal translateY;
210
211     psParaTypeReal dX;
212     psParaTypeReal dXValue;
213     psParaTypeReal minX;
214     psParaTypeReal centreX;
215     psParaTypeReal maxX;
216     char*          labelX;
217
218     psParaTypeReal dY;
219     psParaTypeReal dYValue;
220     psParaTypeReal minY;
221     psParaTypeReal centreY;
222     psParaTypeReal maxY;
223     char*          labelY;
224
225     psParaTypeInteger nData;
226     psParaTypeReal *data;
227 } psPlotInfo;
228 /* struct end */
229
230 #ifdef __cplusplus
231 extern "C" {
232 #endif 
233
234 /* prototype begin */
235
236 /* in psFileInit.c */
237 extern void psFileInit(psFile* ps, psParaTypeInteger mode);
238
239 /* in psFilePage.c */
240 extern void psFilePageStart(psFile* ps, psParaTypeInteger mode);
241 extern void psFilePageEnd(psFile* ps, psParaTypeInteger mode);
242
243 /* in psFileEnd.c */
244 extern void psFileEnd(psFile* ps);
245
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);
255
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);
260
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);
265
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);
270
271
272
273 /* in psFileRead.c */
274 extern void psFileRead(psFile* ps, FILE* fpt, long mode);
275
276
277 /* in psFileUtil.c */
278 extern long psFileIsStartPage(psFile* ps, char* s);
279 extern long psFileIsEndPage(psFile* ps, char* s);
280
281 /* prototype end */
282
283 #ifdef __cplusplus
284 };
285 #endif
286 #endif /* PS_FILE_H */
287 </PRE>