]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/mensural-ligature.cc
* scm/lily.scm (postscript->png): new function
[lilypond.git] / lily / mensural-ligature.cc
index f7b6927f28bc86ddfab0fa4df39c925dfdea1619..3d344a9a0e3a4bc8548564a175c183c94271eb62 100644 (file)
@@ -14,7 +14,7 @@
 #include "lookup.hh"
 #include "staff-symbol-referencer.hh"
 #include "note-head.hh"
-#include "paper-def.hh"
+#include "output-def.hh"
 #include "warn.hh"
 
 /*
@@ -33,7 +33,7 @@ brew_flexa (Grob *me,
 {
   Real staff_space = Staff_symbol_referencer::staff_space (me);
   Real height = 0.6 * staff_space;
-  Stencil stencil = Stencil ();
+  Stencil stencil;
 
   if (add_cauda)
     {
@@ -102,30 +102,8 @@ brew_flexa (Grob *me,
   return stencil;
 }
 
-void
-add_ledger_lines (Grob *me, Stencil *out, int pos, Real offs,
-                 bool ledger_take_space)
-{
-  int interspaces = Staff_symbol_referencer::line_count (me)-1;
-  if (abs (pos) - interspaces > 1)
-    {
-      Interval hd = out->extent (X_AXIS);
-      Real left_ledger_protusion = hd.length ()/4;
-      Real right_ledger_protusion = left_ledger_protusion;
-
-      Interval l_extents = Interval (hd[LEFT] - left_ledger_protusion,
-                                    hd[RIGHT] + right_ledger_protusion);
-      Stencil ledger_lines =
-       Note_head::brew_ledger_lines (me, pos, interspaces,
-                                     l_extents,0,
-                                     ledger_take_space);
-      ledger_lines.translate_axis (offs, Y_AXIS);
-      out->add_stencil (ledger_lines);
-    }
-}
-
 Stencil
-internal_brew_primitive (Grob *me, bool ledger_take_space)
+internal_brew_primitive (Grob *me)
 {
   SCM primitive_scm = me->get_property ("primitive");
   if (primitive_scm == SCM_EOL)
@@ -136,7 +114,7 @@ internal_brew_primitive (Grob *me, bool ledger_take_space)
     }
 
   Stencil out;
-  int primitive = gh_scm2int (primitive_scm);
+  int primitive = ly_scm2int (primitive_scm);
   int delta_pitch = 0;
   Real thickness = 0.0;
   Real flexa_width = 0.0;
@@ -188,10 +166,10 @@ internal_brew_primitive (Grob *me, bool ledger_take_space)
   SCM join_left_scm = me->get_property ("join-left-amount");
   if (join_left_scm != SCM_EOL)
     {
-      int join_left = gh_scm2int (join_left_scm);
+      int join_left = ly_scm2int (join_left_scm);
       if (!join_left)
        programming_error (_f ("Mensural_ligature: (join_left == 0)"));
-      Real blotdiameter = (me->get_paper ()->get_realvar (ly_symbol2scm ("blotdiameter")));
+      Real blotdiameter = (me->get_paper ()->get_dimension (ly_symbol2scm ("blotdiameter")));
       Interval x_extent = Interval (0, thickness);
       Interval y_extent = (join_left > 0) ?
        Interval (-join_left * 0.5 * staff_space, 0) :
@@ -202,12 +180,10 @@ internal_brew_primitive (Grob *me, bool ledger_take_space)
       out.add_stencil (join);
     }
 
-  int pos = (int)rint (Staff_symbol_referencer::get_position (me));
-  add_ledger_lines (me, &out, pos, 0, ledger_take_space);
+  int pos = Staff_symbol_referencer::get_rounded_position (me);
   if (primitive & MLP_FLEXA)
     {
       pos += delta_pitch;
-      add_ledger_lines (me, &out, pos, 0.5*delta_pitch, ledger_take_space);
     }
 
   return out;
@@ -218,7 +194,7 @@ SCM
 Mensural_ligature::brew_ligature_primitive (SCM smob)
 {
   Grob *me = unsmob_grob (smob);
-  return internal_brew_primitive (me, false).smobbed_copy ();
+  return internal_brew_primitive (me).smobbed_copy ();
 }
 
 MAKE_SCHEME_CALLBACK (Mensural_ligature, print, 1);