// Collisions
COLLISION_PENALTY = get_detail (details, ly_symbol2scm ("collision-penalty"), 500);
- COLLISION_DISTANCE = get_detail (details, ly_symbol2scm ("collision-distance"), 0.5);
+ COLLISION_PADDING = get_detail (details, ly_symbol2scm ("collision-padding"), 0.5);
STEM_COLLISION_FACTOR = get_detail (details, ly_symbol2scm ("stem-collision-factor"), 0.1);
}
while (flip (&d) != LEFT);
Grob* stem = unsmob_grob (grobs[i]->get_object ("stem"));
- if (stem && Stem::has_interface (stem))
+ if (stem && Stem::has_interface (stem) && Stem::is_normal_stem (stem))
{
stems.insert (stem);
}
Beam_configuration *best = NULL;
+ bool debug =
+ to_boolean (beam->layout ()->lookup_variable (ly_symbol2scm ("debug-beam-scoring")));
SCM inspect_quants = beam->get_property ("inspect-quants");
- if (to_boolean (beam->layout ()->lookup_variable (ly_symbol2scm ("debug-beam-scoring")))
- && scm_is_pair (inspect_quants))
+ if (scm_is_pair (inspect_quants))
{
+ debug = true;
best = force_score (inspect_quants, configs);
}
else
for (vsize i = 0; i < configs.size(); i++)
queue.push(configs[i]);
-
/*
TODO
Interval final_positions = best->y;
#if DEBUG_BEAM_SCORING
- if (to_boolean (beam->layout ()->lookup_variable (ly_symbol2scm ("debug-beam-scoring"))))
+ if (debug)
{
// debug quanting
int completed = 0;
}
string card = best->score_card_ + to_string (" c%d/%d", completed, configs.size());
- beam->set_property ("quant-score", ly_string2scm (card));
+ beam->set_property ("annotation", ly_string2scm (card));
}
#endif
beam_y.distance (collision_y[UP]));
Real scale_free =
- max (parameters.COLLISION_DISTANCE - dist, 0.0)/
- parameters.COLLISION_DISTANCE;
+ max (parameters.COLLISION_PADDING - dist, 0.0)/
+ parameters.COLLISION_PADDING;
demerits +=
collisions_[i].base_penalty_ *
pow (scale_free, 3) * parameters.COLLISION_PENALTY;