2 breathing_sign.cc -- implement Breathing_sign
4 Copyright (C) 1999 Michael Krause
6 written for the GNU LilyPond music typesetter
8 TODO: --> see breathing-sign-engraver.cc
12 #include "breathing-sign.hh"
14 #include "molecule.hh"
15 #include "paper-def.hh"
18 #include "dimensions.hh"
19 #include "direction.hh"
23 Breathing_sign::Breathing_sign ()
26 set_elt_property (breakable_scm_sym, SCM_BOOL_T);
27 set_elt_property (break_priority_scm_sym, gh_int2scm (-4));
28 set_elt_property (visibility_lambda_scm_sym,
29 ly_ch_C_eval_scm ("non_postbreak_visibility"));
33 Breathing_sign::set_vertical_position (Direction updown)
35 assert(updown >= -1 && updown <= +1);
42 Breathing_sign::do_brew_molecule_p () const
44 Real dl = staff_line_leading_f();
45 Interval i1(0, dl / 6), i2(-dl / 2, dl / 2);
48 Molecule *output = new Molecule (lookup_l()->filledbox(b));
54 Breathing_sign::do_post_processing()
56 Real dl = staff_line_leading_f();
58 translate_axis(2.0 * dl * dir_, Y_AXIS);