]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/paper-score.cc
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / lily / paper-score.cc
index 028fb37a146e080a988ef63756fb50176054d3f6..8dfbc38939b4f1c8a57ed4d1137d6adf88045a2f 100644 (file)
@@ -10,6 +10,7 @@
 
 #include "all-font-metrics.hh"
 #include "book.hh"
+#include "gourlay-breaking.hh"
 #include "international.hh"
 #include "main.hh"
 #include "misc.hh"
@@ -74,41 +75,33 @@ Paper_score::find_break_indices () const
        retval.push_back (i);
     }
 
-  cols_ = all;
-  break_indices_ = retval;
-
   return retval;
 }
 
-vector<vsize>
-Paper_score::get_break_indices () const
-{
-  if (break_indices_.empty ())
-    find_break_indices ();
-  return break_indices_;
-}
-
-vector<Grob*>
-Paper_score::get_columns () const
-{
-  if (cols_.empty ())
-    find_break_indices ();
-  return cols_;
-}
 
 vector<Column_x_positions>
 Paper_score::calc_breaking ()
 {
-  Constrained_breaking algorithm (this);
+  Break_algorithm *algorithm = 0;
   vector<Column_x_positions> sol;
 
   message (_ ("Calculating line breaks...") + " ");
 
   int system_count = robust_scm2int (layout ()->c_variable ("system-count"), 0);
   if (system_count)
-    algorithm.resize (system_count);
-
-  return algorithm.solve ();
+    {
+      Constrained_breaking *b = new Constrained_breaking;
+      b->resize (system_count);
+      algorithm = b;
+    }
+  else
+    algorithm = new Gourlay_breaking;
+  
+  algorithm->set_pscore (this);
+  sol = algorithm->solve ();
+  delete algorithm;
+
+  return sol;
 }
 
 void