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 121.212121
|
---|
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 4.125000 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 2 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 | (pacpus::VislabComponent) cw
|
---|
177 | (QObject) cw
|
---|
178 | (ComponentBase) cw
|
---|
179 | /boxwidth boxwidth marginwidth 2 mul add def
|
---|
180 | /xspacing boxwidth distx add def
|
---|
181 | /yspacing boxheight disty add def
|
---|
182 | /scalefactor
|
---|
183 | boxwidth cols mul distx cols 1 sub mul add
|
---|
184 | boxheight rows mul disty rows 1 sub mul add boundaspect mul
|
---|
185 | max def
|
---|
186 | boundx scalefactor div boundy scalefactor div scale
|
---|
187 |
|
---|
188 | % ----- classes -----
|
---|
189 |
|
---|
190 | (pacpus::VislabComponent) 0.500000 0.000000 box
|
---|
191 | (QObject) 0.000000 1.000000 box
|
---|
192 | (ComponentBase) 1.000000 1.000000 box
|
---|
193 |
|
---|
194 | % ----- relations -----
|
---|
195 |
|
---|
196 | solid
|
---|
197 | 0 0.500000 0.000000 out
|
---|
198 | solid
|
---|
199 | 0.000000 1.000000 1.000000 conn
|
---|
200 | solid
|
---|
201 | 1 0.000000 1.000000 in
|
---|
202 | solid
|
---|
203 | 1 1.000000 1.000000 in
|
---|