if (beaming_prop == SCM_EOL
|| index_get_cell (beaming_prop, d) == SCM_EOL)
{
- int b = beaming->infos_.at (i).beams_i_drul_[d];
+ int count = beaming->infos_.at (i).beam_count_drul_[d];
if (i > 0
&& i < stems.size () -1
&& Stem::is_invisible (stem))
- b = min (b, beaming->infos_.at (i).beams_i_drul_[-d]);
+ count = min (count, beaming->infos_.at (i).beam_count_drul_[-d]);
- Stem::set_beaming (stem, b, d);
+ Stem::set_beaming (stem, count, d);
}
}
while (flip (&d) != LEFT);
Beaming_info::Beaming_info ()
{
- start_mom_ = 0;
- beams_i_drul_[LEFT] = 0;
- beams_i_drul_[RIGHT] = 0;
+ start_moment_ = 0;
+ beam_count_drul_[LEFT] = 0;
+ beam_count_drul_[RIGHT] = 0;
}
Beaming_info::Beaming_info (Moment m, int i)
{
- start_mom_ = m;
- beams_i_drul_[LEFT] = i;
- beams_i_drul_[RIGHT] = i;
+ start_moment_ = m;
+ beam_count_drul_[LEFT] = i;
+ beam_count_drul_[RIGHT] = i;
}
-const int at_beat = 1 << 15;
+const int at_beat = 1 << 15; // WTF is this.
int
-Beaming_info_list::best_splitpoint_index (Moment &beat_length, bool subdivide) const
+Beaming_info_list::best_splitpoint_index (Moment &beat_length,
+ bool subdivide) const
{
- int minden = INT_MAX;
- int minidx = -1;
+ int min_denominator = INT_MAX;
+ int min_index = -1;
Moment beat_pos;
for (vsize i = 1; i < infos_.size (); i++)
{
- beat_pos = infos_[i].start_mom_ / beat_length;
+ beat_pos = infos_[i].start_moment_ / beat_length;
int den = beat_pos.den ();
- if (infos_[i].beams_i_drul_[LEFT] == infos_[i - 1].beams_i_drul_[RIGHT] && !subdivide)
+ if (infos_[i].beam_count_drul_[LEFT] == infos_[i - 1].beam_count_drul_[RIGHT]
+ && !subdivide)
den *= 2;
- if (den < minden)
+
+ if (den < min_denominator)
{
- minidx = i;
- minden = den;
+ min_index = i;
+ min_denominator = den;
}
}
- return minidx | (minden == 1 && subdivide ? at_beat : 0);
+ return min_index | (min_denominator == 1 && subdivide ? at_beat : 0);
}
int
Beaming_info_list::beam_extend_count (Direction d) const
{
if (infos_.size () == 1)
- return infos_[0].beams_i_drul_[d];
+ return infos_[0].beam_count_drul_[d];
Beaming_info thisbeam = boundary (infos_, d, 0);
Beaming_info next = boundary (infos_, d, 1);
- return min (thisbeam.beams_i_drul_[-d], next.beams_i_drul_[d]);
+ return min (thisbeam.beam_count_drul_[-d], next.beam_count_drul_[d]);
}
void
return;
Drul_array<Beaming_info_list> splits;
+
int m = best_splitpoint_index (beat_length, subdivide);
- bool split = subdivide && (m & at_beat); m = m & ~at_beat;
+ bool split = subdivide && (m & at_beat);
+ m = m & ~at_beat;
+
splits[LEFT].infos_ = vector<Beaming_info> (infos_.begin (),
- infos_.begin () + m);
+ infos_.begin () + m);
splits[RIGHT].infos_ = vector<Beaming_info> (infos_.begin () + m,
- infos_.end ());
+ infos_.end ());
Direction d = LEFT;
do
- splits[d].beamify (beat_length, subdivide);
+ {
+ splits[d].beamify (beat_length, subdivide);
+ }
while (flip (&d) != LEFT);
int middle_beams = (split ? 1
do
{
if (splits[d].infos_.size () != 1)
- boundary (splits[d].infos_, -d, 0).beams_i_drul_[-d] = middle_beams;
+ boundary (splits[d].infos_, -d, 0).beam_count_drul_[-d] = middle_beams;
}
while (flip (&d) != LEFT);
infos_ = splits[LEFT].infos_;
- infos_.insert (infos_.end (), splits[RIGHT].infos_.begin (), splits[RIGHT].infos_.end ());
+ infos_.insert (infos_.end (),
+ splits[RIGHT].infos_.begin (),
+ splits[RIGHT].infos_.end ());
clip_edges ();
}
{
if (infos_.size ())
{
- infos_[0].beams_i_drul_[LEFT] = 0;
- infos_.back ().beams_i_drul_[RIGHT] = 0;
+ infos_[0].beam_count_drul_[LEFT] = 0;
+ infos_.back ().beam_count_drul_[RIGHT] = 0;
}
}