]> git.donarmstrong.com Git - lilypond.git/blob - lily/breathing-sign.cc
release: 1.3.16
[lilypond.git] / lily / breathing-sign.cc
1 /*
2   breathing_sign.cc -- implement Breathing_sign
3
4   Copyright (C) 1999 Michael Krause
5
6   written for the GNU LilyPond music typesetter
7
8 TODO: --> see breathing-sign-engraver.cc
9
10 */
11 #include "staff-symbol-referencer.hh"
12 #include "directional-element-interface.hh"
13
14 #include "breathing-sign.hh"
15 #include "string.hh"
16 #include "molecule.hh"
17 #include "paper-def.hh"
18 #include "lookup.hh"
19 #include "debug.hh"
20 #include "dimensions.hh"
21 #include "direction.hh"
22
23
24 Breathing_sign::Breathing_sign ()
25 {
26   set_elt_property ("breakable", SCM_BOOL_T);
27 }
28
29 Molecule*
30 Breathing_sign::do_brew_molecule_p () const
31 {
32   Staff_symbol_referencer_interface si (this);
33   
34   Real dl = si.staff_space();
35   Interval i1(0, dl / 6), i2(-dl / 2, dl / 2);
36   Box b(i1, i2);
37
38   Molecule *output = new Molecule (lookup_l()->filledbox(b));
39
40   return output;
41 }
42
43 void
44 Breathing_sign::do_post_processing()
45 {
46   Real dl = Staff_symbol_referencer_interface (this).staff_space();
47
48   translate_axis(2.0 * dl * directional_element(this).get (), Y_AXIS);
49 }
50