#include "lookup.hh"
#include "staff-symbol-referencer.hh"
#include "note-head.hh"
-#include "paper-def.hh"
+#include "output-def.hh"
#include "warn.hh"
/*
{
Real staff_space = Staff_symbol_referencer::staff_space (me);
Real height = 0.6 * staff_space;
- Stencil stencil = Stencil ();
+ Stencil stencil;
if (add_cauda)
{
return stencil;
}
-void
-add_ledger_lines (Grob *me, Stencil *out, int pos, Real offs,
- bool ledger_take_space)
-{
- int interspaces = Staff_symbol_referencer::line_count (me)-1;
- if (abs (pos) - interspaces > 1)
- {
- Interval hd = out->extent (X_AXIS);
- Real left_ledger_protusion = hd.length ()/4;
- Real right_ledger_protusion = left_ledger_protusion;
-
- Interval l_extents = Interval (hd[LEFT] - left_ledger_protusion,
- hd[RIGHT] + right_ledger_protusion);
- 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_stencil (ledger_lines);
- }
-}
-
Stencil
-internal_brew_primitive (Grob *me, bool ledger_take_space)
+internal_brew_primitive (Grob *me)
{
SCM primitive_scm = me->get_property ("primitive");
if (primitive_scm == SCM_EOL)
}
Stencil out;
- int primitive = gh_scm2int (primitive_scm);
+ int primitive = ly_scm2int (primitive_scm);
int delta_pitch = 0;
Real thickness = 0.0;
Real flexa_width = 0.0;
SCM join_left_scm = me->get_property ("join-left-amount");
if (join_left_scm != SCM_EOL)
{
- int join_left = gh_scm2int (join_left_scm);
+ int join_left = ly_scm2int (join_left_scm);
if (!join_left)
programming_error (_f ("Mensural_ligature: (join_left == 0)"));
- Real blotdiameter = (me->get_paper ()->get_realvar (ly_symbol2scm ("blotdiameter")));
+ Real blotdiameter = (me->get_paper ()->get_dimension (ly_symbol2scm ("blotdiameter")));
Interval x_extent = Interval (0, thickness);
Interval y_extent = (join_left > 0) ?
Interval (-join_left * 0.5 * staff_space, 0) :
out.add_stencil (join);
}
- int pos = (int)rint (Staff_symbol_referencer::get_position (me));
- add_ledger_lines (me, &out, pos, 0, ledger_take_space);
+ int pos = Staff_symbol_referencer::get_rounded_position (me);
if (primitive & MLP_FLEXA)
{
pos += delta_pitch;
- add_ledger_lines (me, &out, pos, 0.5*delta_pitch, ledger_take_space);
}
return out;
Mensural_ligature::brew_ligature_primitive (SCM smob)
{
Grob *me = unsmob_grob (smob);
- return internal_brew_primitive (me, false).smobbed_copy ();
+ return internal_brew_primitive (me).smobbed_copy ();
}
MAKE_SCHEME_CALLBACK (Mensural_ligature, print, 1);