2 crescendo.cc -- implement Crescendo
4 source file of the LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
9 #include "crescendo.hh"
11 #include "paper-def.hh"
13 Crescendo::Crescendo(int s
)
18 left_dyn_b_
= right_dyn_b_
=false;
22 Crescendo::do_break_at(PCol
*, PCol
*)const
24 return new Crescendo(*this);
29 Crescendo::brew_molecule_p() const return m_p
;
32 Real absdyn_dim
= 10 PT
; // UGR
35 Real w_dim
= width().length();
38 x_off_dim
+= absdyn_dim
;
45 error("Crescendo too small");
48 Symbol
s( paper()->lookup_l()->hairpin(w_dim
, grow_dir_i_
< 0) );
50 int pos
= (dir_i_
>0) ? staff_size_i_
+ 4 : - 4 ;
51 if(dir_i_
<0 ) // should do something better anyway.
52 m_p
->translate(Offset(0, -m_p
->extent().y
.left
));
53 m_p
->translate(Offset(x_off_dim
,pos
* paper()->internote()));
56 IMPLEMENT_STATIC_NAME(Crescendo
);