2 regular-spacing-engraver.cc -- implement Regular_spacing_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
10 #include "engraver.hh"
13 class Regular_spacing_engraver : public Engraver
16 TRANSLATOR_DECLARATIONS(Regular_spacing_engraver);
20 virtual void process_music ();
23 Regular_spacing_engraver::Regular_spacing_engraver ()
29 Regular_spacing_engraver::process_music ()
31 SCM delta = get_property ("regularSpacingDelta");
33 if (unsmob_moment (delta))
35 SCM mp = get_property ("measurePosition");
36 if (!unsmob_moment (mp))
39 Rational d = unsmob_moment (delta)->main_part_;
40 Rational p = unsmob_moment (mp)->main_part_;
42 if (p.mod_rat (d) != Rational (0))
45 Moment now = now_mom ();
46 SCM col = get_property ("currentMusicalColumn");
48 && (now -last_moment_ ).main_part_ == d)
50 unsmob_grob (col)->set_grob_property ("regular-distance-to", last_col_);
58 ENTER_DESCRIPTION(Regular_spacing_engraver,
62 /* reads */ "regularSpacingDelta",