]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/beam-quanting.cc
Fix outside-staff placement for children of System.
[lilypond.git] / lily / beam-quanting.cc
index 90e0bb7cdef31101736e127be02ff2ad18d96ff8..a0a1528597b83af52fcfde7cb641685a5e2e9e87 100644 (file)
@@ -12,6 +12,7 @@
 #include <algorithm>
 using namespace std;
 
+#include "grob.hh"
 #include "align-interface.hh"
 #include "international.hh"
 #include "output-def.hh"
@@ -19,6 +20,7 @@ using namespace std;
 #include "staff-symbol-referencer.hh"
 #include "stem.hh"
 #include "warn.hh"
+#include "main.hh"
 
 Real
 get_detail (SCM alist, SCM sym, Real def)
@@ -61,8 +63,8 @@ struct Quant_score
   Real yr;
   Real demerits;
 
-#if DEBUG_QUANTING
-  std::string score_card_;
+#if DEBUG_BEAM_SCORING
+  string score_card_;
 #endif
 };
 
@@ -78,7 +80,7 @@ struct Quant_score
 */
 
 int
-best_quant_score_idx (std::vector<Quant_score> const &qscores)
+best_quant_score_idx (vector<Quant_score> const &qscores)
 {
   Real best = 1e6;
   int best_idx = -1;
@@ -123,8 +125,8 @@ Beam::quanting (SCM smob, SCM posns)
   Real quants [] = {straddle, sit, inter, hang };
 
   int num_quants = int (sizeof (quants) / sizeof (Real));
-  std::vector<Real> quantsl;
-  std::vector<Real> quantsr;
+  vector<Real> quantsl;
+  vector<Real> quantsr;
 
   /*
     going to REGION_SIZE == 2, yields another 0.6 second with
@@ -139,11 +141,11 @@ Beam::quanting (SCM smob, SCM posns)
     Do stem computations.  These depend on YL and YR linearly, so we can
     precompute for every stem 2 factors.
   */
-  Link_array__Grob_ stems
+  vector<Grob*> stems
     = extract_grob_array (me, "stems");
-  std::vector<Stem_info> stem_infos;
-  std::vector<Real> base_lengths;
-  std::vector<Real> stem_xposns;
+  vector<Stem_info> stem_infos;
+  vector<Real> base_lengths;
+  vector<Real> stem_xposns;
 
   Drul_array<bool> dirs_found (0, 0);
   Grob *common[2];
@@ -209,7 +211,7 @@ Beam::quanting (SCM smob, SCM posns)
        quantsr.push_back (i + quants[j] + int (yr));
       }
 
-  std::vector<Quant_score> qscores;
+  vector<Quant_score> qscores;
 
   for (vsize l = 0; l < quantsl.size (); l++)
     for (vsize r = 0; r < quantsr.size (); r++)
@@ -234,7 +236,7 @@ Beam::quanting (SCM smob, SCM posns)
                                xstaff, &parameters);
       qscores[i].demerits += d;
 
-#if DEBUG_QUANTING
+#if DEBUG_BEAM_SCORING
       qscores[i].score_card_ += to_string ("S%.2f", d);
 #endif
     }
@@ -255,7 +257,7 @@ Beam::quanting (SCM smob, SCM posns)
                                         edge_beam_counts, ldir, rdir, &parameters);
        qscores[i].demerits += d;
 
-#if DEBUG_QUANTING
+#if DEBUG_BEAM_SCORING
        qscores[i].score_card_ += to_string (" F %.2f", d);
 #endif
       }
@@ -270,16 +272,16 @@ Beam::quanting (SCM smob, SCM posns)
                                     qscores[i].yl, qscores[i].yr, &parameters);
        qscores[i].demerits += d;
 
-#if DEBUG_QUANTING
+#if DEBUG_BEAM_SCORING
        qscores[i].score_card_ += to_string (" L %.2f", d);
 #endif
       }
 
   int best_idx = best_quant_score_idx (qscores);
 
-#if DEBUG_QUANTING
+#if DEBUG_BEAM_SCORING
   SCM inspect_quants = me->get_property ("inspect-quants");
-  if (to_boolean (me->layout ()->lookup_variable (ly_symbol2scm ("debug-beam-quanting")))
+  if (to_boolean (me->layout ()->lookup_variable (ly_symbol2scm ("debug-beam-scoring")))
       && scm_is_pair (inspect_quants))
     {
       Drul_array<Real> ins = ly_scm2interval (inspect_quants);
@@ -311,9 +313,9 @@ Beam::quanting (SCM smob, SCM posns)
                                          qscores[best_idx].yr);
     }
   
-#if DEBUG_QUANTING
+#if DEBUG_BEAM_SCORING
   if (best_idx >= 0
-      && to_boolean (me->layout ()->lookup_variable (ly_symbol2scm ("debug-beam-quanting"))))
+      && to_boolean (me->layout ()->lookup_variable (ly_symbol2scm ("debug-beam-scoring"))))
     {
       qscores[best_idx].score_card_ += to_string ("i%d", best_idx);
 
@@ -327,10 +329,10 @@ Beam::quanting (SCM smob, SCM posns)
 }
 
 Real
-Beam::score_stem_lengths (Link_array__Grob_ const &stems,
-                         std::vector<Stem_info> const &stem_infos,
-                         std::vector<Real> const &base_stem_ys,
-                         std::vector<Real> const &stem_xs,
+Beam::score_stem_lengths (vector<Grob*> const &stems,
+                         vector<Stem_info> const &stem_infos,
+                         vector<Real> const &base_stem_ys,
+                         vector<Real> const &stem_xs,
                          Real xl, Real xr,
                          bool knee,
                          Real yl, Real yr,