X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmensural-ligature.cc;h=f7b6927f28bc86ddfab0fa4df39c925dfdea1619;hb=3e958aa906558831211e954cc2648666c85d39b7;hp=8eac3a53957aa05dcc57d015bc9e9d78e250bf9b;hpb=7e72a1e50e94a7f9738d62599de79fe7745f600c;p=lilypond.git diff --git a/lily/mensural-ligature.cc b/lily/mensural-ligature.cc index 8eac3a5395..f7b6927f28 100644 --- a/lily/mensural-ligature.cc +++ b/lily/mensural-ligature.cc @@ -10,7 +10,7 @@ #include "item.hh" #include "mensural-ligature.hh" #include "font-interface.hh" -#include "molecule.hh" +#include "stencil.hh" #include "lookup.hh" #include "staff-symbol-referencer.hh" #include "note-head.hh" @@ -22,7 +22,7 @@ * * TODO: move this function to class Lookup? */ -Molecule +Stencil brew_flexa (Grob *me, Real interval, bool solid, @@ -33,7 +33,7 @@ brew_flexa (Grob *me, { Real staff_space = Staff_symbol_referencer::staff_space (me); Real height = 0.6 * staff_space; - Molecule molecule = Molecule (); + Stencil stencil = Stencil (); if (add_cauda) { @@ -54,56 +54,56 @@ brew_flexa (Grob *me, Real y_correction = (cauda_direction == UP) ? +0.5*height : - -0.5*height - cauda_box_y.length(); + -0.5*height - cauda_box_y.length (); Box cauda_box (cauda_box_x, cauda_box_y); - Molecule cauda = Lookup::filled_box (cauda_box); + Stencil cauda = Lookup::filled_box (cauda_box); cauda.translate_axis (y_correction, Y_AXIS); - molecule.add_molecule (cauda); + stencil.add_stencil (cauda); } Real slope = (interval / 2.0 * staff_space) / width; // Compensate optical illusion regarding vertical position of left // and right endings due to slope. - Real ypos_correction = -0.1*staff_space * sign(slope); - Real slope_correction = 0.2*staff_space * sign(slope); + Real ypos_correction = -0.1*staff_space * sign (slope); + Real slope_correction = 0.2*staff_space * sign (slope); Real corrected_slope = slope + slope_correction/width; if (solid) { - Molecule solid_head = + Stencil solid_head = Lookup::beam (corrected_slope, width, height, 0.0); - molecule.add_molecule (solid_head); + stencil.add_stencil (solid_head); } else // outline { - Molecule left_edge = + Stencil left_edge = Lookup::beam (corrected_slope, thickness, height, 0.0); - molecule.add_molecule(left_edge); + stencil.add_stencil (left_edge); - Molecule right_edge = + Stencil right_edge = 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); + stencil.add_stencil (right_edge); - Molecule bottom_edge = + Stencil bottom_edge = Lookup::beam (corrected_slope, width, thickness, 0.0); bottom_edge.translate_axis (-0.5*height, Y_AXIS); - molecule.add_molecule (bottom_edge); + stencil.add_stencil (bottom_edge); - Molecule top_edge = + Stencil top_edge = Lookup::beam (corrected_slope, width, thickness, 0.0); top_edge.translate_axis (+0.5*height, Y_AXIS); - molecule.add_molecule (top_edge); + stencil.add_stencil (top_edge); } - molecule.translate_axis (ypos_correction, Y_AXIS); - return molecule; + stencil.translate_axis (ypos_correction, Y_AXIS); + return stencil; } void -add_ledger_lines (Grob *me, Molecule *out, int pos, Real offs, +add_ledger_lines (Grob *me, Stencil *out, int pos, Real offs, bool ledger_take_space) { int interspaces = Staff_symbol_referencer::line_count (me)-1; @@ -115,27 +115,27 @@ add_ledger_lines (Grob *me, Molecule *out, int pos, Real offs, Interval l_extents = Interval (hd[LEFT] - left_ledger_protusion, hd[RIGHT] + right_ledger_protusion); - Molecule ledger_lines = + 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_molecule (ledger_lines); + out->add_stencil (ledger_lines); } } -Molecule +Stencil internal_brew_primitive (Grob *me, bool ledger_take_space) { - SCM primitive_scm = me->get_grob_property ("primitive"); + SCM primitive_scm = me->get_property ("primitive"); if (primitive_scm == SCM_EOL) { programming_error ("Mensural_ligature:" "undefined primitive -> ignoring grob"); - return Molecule (); + return Stencil (); } - Molecule out; + Stencil out; int primitive = gh_scm2int (primitive_scm); int delta_pitch = 0; Real thickness = 0.0; @@ -143,21 +143,21 @@ internal_brew_primitive (Grob *me, bool ledger_take_space) Real staff_space = Staff_symbol_referencer::staff_space (me); if (primitive & MLP_ANY) { - thickness = robust_scm2double ( me->get_grob_property ("thickness"), .14); + thickness = robust_scm2double ( me->get_property ("thickness"), .14); } if (primitive & MLP_FLEXA) { - delta_pitch = robust_scm2int (me->get_grob_property ("delta-pitch"), + delta_pitch = robust_scm2int (me->get_property ("delta-pitch"), 0); - flexa_width = robust_scm2double (me->get_grob_property ("flexa-width"), 2.0 * staff_space); + flexa_width = robust_scm2double (me->get_property ("flexa-width"), 2.0 * staff_space); } switch (primitive) { case MLP_NONE: - return Molecule(); + return Stencil (); case MLP_BB: out = brew_flexa (me, delta_pitch, false, flexa_width, thickness, true, DOWN); @@ -182,10 +182,10 @@ internal_brew_primitive (Grob *me, bool ledger_take_space) default: programming_error (_f ("Mensural_ligature:" "unexpected case fall-through")); - return Molecule (); + return Stencil (); } - SCM join_left_scm = me->get_grob_property ("join-left-amount"); + SCM join_left_scm = me->get_property ("join-left-amount"); if (join_left_scm != SCM_EOL) { int join_left = gh_scm2int (join_left_scm); @@ -198,16 +198,16 @@ internal_brew_primitive (Grob *me, bool ledger_take_space) Interval (0, -join_left * 0.5 * staff_space); Box join_box (x_extent, y_extent); - Molecule join = Lookup::round_filled_box (join_box, blotdiameter); - out.add_molecule (join); + Stencil join = Lookup::round_filled_box (join_box, blotdiameter); + out.add_stencil (join); } int pos = (int)rint (Staff_symbol_referencer::get_position (me)); - add_ledger_lines(me, &out, pos, 0, ledger_take_space); + add_ledger_lines (me, &out, pos, 0, ledger_take_space); if (primitive & MLP_FLEXA) { pos += delta_pitch; - add_ledger_lines(me, &out, pos, 0.5*delta_pitch, ledger_take_space); + add_ledger_lines (me, &out, pos, 0.5*delta_pitch, ledger_take_space); } return out; @@ -221,9 +221,9 @@ Mensural_ligature::brew_ligature_primitive (SCM smob) return internal_brew_primitive (me, false).smobbed_copy (); } -MAKE_SCHEME_CALLBACK (Mensural_ligature, brew_molecule, 1); +MAKE_SCHEME_CALLBACK (Mensural_ligature, print, 1); SCM -Mensural_ligature::brew_molecule (SCM) +Mensural_ligature::print (SCM) { return SCM_EOL; }