Spanner *
Mensural_ligature_engraver::create_ligature_spanner ()
{
- return new Spanner (get_property ("MensuralLigature"));
+ return make_spanner ("MensuralLigature");
}
/*
// TODO: if (state == STATE_ERROR) { ... }
}
-void set_delta_pitch (Item *primitive, Grob_info info1, Grob_info info2)
-{
- Pitch pitch1 = *unsmob_pitch (info1.music_cause ()->get_mus_property ("pitch"));
- Pitch pitch2 = *unsmob_pitch (info2.music_cause ()->get_mus_property ("pitch"));
- int delta_pitch = (pitch2.steps () - pitch1.steps ());
- primitive->set_grob_property ("delta-pitch", gh_int2scm (delta_pitch));
-}
-
/*
* A MensuralLigature grob consists of a bunch of NoteHead grobs that
* are glued together. It (a) does not make sense to change
Mensural_ligature_engraver::propagate_properties (Spanner *ligature,
Array<Grob_info> primitives)
{
- SCM thickness_scm = ligature->get_grob_property ("thickness");
- Real thickness = (thickness_scm != SCM_EOL) ?
- gh_scm2double (thickness_scm) : 1.4;
- thickness *= ligature->get_paper ()->get_var ("linethickness");
+ Real thickness = robust_scm2double (ligature->get_grob_property ("thickness"), 1.4);
+ thickness *= ligature->get_paper ()->get_realvar (ly_symbol2scm ("linethickness"));
Real head_width =
Font_interface::get_default_font (ligature)->
find_by_name ("noteheads--1mensural").extent (X_AXIS).length ();
- SCM flexa_width_scm = ligature->get_grob_property ("flexa-width");
- Real flexa_width = (flexa_width_scm != SCM_EOL) ?
- gh_scm2double (flexa_width_scm) : 2.0;
+ Real flexa_width = robust_scm2double (ligature->get_grob_property ("flexa-width"), 2);
flexa_width *= Staff_symbol_referencer::staff_space (ligature);
Real half_flexa_width = 0.5 * (flexa_width + thickness);
gh_double2scm (half_flexa_width));
primitive->set_grob_property ("flexa-width",
gh_double2scm (flexa_width));
- set_delta_pitch (primitive,
- primitives[i], primitives[i+1]);
break;
default:
programming_error (_f ("unexpected case fall-through"));
if (i > 0)
{
-#if 0
- Rod r;
- r.distance_ = distance;
- r.item_l_drul_[LEFT] = first;
- r.item_l_drul_[RIGHT] = current;
- r.add_to_cols ();
-#endif
current->translate_axis (distance, X_AXIS);
}