]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/mensural-ligature.cc
2003 -> 2004
[lilypond.git] / lily / mensural-ligature.cc
index a60e2fe5ed274cf32751f1a3b1d5edaff118b59a..8eac3a53957aa05dcc57d015bc9e9d78e250bf9b 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2002--2003 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2002--2004 Juergen Reuter <reuter@ipd.uka.de>
 */
 
 #include <math.h>
@@ -28,38 +28,38 @@ brew_flexa (Grob *me,
            bool solid,
            Real width,
            Real thickness,
-           bool add_stem,
-           Direction stem_direction)
+           bool add_cauda,
+           Direction cauda_direction)
 {
   Real staff_space = Staff_symbol_referencer::staff_space (me);
   Real height = 0.6 * staff_space;
   Molecule molecule = Molecule ();
 
-  if (add_stem)
+  if (add_cauda)
     {
       bool consider_interval =
-       stem_direction * interval > 0.0;
+       cauda_direction * interval > 0.0;
 
-      Interval stem_box_x (0, thickness);
-      Interval stem_box_y;
+      Interval cauda_box_x (0, thickness);
+      Interval cauda_box_y;
 
       if (consider_interval)
         {
          Real y_length = max (interval/2.0*staff_space, 1.2*staff_space);
-         stem_box_y = Interval (0, y_length);
+         cauda_box_y = Interval (0, y_length);
        }
       else
-       stem_box_y = Interval (0, staff_space);
+       cauda_box_y = Interval (0, staff_space);
 
       Real y_correction =
-       (stem_direction == UP) ?
+       (cauda_direction == UP) ?
        +0.5*height :
-       -0.5*height - stem_box_y.length();
+       -0.5*height - cauda_box_y.length();
 
-      Box stem_box (stem_box_x, stem_box_y);
-      Molecule stem = Lookup::filledbox (stem_box);
-      stem.translate_axis (y_correction, Y_AXIS);
-      molecule.add_molecule(stem);
+      Box cauda_box (cauda_box_x, cauda_box_y);
+      Molecule cauda = Lookup::filled_box (cauda_box);
+      cauda.translate_axis (y_correction, Y_AXIS);
+      molecule.add_molecule (cauda);
     }
 
   Real slope = (interval / 2.0 * staff_space) / width;
@@ -73,28 +73,28 @@ brew_flexa (Grob *me,
   if (solid)
     {
       Molecule solid_head =
-       Lookup::horizontal_slope (width, corrected_slope, height);
+       Lookup::beam (corrected_slope, width, height, 0.0);
       molecule.add_molecule (solid_head);
     }
   else // outline
     {
       Molecule left_edge =
-       Lookup::horizontal_slope (thickness, corrected_slope, height);
+       Lookup::beam (corrected_slope, thickness, height, 0.0);
       molecule.add_molecule(left_edge);
 
       Molecule right_edge =
-       Lookup::horizontal_slope (thickness, corrected_slope, height);
+       Lookup::beam (corrected_slope, thickness, height, 0.0);
       right_edge.translate_axis (width-thickness, X_AXIS);
       right_edge.translate_axis (corrected_slope * (width-thickness), Y_AXIS);
       molecule.add_molecule(right_edge);
 
       Molecule bottom_edge =
-       Lookup::horizontal_slope (width, corrected_slope, thickness);
+       Lookup::beam (corrected_slope, width, thickness, 0.0);
       bottom_edge.translate_axis (-0.5*height, Y_AXIS);
       molecule.add_molecule (bottom_edge);
 
       Molecule top_edge =
-       Lookup::horizontal_slope (width, corrected_slope, thickness);
+       Lookup::beam (corrected_slope, width, thickness, 0.0);
       top_edge.translate_axis (+0.5*height, Y_AXIS);
       molecule.add_molecule (top_edge);
     }
@@ -117,7 +117,7 @@ add_ledger_lines (Grob *me, Molecule *out, int pos, Real offs,
                                     hd[RIGHT] + right_ledger_protusion);
       Molecule ledger_lines =
        Note_head::brew_ledger_lines (me, pos, interspaces,
-                                     l_extents,
+                                     l_extents,0,
                                      ledger_take_space);
       ledger_lines.translate_axis (offs, Y_AXIS);
       out->add_molecule (ledger_lines);
@@ -143,47 +143,15 @@ internal_brew_primitive (Grob *me, bool ledger_take_space)
   Real staff_space = Staff_symbol_referencer::staff_space (me);
   if (primitive & MLP_ANY)
     {
-      SCM thickness_scm = me->get_grob_property ("thickness");
-      if (thickness_scm != SCM_EOL)
-       {
-         thickness = gh_scm2double (thickness_scm);
-       }
-      else
-       {
-         programming_error (_f ("Mensural_ligature:"
-                                "thickness undefined on flexa %d; assuming 1.4",
-                                primitive));
-         thickness = 1.4 * me->get_paper ()->get_realvar (ly_symbol2scm ("linethickness"));
-       }
+      thickness = robust_scm2double ( me->get_grob_property ("thickness"), .14);
     }
 
   if (primitive & MLP_FLEXA)
     {
-      SCM delta_pitch_scm = me->get_grob_property ("delta-pitch");
-      if (delta_pitch_scm != SCM_EOL)
-       {
-         delta_pitch = gh_scm2int (delta_pitch_scm);
-       }
-      else
-       {
-         programming_error (_f ("Mensural_ligature:"
-                                "delta-pitch undefined on flexa %d; assuming 0",
-                                primitive));
-         delta_pitch = 0;
-       }
+      delta_pitch = robust_scm2int (me->get_grob_property ("delta-pitch"),
+                                   0);
 
-      SCM flexa_width_scm = me->get_grob_property ("flexa-width");
-      if (flexa_width_scm != SCM_EOL)
-       {
-         flexa_width = gh_scm2double (flexa_width_scm);
-       }
-      else
-       {
-         programming_error (_f ("Mensural_ligature:"
-                                "flexa-width undefined on flexa %d; assuming 2.0",
-                                primitive));
-         flexa_width = 2.0 * staff_space;
-       }
+      flexa_width = robust_scm2double (me->get_grob_property ("flexa-width"), 2.0 * staff_space);
     }
 
   switch (primitive)
@@ -228,10 +196,10 @@ internal_brew_primitive (Grob *me, bool ledger_take_space)
       Interval y_extent = (join_left > 0) ?
        Interval (-join_left * 0.5 * staff_space, 0) :
        Interval (0, -join_left * 0.5 * staff_space);
-      Box stem_box (x_extent, y_extent);
+      Box join_box (x_extent, y_extent);
 
-      Molecule stem = Lookup::roundfilledbox (stem_box, blotdiameter);
-      out.add_molecule (stem);
+      Molecule join = Lookup::round_filled_box (join_box, blotdiameter);
+      out.add_molecule (join);
     }
 
   int pos = (int)rint (Staff_symbol_referencer::get_position (me));