122 |
vc -- vc+vx+vy -- vc+2*vx -- vc+vx-vy -- cycle |
vc -- vc+vx+vy -- vc+2*vx -- vc+vx-vy -- cycle |
123 |
enddef; |
enddef; |
124 |
|
|
125 |
|
vardef arrowedpath(expr p, lx, ly) = |
126 |
|
save vx, vy, vc; |
127 |
|
pair vx, vy, vc; |
128 |
|
vc = point 0 of p; |
129 |
|
vx = direction 0 of p; |
130 |
|
vx := 5 * vx / (abs(vx) + 0.0001); |
131 |
|
vy = ly * vx rotated 90; |
132 |
|
vx := lx*vx; |
133 |
|
vc+vx+vy -- vc -- vc+vx-vy |
134 |
|
enddef; |
135 |
|
|
136 |
vardef inheritpath(expr p) = |
vardef inheritpath(expr p) = |
137 |
save vx, vy, vc; |
save vx, vy, vc; |
138 |
pair vx, vy, vc; |
pair vx, vy, vc; |
193 |
adornassocend(p, multi, role); |
adornassocend(p, multi, role); |
194 |
enddef; |
enddef; |
195 |
|
|
196 |
|
vobtransformthick = .5 pt; |
197 |
|
|
198 |
|
vardef vobtransformfromassoc(expr p, multi, role) = |
199 |
|
save pe; |
200 |
|
pe = savepen; |
201 |
|
pickup pencircle scaled vobtransformthick; |
202 |
|
draw p; |
203 |
|
adornassocend(p, multi, role); |
204 |
|
pickup pe; |
205 |
|
enddef; |
206 |
|
|
207 |
|
vardef vobtransformtoassoc(expr p, multi, role) = |
208 |
|
save pe; |
209 |
|
pe = savepen; |
210 |
|
pickup pencircle scaled vobtransformthick; |
211 |
|
draw arrowedpath(p, 1, 1.3); |
212 |
|
draw p; |
213 |
|
adornassocend(p, multi, role); |
214 |
|
pickup pe; |
215 |
|
enddef; |
216 |
|
|
217 |
vardef inherit(expr p) = |
vardef inherit(expr p) = |
218 |
save ap; |
save ap; |
219 |
path ap; |
path ap; |
232 |
draw ap; |
draw ap; |
233 |
enddef; |
enddef; |
234 |
|
|
235 |
|
vobsubmatchthick = 2pt; |
236 |
|
vardef vobsubmatch(expr p) = |
237 |
|
save pe; |
238 |
|
pe = savepen; |
239 |
|
pickup pencircle scaled vobsubmatchthick; |
240 |
|
draw p; |
241 |
|
draw arrowedpath(reversepath(p), 1.2, 1.4); |
242 |
|
pickup pe; |
243 |
|
enddef; |
244 |
|
|
245 |
|
|
246 |
vardef dep(expr p, ster) = |
vardef dep(expr p, ster) = |
247 |
drawarrow p dashed evenly; |
drawarrow p dashed evenly; |
248 |
addto currentpicture also stereotype(ster) |
addto currentpicture also stereotype(ster) |