X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fspanner.hh;h=b3e894804de62e362478470bcc11de7f4930d5ae;hb=76f13ab50fc726c89fa7c96f3deed519d2d773dc;hp=6ef182fe1324235b25c307b6c82292d83b24d559;hpb=163503e56aa0c03d41d37fd083bdb96a6a473a11;p=lilypond.git diff --git a/lily/include/spanner.hh b/lily/include/spanner.hh index 6ef182fe13..b3e894804d 100644 --- a/lily/include/spanner.hh +++ b/lily/include/spanner.hh @@ -1,7 +1,7 @@ /* spanner.hh -- part of GNU LilyPond - (c) 1996--1999 Han-Wen Nienhuys + (c) 1996--2000 Han-Wen Nienhuys */ #ifndef SPANNER_HH @@ -12,21 +12,16 @@ #include "drul-array.hh" #include "rod.hh" - -class Axis_group_spanner; /** A symbol which is attached between two columns. A spanner is a symbol which spans across several columns, so its final appearance can only be calculated after the breaking problem is solved. Examples - \begin{itemize} - \item (de)crescendo - \item slur - \item beam - \item bracket - \end{itemize} - + * (de)crescendo + * slur + * beam + * bracket Spanner should know about the items which it should consider: e.g. slurs should be steep enough to "enclose" all those items. This @@ -34,14 +29,18 @@ class Axis_group_spanner; length of stems of notes they encompass. */ -class Spanner : public virtual Score_element { -public: +class Spanner : public Score_element { Drul_array spanned_drul_; + +public: Link_array broken_into_l_arr_; - void set_bounds (Direction d, Item*); + // TODO: make virtual and do this for Items as well. + Interval_t spanned_rank_iv (); + void set_bound (Direction d, Item*); + Item *get_bound (Direction d) const; - Spanner (); + Spanner (SCM); Spanner (Spanner const &); bool broken_b () const; void do_break (); @@ -53,15 +52,8 @@ public: protected: void set_my_columns (); VIRTUAL_COPY_CONS(Score_element); - - /** - this is virtual; for instance, Line_of_score overrides it. - */ - virtual void break_into_pieces (); Real get_broken_left_end_align () const; - friend Axis_group_spanner; // UGH - virtual void do_space_processing (); virtual void do_break_processing (); Real spanner_length () const;