(c) 2003--2004 Juergen Reuter <reuter@ipd.uka.de>
*/
+#include "vaticana-ligature.hh"
+
#include <math.h>
+
#include "item.hh"
-#include "vaticana-ligature.hh"
#include "font-interface.hh"
-#include "stencil.hh"
#include "lookup.hh"
#include "staff-symbol-referencer.hh"
#include "note-head.hh"
-#include "paper-def.hh"
+#include "output-def.hh"
#include "bezier.hh"
#include "warn.hh"
Real line_thickness)
{
Real staff_space = Staff_symbol_referencer::staff_space (me);
- Stencil stencil = Stencil ();
+ Stencil stencil;
Real right_height = 0.6 * staff_space;
Real interval;
SCM flexa_height_scm = me->get_property ("flexa-height");
if (flexa_height_scm != SCM_EOL)
{
- interval = gh_scm2int (flexa_height_scm);
+ interval = scm_to_int (flexa_height_scm);
}
else
{
return Lookup::round_filled_box (join_box, blotdiameter);
}
-void
-vaticana_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
-vaticana_brew_primitive (Grob *me, bool ledger_take_space)
+vaticana_brew_primitive (Grob *me)
{
SCM glyph_name_scm = me->get_property ("glyph-name");
if (glyph_name_scm == SCM_EOL)
String glyph_name = ly_scm2string (glyph_name_scm);
Stencil out;
- int flexa_height = 0;
Real thickness = robust_scm2double ( me->get_property ("thickness"), 1);
Real line_thickness =
- thickness * me->get_paper ()->get_realvar (ly_symbol2scm ("linethickness"));
+ thickness * me->get_layout ()->get_dimension (ly_symbol2scm ("linethickness"));
Real blotdiameter =
- (me->get_paper ()->get_realvar (ly_symbol2scm ("blotdiameter")));
+ (me->get_layout ()->get_dimension (ly_symbol2scm ("blotdiameter")));
- int pos = (int)rint (Staff_symbol_referencer::get_position (me));
+ int pos = Staff_symbol_referencer::get_rounded_position (me);
SCM delta_pitch_scm = me->get_property ("delta-pitch");
int delta_pitch;
if (delta_pitch_scm != SCM_EOL)
- delta_pitch = gh_scm2int (delta_pitch_scm);
+ delta_pitch = scm_to_int (delta_pitch_scm);
else
delta_pitch = 0;
out.add_stencil (join);
}
- vaticana_add_ledger_lines (me, &out, pos, 0, ledger_take_space);
- if (!String::compare (glyph_name, "flexa"))
- {
- pos += flexa_height;
- vaticana_add_ledger_lines (me, &out, pos, 0.5*flexa_height,
- ledger_take_space);
- }
-
return out;
}
Vaticana_ligature::brew_ligature_primitive (SCM smob)
{
Grob *me = unsmob_grob (smob);
- SCM primitive = vaticana_brew_primitive (me, false).smobbed_copy ();
+ SCM primitive = vaticana_brew_primitive (me).smobbed_copy ();
return primitive;
}