]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/beam-collision-engraver.cc
Doc-es: various updates.
[lilypond.git] / lily / beam-collision-engraver.cc
index 364d725c9afab0383163eb3de61ac72e135230e2..4494bb03c2d3fd2397a8deb5917840451975cce8 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2011--2012 Mike Solomon <mike@mikesolomon.org>
+  Copyright (C) 2011--2015 Mike Solomon <mike@mikesolomon.org>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -30,15 +30,15 @@ protected:
   vector<Grob_info> beams_;
   vector<Grob_info> covered_grobs_;
 
-  DECLARE_ACKNOWLEDGER (note_head);
-  DECLARE_ACKNOWLEDGER (stem);
-  DECLARE_ACKNOWLEDGER (accidental);
-  DECLARE_ACKNOWLEDGER (clef);
-  DECLARE_ACKNOWLEDGER (octavate_eight);
-  DECLARE_ACKNOWLEDGER (key_signature);
-  DECLARE_ACKNOWLEDGER (time_signature);
-  DECLARE_ACKNOWLEDGER (beam);
-  DECLARE_ACKNOWLEDGER (flag);
+  void acknowledge_note_head (Grob_info);
+  void acknowledge_stem (Grob_info);
+  void acknowledge_accidental (Grob_info);
+  void acknowledge_clef (Grob_info);
+  void acknowledge_clef_modifier (Grob_info);
+  void acknowledge_key_signature (Grob_info);
+  void acknowledge_time_signature (Grob_info);
+  void acknowledge_beam (Grob_info);
+  void acknowledge_flag (Grob_info);
 
   virtual void finalize ();
 
@@ -49,7 +49,9 @@ public:
   TRANSLATOR_DECLARATIONS (Beam_collision_engraver);
 };
 
-Beam_collision_engraver::Beam_collision_engraver () {}
+Beam_collision_engraver::Beam_collision_engraver (Context *c)
+  : Engraver (c)
+{}
 
 bool
 Beam_collision_engraver::covered_grob_has_interface (Grob *covered_grob, Grob *beam)
@@ -115,17 +117,17 @@ Beam_collision_engraver::finalize ()
           if ((covered_grob_spanned_rank[RIGHT] >= beam_spanned_rank_[LEFT])
               && !(to_boolean (beam_grob->get_property ("collision-voice-only"))
                    && (covered_grob_context != beam_context))
-              && !(Beam::has_interface (covered_grob)
+              && !(has_interface<Beam> (covered_grob)
                    && (covered_grob_spanned_rank[LEFT] <= beam_spanned_rank_[LEFT]))
               && covered_grob_has_interface (covered_grob, beam_grob))
             {
               // Do not consider note heads attached to the beam.
-              if (Stem::has_interface (covered_grob))
-                if (unsmob_grob (covered_grob->get_object ("beam")))
+              if (has_interface<Stem> (covered_grob))
+                if (unsmob<Grob> (covered_grob->get_object ("beam")))
                   continue;
 
-              if (Grob *stem = unsmob_grob (covered_grob->get_object ("stem")))
-                if (Grob *beam = unsmob_grob (stem->get_object ("beam")))
+              if (Grob *stem = unsmob<Grob> (covered_grob->get_object ("stem")))
+                if (Grob *beam = unsmob<Grob> (stem->get_object ("beam")))
                   if (beam == beam_grob)
                     continue;
 
@@ -167,7 +169,7 @@ Beam_collision_engraver::acknowledge_key_signature (Grob_info i)
 }
 
 void
-Beam_collision_engraver::acknowledge_octavate_eight (Grob_info i)
+Beam_collision_engraver::acknowledge_clef_modifier (Grob_info i)
 {
   covered_grobs_.push_back (i);
 }
@@ -193,15 +195,20 @@ Beam_collision_engraver::acknowledge_beam (Grob_info i)
 
 #include "translator.icc"
 
-ADD_ACKNOWLEDGER (Beam_collision_engraver, note_head);
-ADD_ACKNOWLEDGER (Beam_collision_engraver, stem);
-ADD_ACKNOWLEDGER (Beam_collision_engraver, accidental);
-ADD_ACKNOWLEDGER (Beam_collision_engraver, clef);
-ADD_ACKNOWLEDGER (Beam_collision_engraver, key_signature);
-ADD_ACKNOWLEDGER (Beam_collision_engraver, time_signature);
-ADD_ACKNOWLEDGER (Beam_collision_engraver, octavate_eight);
-ADD_ACKNOWLEDGER (Beam_collision_engraver, flag);
-ADD_ACKNOWLEDGER (Beam_collision_engraver, beam);
+
+void
+Beam_collision_engraver::boot ()
+{
+  ADD_ACKNOWLEDGER (Beam_collision_engraver, note_head);
+  ADD_ACKNOWLEDGER (Beam_collision_engraver, stem);
+  ADD_ACKNOWLEDGER (Beam_collision_engraver, accidental);
+  ADD_ACKNOWLEDGER (Beam_collision_engraver, clef);
+  ADD_ACKNOWLEDGER (Beam_collision_engraver, key_signature);
+  ADD_ACKNOWLEDGER (Beam_collision_engraver, time_signature);
+  ADD_ACKNOWLEDGER (Beam_collision_engraver, clef_modifier);
+  ADD_ACKNOWLEDGER (Beam_collision_engraver, flag);
+  ADD_ACKNOWLEDGER (Beam_collision_engraver, beam);
+}
 
 ADD_TRANSLATOR (Beam_collision_engraver,
                 /* doc */