-%
-% Draw three brevis notes; the second one shifted down by `shift',
-% the third one by `2 shift'.
-% The other parameters are the same as with `draw_brevis'.
-%
-def draw_triple_brevis (expr exact_center, bwidth, bheight,
- blinethickness, shift) =
- save brevis_width, brevis_height, linethickness;
-
- brevis_width# = bwidth;
- brevis_height# = bheight;
- linethickness# = blinethickness;
-
- save beam_width, beam_height;
- save serif_size, serif_protrude, hole_height;
-
- beam_width# = 1.4 linethickness#;
- hole_height# = 3 linethickness#;
- 2 beam_height# + hole_height# = brevis_height#;
- serif_size# = (hole_height# - linethickness#) / 2;
- serif_protrude# = 1.5 serif_size#;
-
- save xoffs, yoffs;
-
- xoffs# = xpart exact_center;
- yoffs# = ypart exact_center;
-
- define_pixels (xoffs, yoffs);
- define_pixels (brevis_width, brevis_height, linethickness);
- define_pixels (beam_width, beam_height, serif_size, serif_protrude);
-
- z1l = (xoffs, yoffs - linethickness);
- z2r = z1r + serif_size * (1, -1);
- z3l = z2l + (-serif_size, -serif_protrude);
-
- penpos1 (beam_width, 0);
- penpos2 (beam_height, 90);
- penpos3 (beam_width, 180);
-
- z7 = z1 shifted (0, -2 shift);
- z8 = z2 shifted (0, -2 shift);
- z9 = z3 shifted (0, -2 shift);
-
- penpos7 (beam_width, 0);
- penpos8 (beam_height, 90);
- penpos9 (beam_width, 180);
-
- save pat_in, pat_out;
- path pat_in, pat_out;
-
- pat_out := z9r{down}
- .. z9l{up}
- .. z8l{right};
- pat_out := pat_out
- -- reverse pat_out xscaled -1
- shifted (2 xoffs + brevis_width, 0);
- pat_out := pat_out
- -- reverse pat_out yscaled -1
- shifted (0, -2 yoffs)
- -- cycle;
-
- fill pat_out;
-
- pat_in := z1r{down}
- .. z2r{right};
- pat_in := pat_in
- -- reverse pat_in xscaled -1
- shifted (2 xoffs + brevis_width, 0);
- pat_in := pat_in
- -- reverse pat_in yscaled -1
- shifted (0, 2 yoffs)
- -- cycle;
-
- unfill pat_in;
- unfill pat_in shifted (0, -shift);
- unfill pat_in shifted (0, -2 shift);
-
- penlabels (1, 2, 3, 7, 8, 9);
-enddef;
-
-