]> git.donarmstrong.com Git - lilypond.git/commitdiff
* lily/system-start-delimiter.cc (staff_bracket): use glyphs.
authorhanwen <hanwen>
Sat, 28 May 2005 00:47:04 +0000 (00:47 +0000)
committerhanwen <hanwen>
Sat, 28 May 2005 00:47:04 +0000 (00:47 +0000)
* mf/feta-generic.mf: include feta-haak.

* mf/feta-haak.mf: rewrite. Make separate glyphs for the tips

ChangeLog
lily/include/system-start-delimiter.hh
lily/system-start-delimiter.cc
mf/GNUmakefile
mf/feta-generic.mf
mf/feta-haak.mf
mf/feta-test-generic.mf
scm/define-grobs.scm
stepmake/stepmake/metafont-rules.make

index b84e4432ba85e6224a60cba6591e8c7d69f8f774..4512d6b1683b557c394d5899bb313f8ec51a1aab 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2005-05-28  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
+       * lily/system-start-delimiter.cc (staff_bracket): use glyphs.
+
+       * mf/feta-generic.mf: include feta-haak.
+
+       * mf/feta-haak.mf: rewrite. Make separate glyphs for the tips 
+
        * scm/framework-ps.scm (write-preamble): only load fonts if their
        filename is a string. 
 
index 8468de947bff13f402be29a7a028ba2b4c763fea..44906c9a1e8268ced51306a63c6bbf4c16f947e0 100644 (file)
@@ -24,6 +24,7 @@ public:
   DECLARE_SCHEME_CALLBACK (after_line_breaking, (SCM));
   static void try_collapse (Grob *);
   static Stencil staff_bracket (Grob *, Real);
+  static Stencil old_staff_bracket (Grob *, Real);
   static Stencil staff_brace (Grob *, Real);
   static Stencil simple_bar (Grob *, Real);
 };
index 972b264b5dd136225b52011d3f568fb288cf4a8a..ed150d38541147bb603d4f2591aeece30f31d6c3 100644 (file)
@@ -20,7 +20,7 @@
 #include "item.hh"
 
 Stencil
-System_start_delimiter::staff_bracket (Grob *me, Real height)
+System_start_delimiter::old_staff_bracket (Grob *me, Real height)
 {
   Real arc_height = scm_to_double (me->get_property ("arch-height"));
 
@@ -58,6 +58,31 @@ System_start_delimiter::staff_bracket (Grob *me, Real height)
   return mol;
 }
 
+
+
+Stencil
+System_start_delimiter::staff_bracket (Grob *me, Real height)
+{
+  Font_metric *fm = Font_interface::get_default_font (me);
+  Drul_array<Stencil> tips (fm->find_by_name ("brackettips.down"),
+                           fm->find_by_name ("brackettips.up"));
+
+  Real thickness = robust_scm2double (me->get_property ("thickness"), 0.25);
+  
+  Stencil bracket = Lookup::filled_box (Box (Interval (0, thickness),
+                                            Interval (-height/2, height/2)));
+
+  Direction d = DOWN;
+  do
+    {
+      bracket.add_at_edge (Y_AXIS, d, tips[d], 0.0, 0.0);
+    }
+  while (flip (&d) != DOWN); 
+
+  return bracket;
+}
+
+
 Stencil
 System_start_delimiter::simple_bar (Grob *me, Real h)
 {
index 58ef0ec1d1c2508a80f406a2b45c5e8475795f21..8710f18b42e689e2bd0bab3c8fcb8af3eb6acba9 100644 (file)
@@ -5,7 +5,10 @@ LOCALSTEPMAKE_TEMPLATES=lilypond
 
 include $(depth)/make/stepmake.make 
 
-AF_FILES = $(wildcard *.af) 
+AF_FILES = $(wildcard *.af)
+
+# hangs on feta23
+MFTRACE_FLAGS=  # --simplify
 
 EXTRA_DIST_FILES += README feta.tex
 
index 0afbcdd9a0710342fbebdf589177c1e93d8a4932..1d75e0a5c07a57469ca3acfdb712f16f8c4fd80a 100644 (file)
@@ -36,6 +36,7 @@ if test = 0:
        input feta-klef;
        input feta-timesig;
        input feta-pendaal;
+       input feta-haak;
        input feta-accordion;
 else:
        input feta-test-generic.mf;
index 9fb5c2b163d79413ba27bf9d996129b00b92ffc3..6729a2e90f67741bd17a16a017a1dc8787446f81 100644 (file)
@@ -1,74 +1,75 @@
-input feta-macros;
-input feta-params;
-input feta-autometric;
 
-save code;
-code :=0;
+fet_begingroup ("brackettips");
 
+def draw_bracket(expr thick_sharp, width_sharp, updown) =
+begingroup;
+       save p, thin, thick, flattening, width;
+       path p;
+       pair tipdir;
 
-def draw_bracket( expr height_sharp, width_sharp) = 
-       save alpha, height, p, width, thin, thick;
-       height# := height_sharp;
-       width#  := width_sharp;
+       flattening = 0.70;
+       thick# := thick_sharp;
+       width# := width_sharp;
+
+       define_pixels (thick, width);
+       if updown = 1:
+               set_char_box (0, width#,
+                             .5 thick# , flattening * width#);
+       else:
+               set_char_box (0, width#,
+                               flattening * width#, .5 thick#);
+       fi;
 
-       beginchar(incr code, width#, height#/2, height#/2);
-       define_pixels (height, width);
        thin = 2 linethickness;
-       thick = .5 staff_space;
        
        pickup pencircle scaled thin;
-       lft x1 = 0;
-       top y1 = height/2 + thick + thin;
-
-       x2 = x1;
-       z2 = (x1, 0);
-       rt x3 = thick;
-       y3 = y2;
-
-       x4 = x3;
-       bot y4 = y1 - thick + thin/2;
-
-       alpha = 50;
-       z5 = z1 + (width, 3/4staff_space);
-
-       % need silly z6?
-       % strange turning path when invoked via MakeTeXTFM...?
-       % mf "\\mode:=ljfour; mag:=1; scrollmode; input feta-brackets16"
-       z6 = z5 - (0, thin/16);
-
-       filldraw z5{dir(180+alpha)}..{left}z1--z2--z3..{up}z4{right}
-               ..{dir(alpha)}z6..cycle;
-
-%      % try control points to do this in ps
-%      currentpicture:=currentpicture shifted (-x5/2,(x5-x4)/2);
-%
-%      s7 := 0.4*(x5-x1);
-%      x7 = x1 + s7 * cosd(0);
-%      y7 = y1 + s7 * sind(0);
-%
-%      s8 := -0.25*(x5-x1);
-%      x8 := x5 + s8 * cosd(alpha);
-%      y8 := y5 + s8 * sind(alpha);
-%
-%      s9 := 0.5*(x5-x4);
-%      x9 := x4 + s9 * cosd(0);
-%      y9 := y4 + s9 * sind(0);
-%
-%      s10 := -0.15*(x5-x4);
-%      x10 := x5 + s10 * cosd(alpha);
-%      y10 := y5 + s10 * sind(alpha);
-%
-%      draw z5..controls z8 and z7..z1--z2--z3..{up}z4
-%              ..controls z9 and z10..z6..cycle;
-%
-%      labels(1,2,3,4,5,6,7,8,9,10);
-       addto currentpicture also currentpicture yscaled -1;
-endchar;
+
+
+       penpos3(thin, 0);
+       penpos4(thin, 90);
+
+       z3 = z4;
+
+       top y3 = 0.5 thick;
+       lft x3 = 0.0;
+       x1 = x3l;
+       y1 = -0.5 thick;
+       
+       z5 = .5 [z1, z3] + (width - thin, flattening * width - .5 thin);
+       p := .5 [z1, z3]{right} .. z5;
+       tipdir := (direction 1 of p);
+
+       penpos5 (thin, angle (tipdir));
+       penpos6 (thin, 90 + angle (tipdir));
+
+       z5 = z6;
+
+       z7 = z1 + (thick,0); 
+
+
+       pickup pencircle scaled 1;
+
+       % draw p;
+       fill (z1{up} .. z3l{up}
+               .. z4r{right} .. z6r{tipdir}
+               .. z5r .. z6l{-tipdir}
+               .. z7{left} .. z1{left} & cycle)
+                yscaled updown;
+
+
+       if updown = 1:
+               penlabels (1,2,3,4,5,6,7);
+       fi;
+
+endgroup;
 enddef;
 
-% for h :=  staffsize# step 1 pt# until (1.1 * staffsize#):
-for h :=  staffsize# step 1 pt# until (7 * staffsize#):
-       draw_bracket(h, 2staff_space# );
-endfor
+fet_beginchar ("bracket tip up", "up");
+   draw_bracket (0.45 staff_space#, 2.0 staff_space#, 1);
+fet_endchar;
+
+fet_beginchar ("bracket tip down", "down"); 
+   draw_bracket (0.45 staff_space#, 2.0 staff_space#, -1);
+fet_endchar;
 
+fet_endgroup ("brackettips");
index 60e9a222fcd3a67b5f1cb3a9b57f14d0b82b3ef0..9af341967b9a06f6b01a551655721d556e006267 100644 (file)
@@ -4,13 +4,14 @@
 %
 
 %input feta-eindelijk;
-input feta-toevallig;
+%input feta-toevallig;
 %input feta-puntje;
-%input feta-bolletjes; 
+input feta-bolletjes;  
 %input feta-schrift;
 %input feta-banier;
 %      input feta-slag;
-input feta-klef;
+%input feta-klef;
+input feta-haak;
 %      input feta-haak;
 %input feta-timesig;
 %input feta-pendaal;
index f8a92c1939437fc91e9e780678aebeb54cd322d9..e745f4a9c3c95aed20798a634bf038b86646717e 100644 (file)
        (arch-thick . 0.25)
        (arch-width . 1.5)
        (collapse-height . 1)
-       (thickness . 0.25)
+       (thickness . 0.45)
        (meta . ((interfaces . (system-start-delimiter-interface spanner-interface))))
        ))
 
index 585da6669f63955e0a5fc76455800e87e7e11f6a..d1bbc418d56fa56790e9aca225bd2f56b6e27d3d 100644 (file)
@@ -31,7 +31,7 @@ $(outdir)/%.$(XPM_RESOLUTION)pk: $(outdir)/%.$(XPM_RESOLUTION)gf
 
 MFTRACE_FORMATS = pfa pfb svg
 $(outdir)/%.pfb $(outdir)/%.svg $(outdir)/%.pfa: %.mf
-       $(MFTRACE) $(MFTRACE_FLAGS) --simplify -I $(outdir)/ --formats=pfa,pfb,svg $(basename $(@F))
+       $(MFTRACE) $(MFTRACE_FLAGS) -I $(outdir)/ --formats=pfa,pfb,svg $(basename $(@F))
 #      -mv $(MFTRACE_FORMATS:%=$(basename $(@F).%)) $(outdir)
        -mv $(basename $(@F)).pfa $(outdir)
        -mv $(basename $(@F)).pfb $(outdir)