]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/mensural-ligature.cc
* lily/lily-guile.cc (robust_scm2double): new function. Use throughout.
[lilypond.git] / lily / mensural-ligature.cc
index 9b58b03b8ca68ead74e0e3215d5ea6b808b8468e..e8df8353a7dec2944b43b2b273d90f9290b2bf65 100644 (file)
@@ -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);
     }
@@ -153,7 +153,7 @@ internal_brew_primitive (Grob *me, bool ledger_take_space)
          programming_error (_f ("Mensural_ligature:"
                                 "thickness undefined on flexa %d; assuming 1.4",
                                 primitive));
-         thickness = 1.4 * me->get_paper ()->get_var ("linethickness");
+         thickness = 1.4 * me->get_paper ()->get_realvar (ly_symbol2scm ("linethickness"));
        }
     }
 
@@ -172,18 +172,7 @@ internal_brew_primitive (Grob *me, bool ledger_take_space)
          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)
@@ -223,15 +212,15 @@ internal_brew_primitive (Grob *me, bool ledger_take_space)
       int join_left = gh_scm2int (join_left_scm);
       if (!join_left)
        programming_error (_f ("Mensural_ligature: (join_left == 0)"));
-      Real blotdiameter = (me->get_paper ()->get_var ("blotdiameter"));
+      Real blotdiameter = (me->get_paper ()->get_realvar (ly_symbol2scm ("blotdiameter")));
       Interval x_extent = Interval (0, thickness);
       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));