]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/colhpos.cc
release: 0.1.61
[lilypond.git] / lily / colhpos.cc
index e96b3f99ad19c6d5d6a2ad5a50ad3622c8932a93..1e90ffeb373813a13e43174bf9d75321f1a52e51 100644 (file)
@@ -1,36 +1,80 @@
+/*
+  colhpos.cc -- implement Col_hpositions
+
+  source file of the GNU LilyPond music typesetter
+
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
 #include "colhpos.hh"
 #include "real.hh"
 #include "debug.hh"
-#include "const.hh"
 #include "vector.hh"
+#include "line-spacer.hh"
 
 Col_hpositions::Col_hpositions()
 {
-    energy = INFTY;
-    ugh_b_ = false;
+  energy_f_ = infinity_f;
+  ugh_b_ = false;
+  satisfies_constraints_b_ = false;
+  spacer_l_ =0;
+}
+
+Col_hpositions::~Col_hpositions()
+{
+
 }
 
 void
-Col_hpositions::add( PCol*c)
+Col_hpositions::add (Paper_column*c)
 {
-    cols.push(c);
+  cols.push (c);
 }
 
 void
 Col_hpositions::print() const
 {
 #ifndef NPRINT
-    mtor << "energy : " << energy << '\n';
-    mtor << "line of " << config.size() << " cols\n";
-    Vector v(config);
-    mtor << v;
+  DOUT << "energy : " << energy_f_ << '\n';
+  DOUT << "line of " << config.size() << " cols\n";
+  Vector v (config);
+  DOUT << v;
 #endif
 }
 
 void
-Col_hpositions::OK()const
+Col_hpositions::OK() const
 {
 #ifndef NDEBUG
-    assert(config.size() == cols.size());
+  assert (config.size() == cols.size ());
 #endif
 }
+
+void
+Col_hpositions::set_stupid_solution(Vector v)
+{
+  energy_f_ = infinity_f;
+  ugh_b_ = true;
+  config = v;
+}
+
+void
+Col_hpositions::stupid_solution()
+{
+  set_stupid_solution (spacer_l_->default_solution());
+}
+
+void
+Col_hpositions::solve_line() 
+{
+  spacer_l_->solve (this);
+}
+
+
+void
+Col_hpositions::approximate_solve_line() 
+{
+  spacer_l_->lower_bound_solution (this);
+}
+
+