summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/fdsymbol/fdturnstile.mf
blob: 5e0031ffa7d680dea3e6fdd666a55760c224e022 (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
100
101
102
%
% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
%
% This Font Software is licensed under the SIL Open Font License,
% Version 1.1. This license is in the accompanying file OFL.txt, and
% is also available with a FAQ at: http://scripts.sil.org/OFL
%

for factor = 1, 7/10:
  for alpha = 0, 90, 180, 270:
    beginturnstile(alpha, factor); "turnstile (" & decimal alpha & ")";
      draw_line(foot, foot + (len - line_thickness/2) * dir alpha, false);
      draw_line(foot - spread/2 * dir (alpha + 90), foot + spread/2 * dir (alpha + 90), true);

      if negated:
        stroke_through_arrow(foot + 1/2len * dir alpha, alpha, spread)(75, 75, 110, 110, 75, 75, 110, 110);
      fi
    endchar;
  endfor;
endfor;

for factor = 1, 7/10:
  for alpha = 0, 90, 180, 270:
    beginturnstile(alpha, factor); "double turnstile (" & decimal alpha & ")";
      z1 - z0 = equal_spread * dir (alpha + 90);
      1/2[z0,z1] = foot;

      draw_line(z0, z0 + (len - line_thickness/2) * dir alpha, false);
      draw_line(z1, z1 + (len - line_thickness/2) * dir alpha, false);
      draw_line(foot - spread/2 * dir (alpha + 90), foot + spread/2 * dir (alpha + 90), true);

      if negated:
        stroke_through_arrow(foot + 1/2len * dir alpha, alpha, spread)(75, 75, 110, 110, 75, 75, 110, 110);
      fi
    endchar;
  endfor;
endfor;

for factor = 13/10, 1:
  for alpha = 0, 90, 180, 270:
    beginturnstile(alpha, factor); "bar with turnstile (" & decimal alpha & ")";
      z0 = foot + 3/10turnstile_width * dir alpha;
    
      draw_line(z0, foot + (len - line_thickness/2) * dir alpha, false);
      draw_line(foot - spread/2 * dir (alpha + 90), foot + spread/2 * dir (alpha + 90), true);
      draw_line(z0 - spread/2 * dir (alpha + 90), z0 + spread/2 * dir (alpha + 90), true);

      if negated:
        stroke_through_arrow(z0 + 1/2(len - 3/10turnstile_width) * dir alpha, alpha, spread)(75, 75, 110, 110, 75, 75, 110, 110);
      fi
    endchar;
  endfor;
endfor;

for alpha = 0, 90, 180, 270:
  beginturnstile(alpha, 13/10); "bar with double turnstile (" & decimal alpha & ")";
    z0 = foot + 3/10turnstile_width * dir alpha;
    z2 - z1 = z4 - z3 = equal_spread * dir (alpha + 90);
    1/2[z1,z2] = foot;
    1/2[z3,z4] = z0;
    
    draw_line(z3, z1 + (len - line_thickness/2) * dir alpha, false);
    draw_line(z4, z2 + (len - line_thickness/2) * dir alpha, false);
    draw_line(foot - spread/2 * dir (alpha + 90), foot + spread/2 * dir (alpha + 90), true);
    draw_line(z0 - spread/2 * dir (alpha + 90), z0 + spread/2 * dir (alpha + 90), true);

    if negated:
      stroke_through_arrow(z0 + 1/2(len - 3/10turnstile_width) * dir alpha, alpha, spread)(75, 75, 110, 110, 75, 75, 110, 110);
    fi
  endchar;
endfor;

for alpha = 0, 180:
  beginturnstile(alpha, 13/10); "double bar with turnstile (" & decimal alpha & ")";
    z0 = foot + 3/10turnstile_width * dir alpha;
    z1 = z0 + 3/10turnstile_width * dir alpha;

    draw_line(z1, foot + (len - line_thickness/2) * dir alpha, false);
    draw_line(foot - spread/2 * dir (alpha + 90), foot + spread/2 * dir (alpha + 90), true);
    draw_line(z0 - spread/2 * dir (alpha + 90), z0 + spread/2 * dir (alpha + 90), true);
    draw_line(z1 - spread/2 * dir (alpha + 90), z1 + spread/2 * dir (alpha + 90), true);

    if negated:
      stroke_through_arrow(z1 + 1/2(len - 3/5turnstile_width) * dir alpha, alpha, spread)(75, 75, 110, 110, 75, 75, 110, 110);
    fi
  endchar;
endfor;

for alpha = 0, 180:
  beginturnstile(alpha, 1); "triple turnstile (" & decimal alpha & ")";
    z0 - foot = foot - z1 = equal_spread * dir (alpha + 90);

    draw_line(z0, z0 + (len - line_thickness/2) * dir alpha, false);
    draw_line(foot, foot + (len - line_thickness/2) * dir alpha, false);
    draw_line(z1, z1 + (len - line_thickness/2) * dir alpha, false);
    draw_line(foot - spread/2 * dir (alpha + 90), foot + spread/2 * dir (alpha + 90), true);

    if negated:
      stroke_through_arrow(foot + 1/2len * dir alpha, alpha, spread)(75, 75, 110, 110, 75, 75, 110, 110);
    fi
  endchar;
endfor;