]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/line-spacer.hh
release: 1.2.8
[lilypond.git] / lily / include / line-spacer.hh
index 053e59a902495388883914d4a62beff5119c5c0b..ee51de47706799efc559a72acdc6eb1ce73c20bc 100644 (file)
@@ -3,14 +3,14 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 
 #ifndef LINE_SPACER_HH
 #define LINE_SPACER_HH
 #include "lily-proto.hh"
-#include "varray.hh"
+#include "array.hh"
 #include "vector.hh"
 #include "interval.hh"
 
@@ -25,47 +25,36 @@ class Line_spacer
 {
     
 public:
-    Paper_def * paper_l_;
-    Paper_def *paper_l() const;
-    Line_spacer();
-    
-    /** solve the spacing problem
-      */
-    virtual void solve (Col_hpositions *) const=0;
-
-    /**
-      Approximate the spacing problem:
-      return a lower bound on the energy
-     */
-    virtual void lower_bound_solution (Col_hpositions *) const=0;
-    
-    /** add a col to the problem. columns have to be added left to
-      right. The column contains info on it's minimum width.  */
-    virtual void add_column (Paper_column  *, bool fixed=false, Real fixpos=0.0)=0;
-
-    /**
-      can the posed problem be solved?
-      
-      @pre
-
-      prepare() was called
-      
-     */
-    virtual bool check_constraints (Vector v) const=0;
-
-    /**
-      generate a solution which can't fail
-     */
-    virtual Vector default_solution() const=0;
+  Real indent_f_;
+  Real line_len_f_;
+  Real default_space_f_;
 
+  Line_spacer();
     
-    virtual void OK() const{}
-    virtual void print() const{}
+  /** solve the spacing problem
+   */
+  virtual void solve (Column_x_positions *) const=0;
+
+  /**
+    Approximate the spacing problem:
+    return a lower bound on the energy
+    */
+  virtual void lower_bound_solution (Column_x_positions *) const=0;
+   
+
+  /**
+     Define the problem. LINELEN < 0 signifies natural width spacing.
+   */
+
+  virtual void add_columns (Link_array<Paper_column>)=0;
+  virtual void OK() const{}
+  virtual void print() const{}
     
-    /**
-      Call after construction before solving
-     */
-    virtual void prepare(){}
+  /**
+    Call after construction before solving
+    */
+  virtual void prepare(){}
+  virtual ~Line_spacer ();
 };
 
 #endif