- Real rad = Staff_symbol_referencer::staff_radius (me);
- Drul_array<int> edge_beam_counts
- (Stem::beam_multiplicity (stems[0]).length () + 1,
- Stem::beam_multiplicity (stems.back ()).length () + 1);
-
- Real beam_translation = get_beam_translation (me) / ss;
-
- Real reasonable_score = (is_knee) ? 200000 : 100;
- for (vsize i = qscores.size (); i--;)
- if (qscores[i].demerits < reasonable_score)
- {
- Real d = score_forbidden_quants (qscores[i].yl, qscores[i].yr,
- rad, slt, thickness, beam_translation,
- edge_beam_counts, ldir, rdir, ¶meters);
- qscores[i].demerits += d;
-
-#if DEBUG_BEAM_SCORING
- qscores[i].score_card_ += to_string (" F %.2f", d);
-#endif
- }
+Beam_configuration *
+Beam_scoring_problem::force_score (SCM inspect_quants, const vector<Beam_configuration *> &configs) const
+{
+ Drul_array<Real> ins = ly_scm2interval (inspect_quants);
+ Real mindist = 1e6;
+ Beam_configuration *best = NULL;
+ for (vsize i = 0; i < configs.size (); i++)
+ {
+ Real d = fabs (configs[i]->y[LEFT] - ins[LEFT]) + fabs (configs[i]->y[RIGHT] - ins[RIGHT]);
+ if (d < mindist)
+ {
+ best = configs[i];
+ mindist = d;
+ }
+ }
+ if (mindist > 1e5)
+ programming_error ("cannot find quant");