X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmensural-ligature.cc;h=e8df8353a7dec2944b43b2b273d90f9290b2bf65;hb=50a19de991aac1e93d1ff2cda6b30929661e036d;hp=574a38ca2ace76ac359d16189dada1d9550b130b;hpb=21497b2395aa5cc9c7b53942802763d49202a646;p=lilypond.git diff --git a/lily/mensural-ligature.cc b/lily/mensural-ligature.cc index 574a38ca2a..e8df8353a7 100644 --- a/lily/mensural-ligature.cc +++ b/lily/mensural-ligature.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 2002 Juergen Reuter + (c) 2002--2003 Juergen Reuter */ #include @@ -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) @@ -217,21 +206,21 @@ internal_brew_primitive (Grob *me, bool ledger_take_space) return Molecule (); } - SCM join_left_scm = me->get_grob_property ("join-left"); + SCM join_left_scm = me->get_grob_property ("join-left-amount"); if (join_left_scm != SCM_EOL) { 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)); @@ -262,5 +251,5 @@ Mensural_ligature::brew_molecule (SCM) ADD_INTERFACE (Mensural_ligature, "mensural-ligature-interface", "A mensural ligature", - "delta-pitch flexa-width head-width join-left " + "delta-pitch flexa-width head-width join-left join-left-amount " "ligature-primitive-callback primitive thickness");