summaryrefslogtreecommitdiff
path: root/language/vispeech/visglides.mf
blob: 49d8d6ba302ce5beb27a47cc3606728f36219833 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
% Visible speech glides
%%%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(incr ccode,3/2curve#+2sidebar#,2/3loop_h#,0);
pickup hrazorpen;
x.stem=1/2[lside,rside];
draw (x.stem,0)--(x.stem,h);
pickup smallserifpen;
bot y1=0;
top y2=h;
width_serif(y1);
width_serif(y2);
endchar;

beginchar(incr ccode,9/4curve#+2sidebar#,3/4loop_h#,0);
pickup hrazorpen;
fix_height;
x.stem=1/2[lside,rside];
draw (x.stem,0)--(x.stem,h);
pickup penrazor scaled thin rotated 90;  % thick bar here.
draw (lside,1/2h)--(rside,1/2h);
endchar;

beginchar(incr ccode,3/2curve#+2sidebar#,loop_h#,0);
pickup hrazorpen;
fix_height;
y1=h;
y4=0;
y1-y2=y3-y4;
y2-y3=3/2(y1-y2);
x.stem=1/2[lside,rside];
draw (x.stem,y1)--(x.stem,y2);
draw (x.stem,y3)--(x.stem,y4);
pickup smallserifpen;
top y5=y1;
bot y6=y4;
width_serif(y5);
width_serif(y6);
pickup pencircle scaled 2/3fine;
lft x7=lside;
rt x8=rside;
draw (x8,h/2){up}..(x.stem,y2){left}..(x7,h/2){down}..
	(x.stem,y3){right}..cycle;
endchar;

for ud=1,-1:
for b=0,1:
beginchar(incr ccode,2curve#+2sidebar#,
	2/3loop_h# if ud>0: -1/2curve# fi,
	if ud>0: 1/2curve# else: 0 fi);
pickup pencircle xscaled thin yscaled fine;
ud*y3-ud*y1=5/4curve;
if ud>0: bot else: top fi y1=if ud>0: -d+ else: h- fi 1/3fine;
y4=if ud>0: h else: 0 fi;
y2=1/2[y3,y1];
if ud>0: rt else: lft fi x1=if ud>0: rside else: lside fi;
if ud>0: lft else: rt fi x2=if ud>0: lside else: rside fi;
x3=x4=1/2[lside,rside];
cutdraw z1..(x3,y1-ud*1/3fine){ud*left}..z2{ud*up}...z3{ud*right}&z3--z4;
pickup smallserifpen;
if ud>0: top else: bot fi y5=if ud>0: h else: 0 fi;
draw (lside,y5)--(rside,y5);
if b=1:
  if ud>0: bot else: top fi y6=y3 + ud*fine;
  draw (lside,y6)--(rside,y6);
fi
labels (1,2,3,4,5);
endchar;
endfor; endfor;

for ud=1,-1:
for b=0,1:
beginchar(incr ccode,2curve#+2sidebar#,
	2/3loop_h# if ud<0: -1/2curve# fi,
	if ud<0: 1/2curve# else: 0 fi);
if not odd (rside-lside): w:=w+1 fi;
pickup finepen;
lft x1=lside;
rt x2=rside;
y1=y2=if ud>0: h else: -d fi;
y3=1/2[-d,h];
x4=x3=1/2[lside,rside];
pickup thinpen;
if ud>0: bot else: top fi y4=if ud>0: 0 else: h fi;
draw z3--z4; cutoff(z3,ud*90);
cullit;
pickup finepen;
cutdraw z1{ud*down}..z3..{ud*up}z2;
pickup thinpen;  % redo the cutting, or there are rounding bugs.
cutoff(z1,ud*90);
cutoff(z2,ud*90);
pickup smallserifpen;
if ud>0: bot else: top fi y5=if ud>0: 0 else: h fi;
draw (lside,y5)--(rside,y5);
if b=1:
  if ud>0: top else: bot fi y6=y3 - ud*fine;
  draw (lside,y6)--(rside,y6);
fi
endchar;
endfor; endfor;