X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fscore-element.hh;h=af9b484faa5f19e137d0223565779be05721d9ef;hb=0cf97b5cdceecbba937f43ac827f4065aad5001e;hp=723cf5a2836da9079507fb18d35347677107019d;hpb=ad4297de0246935caa4c51f4e152e20009a6f64e;p=lilypond.git diff --git a/lily/include/score-element.hh b/lily/include/score-element.hh index 723cf5a283..af9b484faa 100644 --- a/lily/include/score-element.hh +++ b/lily/include/score-element.hh @@ -9,7 +9,6 @@ #include "parray.hh" #include "virtual-methods.hh" -#include "directed-graph.hh" #include "graphical-element.hh" #include "lily-guile.hh" @@ -106,6 +105,8 @@ public: */ void calculate_dependencies (int final, int busy, Score_element_method_pointer funcptr); + + virtual Score_element *find_broken_piece (Line_of_score*) const; protected: Score_element* dependency (int) const; int dependency_size () const; @@ -113,7 +114,8 @@ protected: virtual void output_processing (); virtual Interval do_height () const; virtual Interval do_width () const; - + + /// do printing of derived info. virtual void do_print () const; /// generate the molecule @@ -126,6 +128,9 @@ protected: /// generate rods & springs virtual void do_space_processing (); + /// do postbreak substs on array of pointers. + virtual void do_substitute_arrays (); + virtual void do_breakable_col_processing (); /// do calculations after determining horizontal spacing virtual void do_post_processing (); @@ -142,5 +147,26 @@ protected: }; +template +void +substitute_element_array (Link_array &arr, Line_of_score * to) +{ + Link_array newarr; + for (int i =0; i < arr.size (); i++) + { + T * t = arr[i]; + if (t->line_l () != to) + { + t = dynamic_cast (t->find_broken_piece (to)); + } + + if (t) + newarr.push (t); + } + arr = newarr; +} + + + #endif // STAFFELEM_HH