]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/line-of-score.cc
release: 1.1.0
[lilypond.git] / lily / line-of-score.cc
index 164d07937f19d104e3f05e0edecdf0f838c8450d..9e2e7edb0324927b4b50b3673610a581757cae7f 100644 (file)
@@ -7,7 +7,6 @@
 */
 
 #include "line-of-score.hh"
-#include "dimension.hh"
 #include "spanner.hh"
 #include "atom.hh"
 #include "paper-def.hh"
@@ -37,70 +36,41 @@ Line_of_score::contains_b (Paper_column const* c) const
   return cols.find_l ((Paper_column*)c);
 }
 
-void
-Line_of_score::set_breaking (Array<Column_x_positions> const &breaking)
+Line_of_score*
+Line_of_score::set_breaking (Array<Column_x_positions> const &breaking, int j) const
 {
-  for (int j=0; j < breaking.size(); j++) 
-    {
-      const Array<Paper_column*> &curline (breaking[j].cols);
-      const Array<Paper_column*> &errors (breaking[j].error_col_l_arr_);
-      const Array<Real> &config (breaking[j].config);
+  const Array<Paper_column*> &curline (breaking[j].cols);
+  const Array<Paper_column*> &errors (breaking[j].error_col_l_arr_);
+  const Array<Real> &config (breaking[j].config);
        
-      for (int i=0; i < errors.size(); i++)
-       errors[i]->error_mark_b_ = true;
+  for (int i=0; i < errors.size(); i++)
+    errors[i]->error_mark_b_ = true;
 
-      Line_of_score *line_l=0;
-      Line_of_score *line_p =0;
+  Line_of_score *line_l=0;
        
-      if (breaking.size() >1) 
-       {
-         line_p = (Line_of_score*)clone()->access_Spanner ();
-         line_l = line_p;
-       }
-      else 
-       line_l =  this;
+  if (breaking.size() >1) 
+    {
+      line_l = dynamic_cast <Line_of_score*> (clone());
+    }
+  else 
+    line_l = (Line_of_score*) this;
        
-      ((Array<Paper_column*> &)line_l->cols) = curline;
-      line_l->set_bounds(LEFT,curline[0]);
+  ((Array<Paper_column*> &)line_l->cols) = curline;
+  line_l->set_bounds(LEFT,curline[0]);
       
-      line_l->set_bounds(RIGHT,curline.top());
+  line_l->set_bounds(RIGHT,curline.top());
        
-      if (line_p) 
-       {
-         pscore_l_->typeset_broken_spanner (line_p);
-         broken_into_l_arr_.push (line_p);
-       }
-
-      for (int i=0; i < curline.size(); i++)
-       {
-         curline[i]->translate_axis (config[i],X_AXIS);
-         curline[i]->line_l_ = (Line_of_score*)line_l;
-       }
+  for (int i=0; i < curline.size(); i++)
+    {
+      curline[i]->translate_axis (config[i],X_AXIS);
+      curline[i]->line_l_ = (Line_of_score*)line_l;
     }
-}
 
-
-void
-Line_of_score::break_into_pieces (bool)
-{
-  
+  return line_l;
 }
 
-Link_array<Line_of_score>
-Line_of_score::get_lines() const
-{
-  Link_array<Line_of_score> ret;
 
-  if (broken_into_l_arr_.size())
-    for (int i=0; i < broken_into_l_arr_.size(); i++) 
-      {
-       ret.push ((Line_of_score*)broken_into_l_arr_[i]);
-      }
-  else 
-    ret.push ((Line_of_score*)this);   // ugh
-  
-  return ret;
-}
+
 
 void
 Line_of_score::do_print() const