]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/beam-collision-engraver.cc
Doc-hu: translated first section of lilypond-book
[lilypond.git] / lily / beam-collision-engraver.cc
index 8880e9c6e34bf68c306fe9d47005fac3e280a3fd..cdb4be6270dad054ee13c8a8d55d88e52ef12285 100644 (file)
@@ -76,6 +76,7 @@ Beam_collision_engraver::finalize ()
   for (vsize i = 0; i < beams_.size (); i++)
     {
       Grob *beam_grob = beams_[i].grob ();
+
       Context *beam_context = beams_[i].context ();
 
       Interval_t<int> beam_spanned_rank_ = beam_grob->spanned_rank_interval ();
@@ -90,8 +91,7 @@ Beam_collision_engraver::finalize ()
           Context *covered_grob_context = covered_grobs_[j].context ();
 
           Interval_t<int> covered_grob_spanned_rank = covered_grob->spanned_rank_interval ();
-          if ((covered_grob_spanned_rank[LEFT] > beam_spanned_rank_[RIGHT]
-              || !covered_grob_has_interface (covered_grob, beam_grob)))
+          if (covered_grob_spanned_rank[LEFT] > beam_spanned_rank_[RIGHT])
             break;
           /*
              Only consider grobs whose end falls at or after the beam's beginning.
@@ -103,7 +103,8 @@ Beam_collision_engraver::finalize ()
               && !(to_boolean (beam_grob->get_property ("collision-voice-only"))
                    && (covered_grob_context != beam_context))
               && !(Beam::has_interface (covered_grob)
-                   && (covered_grob_spanned_rank[LEFT] <= beam_spanned_rank_[LEFT])))
+                   && (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))