From fefaded5f250fbcd0531b178fd94a983c8c4f2d6 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Mon, 22 Apr 2002 16:30:18 +0000 Subject: [PATCH] (position_accidentals): use all note heads for note head-skyline. --- ChangeLog | 3 +++ input/regression/accidental-placement.ly | 1 + lily/accidental-placement.cc | 26 +++++++++++++++++++----- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 48dd9bf942..835f00e70c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2002-04-22 Han-Wen Nienhuys + * lily/accidental-placement.cc (position_accidentals): use all + note heads for note head-skyline. + * scripts/lilypond-book.py (re_dict): remove all *? regexps. 2002-04-22 Jan Nieuwenhuizen diff --git a/input/regression/accidental-placement.ly b/input/regression/accidental-placement.ly index 2f142c59a0..0b22b665e8 100644 --- a/input/regression/accidental-placement.ly +++ b/input/regression/accidental-placement.ly @@ -10,6 +10,7 @@ Accidentals in corresponding octaves are aligned." + } \paper { linewidth = -1. } } diff --git a/lily/accidental-placement.cc b/lily/accidental-placement.cc index acac43671a..5a8693b8ab 100644 --- a/lily/accidental-placement.cc +++ b/lily/accidental-placement.cc @@ -15,7 +15,8 @@ source file of the GNU LilyPond music typesetter #include "pitch.hh" #include "warn.hh" #include "accidental-placement.hh" - +#include "note-column.hh" +#include "group-interface.hh" MAKE_SCHEME_CALLBACK(Accidental_placement,extent_callback, 2); SCM @@ -160,7 +161,7 @@ Accidental_placement::position_accidentals (Grob * me) for (int i= apes.size (); i--;) commony = common_refpoint_of_array (apes[i]->grobs_, commony, Y_AXIS); - Link_array heads; + Link_array note_cols, heads; for (int i= apes.size (); i--;) { Accidental_placement_entry * ape = apes[i]; @@ -175,11 +176,14 @@ Accidental_placement::position_accidentals (Grob * me) b[Y_AXIS] = a->extent (commony, Y_AXIS); Grob *head = a->get_parent (Y_AXIS); - heads.push (head); - commony = commony->common_refpoint (head, Y_AXIS); + + Grob * col = head->get_parent (X_AXIS); + if (Note_column::has_interface (col)) + note_cols.push (col); + else + heads.push (head); ape->extents_.push (b); - /* TODO: replace the extents of a flat by combination of two @@ -190,6 +194,18 @@ Accidental_placement::position_accidentals (Grob * me) } } + + for (int i = note_cols.size() ; i--;) + { + heads.concat (Pointer_group_interface__extract_grobs (note_cols[i], + (Grob*)0, + "note-heads")); + + } + heads.default_sort(); + heads.uniq(); + commony = common_refpoint_of_array (heads, commony, Y_AXIS); + for (int i = apes.size(); i--;) { Interval y ; -- 2.39.2