]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/constrained-breaking.hh
Merge branch 'jneeman' of git+ssh://jneem@git.sv.gnu.org/srv/git/lilypond into jneeman
[lilypond.git] / lily / include / constrained-breaking.hh
index b0c1f7891d09979b8244cf8052f32b9ccb9e4141..e1401f161479ef65436ee4bfb9d244b381d29d5f 100644 (file)
@@ -10,7 +10,6 @@
 #ifndef CONSTRAINED_BREAKING_HH
 #define CONSTRAINED_BREAKING_HH
 
-#include "break-algorithm.hh"
 #include "lily-guile.hh"
 #include "matrix.hh"
 #include "prob.hh"
@@ -50,6 +49,7 @@ struct Line_details {
     force_ = 0;
     extent_ = unsmob_stencil (pb->get_property ("stencil")) ->extent (Y_AXIS);
     padding_ = 0;
+    bottom_padding_ = 0;
     space_ = 1.0;
     inverse_hooke_ = 1.0;
     break_permission_ = ly_symbol2scm ("allow");
@@ -90,12 +90,12 @@ struct Constrained_break_node
 /*
    A dynamic programming solution to breaking scores into lines
 */
-class Constrained_breaking : public Break_algorithm
+class Constrained_breaking
 {
 public:
   vector<Column_x_positions> solve ();
-  Constrained_breaking ();
-  Constrained_breaking (vector<vsize> const &start_col_posns);
+  Constrained_breaking (Paper_score *ps);
+  Constrained_breaking (Paper_score *ps, vector<vsize> const &start_col_posns);
 
   vector<Column_x_positions> get_solution (vsize start, vsize end, vsize sys_count);
   vector<Column_x_positions> get_best_solution (vsize start, vsize end);
@@ -106,8 +106,11 @@ public:
   void resize (vsize systems);
 
 private:
+  Paper_score *pscore_;
   vsize valid_systems_;
   vsize systems_;
+  bool ragged_right_;
+  bool ragged_last_;
 
   /* the (i,j)th entry is the configuration for breaking between
     columns i and j */
@@ -123,6 +126,8 @@ private:
   vector<Grob*> all_;
   vector<vsize> breaks_;
 
+  void initialize ();
+
   Column_x_positions space_line (vsize start_col, vsize end_col);
   vsize prepare_solution (vsize start, vsize end, vsize sys_count);