summaryrefslogtreecommitdiff
path: root/muse2/share/scoreglyphs/feta-original/feta-arrow.mf
diff options
context:
space:
mode:
authorFlorian Jung <flo@windfisch.org>2011-04-17 16:13:16 +0000
committerFlorian Jung <flo@windfisch.org>2011-04-17 16:13:16 +0000
commit92ed9ab3c0b98a1f6ffe6caa812870821583a116 (patch)
tree2162cf3d0477fd32ad8b0776dd78ebd48fae0ced /muse2/share/scoreglyphs/feta-original/feta-arrow.mf
parenta166bf3113c24a02c154bcd94f5f4291d6e675fe (diff)
glyphs are now bundled with muse
Diffstat (limited to 'muse2/share/scoreglyphs/feta-original/feta-arrow.mf')
-rw-r--r--muse2/share/scoreglyphs/feta-original/feta-arrow.mf169
1 files changed, 169 insertions, 0 deletions
diff --git a/muse2/share/scoreglyphs/feta-original/feta-arrow.mf b/muse2/share/scoreglyphs/feta-original/feta-arrow.mf
new file mode 100644
index 00000000..f0c39c78
--- /dev/null
+++ b/muse2/share/scoreglyphs/feta-original/feta-arrow.mf
@@ -0,0 +1,169 @@
+%
+% feta-arrow.mf -- draw arrow heads
+%
+% source file of the GNU LilyPond music typesetter
+%
+% (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+fet_begingroup ("arrowheads");
+
+%
+% To consider: we could put arrow heads at their real Unicode locations.
+%
+
+%
+% Set up paths for upper half of arrow head pointing right.
+% CLOSE_PATH is for a closed arrow, OPEN_PATH is for the open arrow.
+% OPEN_TENSION sets the tension for the part which forms the path in
+% OPEN_PATH.
+%
+
+def set_arrow_paths (expr width, height, open_tension, arrowlinethickness) =
+ save pat, finalpath;
+ save tip_angle_o, tip_angle_c, tip_dir_c, tip_dir_o;
+ save indent;
+ path pat, open_path, close_path;
+ pair tip_dir_o, tip_dir_c;
+
+ pickup pencircle scaled arrowlinethickness;
+
+ indent = linethickness / 2;
+
+ lft x1 = -width;
+ x2 = 0;
+ top y1 = height;
+ y2 = 0;
+
+ z4 = z3;
+ y5 = 0;
+ x5 = x4 + indent;
+
+ pat := z1
+ ..tension open_tension.. z2{right};
+ penpos2 (arrowlinethickness, 90);
+ tip_dir_o := direction 0.0 of pat;
+ tip_angle_o := angle (tip_dir_o);
+ penpos1 (arrowlinethickness, 90 + tip_angle_o);
+ z3 = z1;
+ penpos3 (arrowlinethickness, tip_angle_o);
+
+ open_path := z1r{tip_dir_o}
+ .. z2r{right}
+ .. z2l{left}
+ .. z1l{-tip_dir_o}
+ .. z3l
+ .. cycle;
+
+ pat := z4
+ .. z5{down};
+ tip_dir_c := direction 0.0 of pat;
+ tip_angle_c := angle (tip_dir_c);
+ penpos4 (arrowlinethickness, 90+ tip_angle_c);
+ penpos5 (arrowlinethickness, 0);
+ z6 = z5;
+ penpos6 (arrowlinethickness, 90);
+
+ close_path := z4l{tip_dir_c}
+ .. z5l{down}
+ .. z6l{right}
+ .. z2l{right}
+ .. z2r{left}
+ ..tension open_tension.. z1r{-tip_dir_o}
+ .. z3l
+ .. cycle;
+enddef;
+
+
+fet_beginchar ("open", "open.01");
+ set_char_box (staff_space#, 1.6 linethickness# / 2,
+ 0.5 staff_space#, 0.5 staff_space#);
+ set_arrow_paths (staff_space, 0.5 staff_space,
+ 1.0, 1.6 linethickness);
+ fill open_path;
+ open_path := open_path yscaled -1;
+ fill open_path;
+
+ penlabels (1, 2, 3);
+ penlabels (4, 5, 6);
+fet_endchar;
+
+
+fet_beginchar ("open", "open.0M1");
+ set_char_box (1.6 linethickness# / 2, staff_space#,
+ 0.5 staff_space#, 0.5 staff_space#);
+ set_arrow_paths (staff_space, 0.5 staff_space,
+ 1.0, 1.6 linethickness);
+ fill open_path;
+ open_path := open_path yscaled -1;
+ fill open_path;
+ currentpicture := currentpicture xscaled -1;
+fet_endchar;
+
+
+fet_beginchar ("open", "open.11");
+ set_char_box (.5 staff_space#, .5 staff_space#,
+ 1.0 staff_space#, 1.6 linethickness# / 2);
+ set_arrow_paths (staff_space, 0.5 staff_space,
+ 1.0, 1.6 linethickness);
+ fill open_path;
+ open_path := open_path yscaled -1;
+ fill open_path;
+ currentpicture := currentpicture rotated 90;
+fet_endchar;
+
+
+fet_beginchar ("open", "open.1M1");
+ set_char_box (.5 staff_space#, .5 staff_space#,
+ 1.6 linethickness# / 2, 1.0 staff_space#);
+ set_arrow_paths (staff_space, 0.5 staff_space,
+ 1.0, 1.6 linethickness);
+ fill open_path;
+ open_path := open_path yscaled -1;
+ fill open_path;
+ currentpicture := currentpicture rotated 90;
+ currentpicture := currentpicture yscaled -1;
+fet_endchar;
+
+
+fet_beginchar ("close", "close.01");
+ set_char_box (staff_space#, 0, 0.5 staff_space#, 0.5 staff_space#);
+ set_arrow_paths (staff_space, 0.5 staff_space, 1.5, blot_diameter);
+ fill close_path;
+ close_path := close_path yscaled -1;
+ fill close_path;
+fet_endchar;
+
+
+fet_beginchar ("close", "close.0M1");
+ set_char_box (0, staff_space#, 0.5 staff_space#, 0.5 staff_space#);
+ set_arrow_paths (staff_space, 0.5 staff_space, 1.5, blot_diameter);
+ fill close_path;
+ close_path := close_path yscaled -1;
+ fill close_path;
+ currentpicture := currentpicture xscaled -1;
+fet_endchar;
+
+
+fet_beginchar ("close", "close.11");
+ set_char_box (.5 staff_space#, .5 staff_space#,
+ 1.0 staff_space#, 0.0 staff_space#);
+ set_arrow_paths (staff_space, 0.5 staff_space, 1.5, blot_diameter);
+ fill close_path;
+ close_path := close_path yscaled -1;
+ fill close_path;
+ currentpicture := currentpicture rotated 90;
+fet_endchar;
+
+
+fet_beginchar ("close", "close.1M1");
+ set_char_box (.5 staff_space#, .5 staff_space#,
+ 0.0 staff_space#, 1.0 staff_space#);
+ set_arrow_paths (staff_space, 0.5 staff_space, 1.5, blot_diameter);
+ fill close_path;
+ close_path := close_path yscaled -1;
+ fill close_path;
+ currentpicture := currentpicture rotated -90;
+fet_endchar;
+
+
+fet_endgroup ("arrowheads");