]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/spanner.hh
release: 1.1.32
[lilypond.git] / lily / include / spanner.hh
index 9d33ebb0c3f4c79362ac27132c3a444fe69b56c3..b046ab1a5f94c97b9c3bed5bbfc9650ec1528b18 100644 (file)
 #include "drul-array.hh"
 #include "rod.hh"
 
+struct Breaking_information
+{
+  Line_of_score *line_l_;
+  Spanner * broken_spanner_l_;
+  Drul_array<Item*> bounds_;
+  Breaking_information ()
+    {
+      line_l_ =0;
+      broken_spanner_l_ =0;
+      bounds_[LEFT] = bounds_[RIGHT] =0;
+    }
+};
+
+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.
@@ -42,7 +56,7 @@ public:
   Spanner (Spanner const &);
   bool broken_b () const;
   virtual Array<Rod> get_rods () const;
-  Spanner* find_broken_piece (Line_of_score*) const;
+  virtual Spanner* find_broken_piece (Line_of_score*) const;
 protected:
   void set_my_columns ();
   VIRTUAL_COPY_CONS(Score_element);
@@ -52,7 +66,9 @@ protected:
     */
   virtual void break_into_pieces ();
 
-  Link_array<Spanner> broken_into_l_arr_;
+  Array<Breaking_information> broken_info_;
+  friend Axis_group_spanner; // UGH
+
   Spanner * unbroken_original_l_;
 
   virtual void do_unlink ();