X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fcollision.hh;h=6f7ffbb4711be42f89158d5d09d9dcc988f3061a;hb=40c8e12b8afa8e9c7e44cf6ea3b724295884091b;hp=844496a855546467bb8db9f9fbb21a6860da6fd8;hpb=d8018dfc750f1dee8e1ee78a5d5f51b06d4c8348;p=lilypond.git diff --git a/lily/include/collision.hh b/lily/include/collision.hh index 844496a855..6f7ffbb471 100644 --- a/lily/include/collision.hh +++ b/lily/include/collision.hh @@ -1,25 +1,51 @@ /* collision.hh -- declare Collision - source file of the LilyPond music typesetter + source file of the GNU LilyPond music typesetter - (c) 1997 Han-Wen Nienhuys + (c) 1997--2000 Han-Wen Nienhuys */ #ifndef COLLISION_HH #define COLLISION_HH + #include "lily-proto.hh" -#include "item.hh" +#include "lily-guile.hh" + + +/** + Resolve conflicts between various Note_columns (chords). + + TODO + + * multistaff support (see Chlapik: equal noteheads should be on the + same hpos.) + + * Make interface of this, similar to align-interface. + + Properties: -class Collision : public Item { - Array clash_l_arr_; -protected: - virtual void do_pre_processing(); + elements -- (see Axis_group_interface) + + merge-differently-dotted -- merge black noteheads with differing dot count. + + horizontal-shift -- integer that identifies ranking of note-column for horizontal shifting. + + force-hshift -- amount of collision_note_width that overides automatic collision settings. + Read and removed from elements. + +*/ +class Collision // interface +{ public: - NAME_MEMBERS(Collision); - void add (Note_column*ncol_l); - Collision(); - + Score_element* elt_l_; + static SCM automatic_shift (Score_element*); + static SCM forced_shift (Score_element*); + static Real force_shift_callback (Score_element const*, Axis); + static void do_shifts (Score_element*); + + void add_column (Note_column*ncol_l); + Collision(Score_element*); }; #endif // COLLISION_HH