stems_drul[d] = stem;
beams_drul[d] = Stem::get_beam (stem);
- Direction stem_dir = get_grob_direction (stem);
- if (stem_dirs[d] && stem_dirs[d] != stem_dir)
+ Direction sd = get_grob_direction (stem);
+ if (stem_dirs[d] && stem_dirs[d] != sd)
{
correct_stem_dirs = false;
continue;
}
- stem_dirs[d] = stem_dir;
+ stem_dirs[d] = sd;
/*
Correction doesn't seem appropriate when there is a large flag
correct_stem_dirs = false;
Interval hp = Stem::head_positions (stem);
- if (correct_stem_dirs
- && !hp.is_empty ())
+ if (!hp.is_empty ())
{
- Real chord_start = hp[stem_dir];
+ Real chord_start = hp[sd];
+ Real stem_end = Stem::stem_end_position (stem);
- /*
- can't look at stem-end-position, since that triggers
- beam slope computations.
- */
- Real stem_end = hp[stem_dir] +
- stem_dir * robust_scm2double (stem->get_property ("length"), 7);
-
- stem_posns[d] = Interval (min (chord_start, stem_end),
- max (chord_start, stem_end));
+ stem_posns[d] = Interval (min (chord_start, stem_end), max (chord_start, stem_end));
head_posns[d].unite (hp);
}
}