1 |
pam-fi |
1.1 |
%!PS-Adobe-2.0 EPSF-2.0 |
2 |
|
|
%%Title: ClassName |
3 |
|
|
%%Creator: Doxygen |
4 |
|
|
%%CreationDate: Time |
5 |
|
|
%%For: |
6 |
|
|
%Magnification: 1.00 |
7 |
|
|
%%Orientation: Portrait |
8 |
|
|
%%BoundingBox: 0 0 500 408.163 |
9 |
|
|
%%Pages: 0 |
10 |
|
|
%%BeginSetup |
11 |
|
|
%%EndSetup |
12 |
|
|
%%EndComments |
13 |
|
|
|
14 |
|
|
% ----- variables ----- |
15 |
|
|
|
16 |
|
|
/boxwidth 0 def |
17 |
|
|
/boxheight 40 def |
18 |
|
|
/fontheight 24 def |
19 |
|
|
/marginwidth 10 def |
20 |
|
|
/distx 20 def |
21 |
|
|
/disty 40 def |
22 |
|
|
/boundaspect 1.225 def % aspect ratio of the BoundingBox (width/height) |
23 |
|
|
/boundx 500 def |
24 |
|
|
/boundy boundx boundaspect div def |
25 |
|
|
/xspacing 0 def |
26 |
|
|
/yspacing 0 def |
27 |
|
|
/rows 2 def |
28 |
|
|
/cols 1 def |
29 |
|
|
/scalefactor 0 def |
30 |
|
|
/boxfont /Times-Roman findfont fontheight scalefont def |
31 |
|
|
|
32 |
|
|
% ----- procedures ----- |
33 |
|
|
|
34 |
|
|
/dotted { [1 4] 0 setdash } def |
35 |
|
|
/dashed { [5] 0 setdash } def |
36 |
|
|
/solid { [] 0 setdash } def |
37 |
|
|
|
38 |
|
|
/max % result = MAX(arg1,arg2) |
39 |
|
|
{ |
40 |
|
|
/a exch def |
41 |
|
|
/b exch def |
42 |
|
|
a b gt {a} {b} ifelse |
43 |
|
|
} def |
44 |
|
|
|
45 |
|
|
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) |
46 |
|
|
{ |
47 |
|
|
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max |
48 |
|
|
} def |
49 |
|
|
|
50 |
|
|
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) |
51 |
|
|
{ |
52 |
|
|
/str exch def |
53 |
|
|
/boxwidth boxwidth str stringwidth pop max def |
54 |
|
|
} def |
55 |
|
|
|
56 |
|
|
/box % draws a box with text `arg1' at grid pos (arg2,arg3) |
57 |
|
|
{ gsave |
58 |
|
|
2 setlinewidth |
59 |
|
|
newpath |
60 |
|
|
exch xspacing mul xoffset add |
61 |
|
|
exch yspacing mul |
62 |
|
|
moveto |
63 |
|
|
boxwidth 0 rlineto |
64 |
|
|
0 boxheight rlineto |
65 |
|
|
boxwidth neg 0 rlineto |
66 |
|
|
0 boxheight neg rlineto |
67 |
|
|
closepath |
68 |
|
|
dup stringwidth pop neg boxwidth add 2 div |
69 |
|
|
boxheight fontheight 2 div sub 2 div |
70 |
|
|
rmoveto show stroke |
71 |
|
|
grestore |
72 |
|
|
} def |
73 |
|
|
|
74 |
|
|
/mark |
75 |
|
|
{ newpath |
76 |
|
|
exch xspacing mul xoffset add boxwidth add |
77 |
|
|
exch yspacing mul |
78 |
|
|
moveto |
79 |
|
|
0 boxheight 4 div rlineto |
80 |
|
|
boxheight neg 4 div boxheight neg 4 div rlineto |
81 |
|
|
closepath |
82 |
|
|
eofill |
83 |
|
|
stroke |
84 |
|
|
} def |
85 |
|
|
|
86 |
|
|
/arrow |
87 |
|
|
{ newpath |
88 |
|
|
moveto |
89 |
|
|
3 -8 rlineto |
90 |
|
|
-6 0 rlineto |
91 |
|
|
3 8 rlineto |
92 |
|
|
closepath |
93 |
|
|
eofill |
94 |
|
|
stroke |
95 |
|
|
} def |
96 |
|
|
|
97 |
|
|
/out % draws an output connector for the block at (arg1,arg2) |
98 |
|
|
{ |
99 |
|
|
newpath |
100 |
|
|
exch xspacing mul xoffset add boxwidth 2 div add |
101 |
|
|
exch yspacing mul boxheight add |
102 |
|
|
/y exch def |
103 |
|
|
/x exch def |
104 |
|
|
x y moveto |
105 |
|
|
0 disty 2 div rlineto |
106 |
|
|
stroke |
107 |
|
|
1 eq { x y disty 2 div add arrow } if |
108 |
|
|
} def |
109 |
|
|
|
110 |
|
|
/in % draws an input connector for the block at (arg1,arg2) |
111 |
|
|
{ |
112 |
|
|
newpath |
113 |
|
|
exch xspacing mul xoffset add boxwidth 2 div add |
114 |
|
|
exch yspacing mul disty 2 div sub |
115 |
|
|
/y exch def |
116 |
|
|
/x exch def |
117 |
|
|
x y moveto |
118 |
|
|
0 disty 2 div rlineto |
119 |
|
|
stroke |
120 |
|
|
1 eq { x y disty 2 div add arrow } if |
121 |
|
|
} def |
122 |
|
|
|
123 |
|
|
/hedge |
124 |
|
|
{ |
125 |
|
|
exch xspacing mul xoffset add boxwidth 2 div add |
126 |
|
|
exch yspacing mul boxheight 2 div sub |
127 |
|
|
/y exch def |
128 |
|
|
/x exch def |
129 |
|
|
newpath |
130 |
|
|
x y moveto |
131 |
|
|
boxwidth 2 div distx add 0 rlineto |
132 |
|
|
stroke |
133 |
|
|
1 eq |
134 |
|
|
{ newpath x boxwidth 2 div distx add add y moveto |
135 |
|
|
-8 3 rlineto |
136 |
|
|
0 -6 rlineto |
137 |
|
|
8 3 rlineto |
138 |
|
|
closepath |
139 |
|
|
eofill |
140 |
|
|
stroke |
141 |
|
|
} if |
142 |
|
|
} def |
143 |
|
|
|
144 |
|
|
/vedge |
145 |
|
|
{ |
146 |
|
|
/ye exch def |
147 |
|
|
/ys exch def |
148 |
|
|
/xs exch def |
149 |
|
|
newpath |
150 |
|
|
xs xspacing mul xoffset add boxwidth 2 div add dup |
151 |
|
|
ys yspacing mul boxheight 2 div sub |
152 |
|
|
moveto |
153 |
|
|
ye yspacing mul boxheight 2 div sub |
154 |
|
|
lineto |
155 |
|
|
stroke |
156 |
|
|
} def |
157 |
|
|
|
158 |
|
|
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' |
159 |
|
|
{ |
160 |
|
|
/ys exch def |
161 |
|
|
/xe exch def |
162 |
|
|
/xs exch def |
163 |
|
|
newpath |
164 |
|
|
xs xspacing mul xoffset add boxwidth 2 div add |
165 |
|
|
ys yspacing mul disty 2 div sub |
166 |
|
|
moveto |
167 |
|
|
xspacing xe xs sub mul 0 |
168 |
|
|
rlineto |
169 |
|
|
stroke |
170 |
|
|
} def |
171 |
|
|
|
172 |
|
|
% ----- main ------ |
173 |
|
|
|
174 |
|
|
boxfont setfont |
175 |
|
|
1 boundaspect scale |
176 |
|
|
(TrkRunValCut) cw |
177 |
|
|
(PamCut) cw |
178 |
|
|
/boxwidth boxwidth marginwidth 2 mul add def |
179 |
|
|
/xspacing boxwidth distx add def |
180 |
|
|
/yspacing boxheight disty add def |
181 |
|
|
/scalefactor |
182 |
|
|
boxwidth cols mul distx cols 1 sub mul add |
183 |
|
|
boxheight rows mul disty rows 1 sub mul add boundaspect mul |
184 |
|
|
max def |
185 |
|
|
boundx scalefactor div boundy scalefactor div scale |
186 |
|
|
|
187 |
|
|
% ----- classes ----- |
188 |
|
|
|
189 |
|
|
(TrkRunValCut) 0 0 box |
190 |
|
|
(PamCut) 0 1 box |
191 |
|
|
|
192 |
|
|
% ----- relations ----- |
193 |
|
|
|
194 |
|
|
solid |
195 |
|
|
0 0 0 out |
196 |
|
|
solid |
197 |
|
|
1 0 1 in |