2 bow.cc -- implement Bow
4 source file of the GNU LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
10 #include "paper-def.hh"
11 #include "molecule.hh"
14 IMPLEMENT_IS_TYPE_B1(Bow
,Directional_spanner
);
18 dy_f_drul_
[LEFT
] = dy_f_drul_
[RIGHT
] = 0;
19 dx_f_drul_
[LEFT
] = dx_f_drul_
[RIGHT
] = 0.0;
26 Real dy
= dy_f_drul_
[RIGHT
]-dy_f_drul_
[LEFT
];
28 Real w
= width ().length ();
30 return Offset (w
/2,dy
);
34 Bow::height_f () const
40 Bow::brew_molecule_p () const
42 Molecule
*output
= new Molecule
;
43 Real w
= width ().length ();
45 Real dy_f
= dy_f_drul_
[RIGHT
] - dy_f_drul_
[LEFT
];
47 Real nw_f
= paper ()->note_width ();
49 w
+= (dx_f_drul_
[RIGHT
] - dx_f_drul_
[LEFT
]);
50 Real round_w
= w
; // slur lookup rounds the slurwidth .
52 Atom a
= paper ()->lookup_l ()->slur (dy_f
, round_w
, height_f (), dir_
);
54 Real error
= w
-round_w
;
55 a
.translate (Offset ( (dx_f_drul_
[LEFT
] + 0.5*nw_f
)