+2006-05-05 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * lily/include/beam.hh (struct Beam_stem_segment): add gapped_ for
+ tremolo beams.
+
2006-05-05 Erik Sandberg <mandolaerik@gmail.com>
* lily/context.cc, lily/global-context.cc: Added 'unique' member,
used by music streams.
*common = commonx;
+ int gap_count = robust_scm2int (me->get_property ("gap-count"), 0);
+ Real gap_length = robust_scm2double (me->get_property ("gap"), 0.0);
+
Position_stem_segments_map stem_segments;
Real lt = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness"));
+ Slice ranks;
+
for (vsize i = 0; i < stems.size (); i++)
{
Grob *stem = stems[i];
{
if (!scm_is_integer (scm_car (s)))
continue;
-
+
+ int beam_rank = scm_to_int (scm_car (s));
+ ranks.add_point (beam_rank);
+ }
+
+ for (SCM s = index_get_cell (beaming, d);
+ scm_is_pair (s); s = scm_cdr (s))
+ {
+ if (!scm_is_integer (scm_car (s)))
+ continue;
+
+ int beam_rank = scm_to_int (scm_car (s));
Beam_stem_segment seg;
seg.stem_ = stem;
seg.stem_x_ = stem_x;
seg.width_ = stem_width;
seg.stem_index_ = i;
seg.dir_ = d;
- stem_segments[scm_to_int (scm_car (s))].push_back (seg);
+ Direction stem_dir = get_grob_direction (stem);
+
+ seg.gapped_
+ = (stem_dir * beam_rank < (stem_dir * ranks[-stem_dir] + gap_count));
+ stem_segments[beam_rank].push_back (seg);
}
}
while (flip (&d) != LEFT);
else
{
current.horizontal_[event_dir] += event_dir * segs[j].width_/2;
+ if (segs[j].gapped_)
+ current.horizontal_[event_dir] -= event_dir * gap_length;
}
if (event_dir == RIGHT)
(let* ((file-name (%search-load-path x)))
(if (ly:get-option 'verbose)
(ly:progress "[~A" file-name))
+ (if (not file-name)
+ (ly:error (_ "Can't find ~A" x)))
(primitive-load file-name)
(if (ly:get-option 'verbose)
(ly:progress "]"))))
;; load-from-path
'("lily-library.scm"
"file-cache.scm"
- "define-event-classes.scm"
+; "define-event-classes.scm"
"define-music-types.scm"
"output-lib.scm"
"c++.scm"