#include "directional-element-interface.hh"
#include "grob.hh"
#include "international.hh"
+#include "libc-extension.hh"
#include "main.hh"
#include "output-def.hh"
#include "pointer-group-interface.hh"
c.beam_y_.widen (0.5 * beam_thickness);
c.x_ = x;
+
+ y *= 1/staff_space;
c.y_ = y;
c.base_penalty_ = score_factor;
collisions_.push_back (c);
vector<Beam_configuration*> configs;
generate_quants (&configs);
+ if (configs.empty ())
+ {
+ programming_error ("No viable beam quanting found. Using unquanted y value.");
+ return unquanted_y;
+ }
+
Beam_configuration *best = NULL;
bool debug =
void
Beam_scoring_problem::score_horizontal_inter_quants (Beam_configuration *config) const
{
- if (config->y.delta() == 0.0 && abs (config->y[LEFT]) < staff_radius * staff_space)
+ if (config->y.delta () == 0.0
+ && abs (config->y[LEFT]) < staff_radius * staff_space)
{
Real yshift = config->y[LEFT] - 0.5 * staff_space;
- if (abs ((int)(yshift + 0.5) - yshift) < 0.01 * staff_space)
+ if (fabs (my_round (yshift) - yshift) < 0.01 * staff_space)
config->add (parameters.HORIZONTAL_INTER_QUANT_PENALTY, "H");
}
}