]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/chord-tremolo-engraver.cc
(beam): Use polygon.
[lilypond.git] / lily / chord-tremolo-engraver.cc
index 7048eb41c88c28656bf676a22a8327561f9d2eb6..a617993b0e2ec95fc0ff84b82461ace9549dda02 100644 (file)
@@ -7,13 +7,11 @@
   
 */
 
-#include "engraver.hh"
 #include "beam.hh"
 #include "repeated-music.hh"
 #include "stem.hh"
 #include "rhythmic-head.hh"
 #include "engraver-group-engraver.hh"
-#include "event.hh"
 #include "warn.hh"
 #include "misc.hh"
 #include "note-head.hh"
@@ -71,7 +69,7 @@ protected:
 Chord_tremolo_engraver::Chord_tremolo_engraver ()
 {
   beam_  = finished_beam_ = 0;
-  repeat_ =0;
+  repeat_ = 0;
   flags_ = 0;
   stem_tremolo_ = 0;
   sequential_body_b_ = false;
@@ -124,10 +122,7 @@ Chord_tremolo_engraver::process_music ()
       beam_ = make_spanner ("Beam", repeat_->self_scm ());
       beam_->set_property ("chord-tremolo", SCM_BOOL_T);
 
-      SCM smp = get_property ("measurePosition");
-      Moment mp
-       = (unsmob_moment (smp)) ? *unsmob_moment (smp) : Moment (0);
-      beam_start_location_ = mp;
+      beam_start_location_ = robust_scm2moment (get_property ("measurePosition"), Moment (0));
     }
 }
 
@@ -206,14 +201,20 @@ Chord_tremolo_engraver::start_translation_timestep ()
 void
 Chord_tremolo_engraver::stop_translation_timestep ()
 {
-  typeset_beam ();
+  if (stem_tremolo_)
+    {
+      repeat_ = 0;
+      if (beam_)
+       programming_error ("Huh, beam and stem tremolo?");
+      stem_tremolo_ = 0;
+    }
 
-  stem_tremolo_ = 0;
+  typeset_beam ();
 }
 
 
 
-ENTER_DESCRIPTION (Chord_tremolo_engraver,
+ADD_TRANSLATOR (Chord_tremolo_engraver,
 /* descr */       "Generates beams for  tremolo repeats.",
 /* creats*/       "Beam",
 /* accepts */     "repeated-music",