X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fdot-configuration.cc;h=25d35eb6916c51b9d40af8b8c5eb0a672ee9a2cb;hb=90e4d7057f3857da049dfda3d130017d4719bd6b;hp=90486be9c092e5ba7b828dcccff0a1b5c301e650;hpb=e18531db1f79fb685fbd16d6a2a67bf4b6c09915;p=lilypond.git diff --git a/lily/dot-configuration.cc b/lily/dot-configuration.cc index 90486be9c0..25d35eb691 100644 --- a/lily/dot-configuration.cc +++ b/lily/dot-configuration.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2010 Han-Wen Nienhuys + Copyright (C) 1997--2015 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -22,7 +22,6 @@ #include "dot-formatting-problem.hh" #include "staff-symbol-referencer.hh" - int Dot_configuration::badness () const { @@ -34,16 +33,11 @@ Dot_configuration::badness () const int demerit = sqr (p - i->second.pos_) * 2; int dot_move_dir = sign (p - i->second.pos_); - if (i->second.extremal_head_) - { - if (i->second.dir_ - && dot_move_dir != i->second.dir_) - demerit += 3; - else if (dot_move_dir != UP) - demerit += 2; - } + if (i->second.dir_ + && dot_move_dir != i->second.dir_) + demerit += 2; else if (dot_move_dir != UP) - demerit += 1; + demerit += 1; t += demerit; } @@ -77,55 +71,55 @@ Dot_configuration::shifted (int k, Direction d) const if (d > 0) { for (Dot_configuration::const_iterator i (begin ()); - i != end (); i++) - { - int p = i->first; - if (p == k) - { - if (Staff_symbol_referencer::on_line (i->second.dot_, p)) - p += d; - else - p += 2* d; - - offset = 2*d; - - new_cfg[p] = i->second; - } - else - { - if (new_cfg.find (p) == new_cfg.end ()) - offset = 0; - new_cfg[p + offset] = i->second; - } - } + i != end (); i++) + { + int p = i->first; + if (p == k) + { + if (Staff_symbol_referencer::on_line (i->second.dot_, p)) + p += d; + else + p += 2 * d; + + offset = 2 * d; + + new_cfg[p] = i->second; + } + else + { + if (new_cfg.find (p) == new_cfg.end ()) + offset = 0; + new_cfg[p + offset] = i->second; + } + } } else { Dot_configuration::const_iterator i (end ()); do - { - i--; - - int p = i->first; - if (p == k) - { - if (Staff_symbol_referencer::on_line (i->second.dot_, p)) - p += d; - else - p += 2* d; - - offset = 2*d; - - new_cfg[p] = i->second; - } - else - { - if (new_cfg.find (p) == new_cfg.end ()) - offset = 0; - - new_cfg[p + offset] = i->second; - } - } + { + i--; + + int p = i->first; + if (p == k) + { + if (Staff_symbol_referencer::on_line (i->second.dot_, p)) + p += d; + else + p += 2 * d; + + offset = 2 * d; + + new_cfg[p] = i->second; + } + else + { + if (new_cfg.find (p) == new_cfg.end ()) + offset = 0; + + new_cfg[p + offset] = i->second; + } + } while (i != begin ()); }