]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/tie-formatting-problem.cc
Issue 2491: Macro for(UP_and_DOWN) and 3 similar.
[lilypond.git] / lily / tie-formatting-problem.cc
index c4e8a22eb9fc30854393ff1c7c20462dc0d36a43..d93df73abf2ef3db0d49169833cba4b7a2b7dd76 100644 (file)
@@ -56,8 +56,8 @@ Interval
 Tie_formatting_problem::get_attachment (Real y, Drul_array<int> columns) const
 {
   Interval attachments (0, 0);
-  Direction d = LEFT;
-  do
+
+  for (LEFT_and_RIGHT (d))
     {
       Tuple2<int> key (columns[d], int (d));
       Chord_outline_map::const_iterator i (chord_outlines_.find (key));
@@ -66,7 +66,6 @@ Tie_formatting_problem::get_attachment (Real y, Drul_array<int> columns) const
       else
         attachments[d] = i->second.height (y);
     }
-  while (flip (&d) != LEFT);
 
   return attachments;
 }
@@ -227,8 +226,7 @@ Tie_formatting_problem::set_column_chord_outline (vector<Item *> bounds,
 
     }
 
-  Direction updowndir = DOWN;
-  do
+  for (DOWN_and_UP (updowndir))
     {
       Interval x;
       Interval y;
@@ -244,7 +242,6 @@ Tie_formatting_problem::set_column_chord_outline (vector<Item *> bounds,
       if (!x.is_empty ())
         boxes.push_back (Box (x, y));
     }
-  while (flip (&updowndir) != DOWN);
 
   /* todo: the horizon_padding is somewhat arbitrary */
   chord_outlines_[key] = Skyline (boxes, details_.skyline_padding_, Y_AXIS, -dir);
@@ -340,8 +337,7 @@ Tie_formatting_problem::from_ties (vector<Grob *> const &ties)
 
   details_.from_grob (ties[0]);
 
-  Direction d = LEFT;
-  do
+  for (LEFT_and_RIGHT (d))
     {
       vector<Item *> bounds;
 
@@ -356,19 +352,17 @@ Tie_formatting_problem::from_ties (vector<Grob *> const &ties)
 
       set_chord_outline (bounds, d);
     }
-  while (flip (&d) != LEFT);
 
   for (vsize i = 0; i < ties.size (); i++)
     {
       Tie_specification spec;
       spec.from_grob (ties[i]);
 
-      do
+      for (LEFT_and_RIGHT (d))
         {
           spec.note_head_drul_[d] = Tie::head (ties[i], d);
           spec.column_ranks_[d] = Tie::get_column_rank (ties[i], d);
         }
-      while (flip (&d) != LEFT);
       specifications_.push_back (spec);
     }
 }
@@ -565,8 +559,7 @@ Tie_formatting_problem::generate_configuration (int pos, Direction dir,
         It would be better to check D against HEAD-DIRECTION if
         applicable.
       */
-      Direction d = LEFT;
-      do
+      for (LEFT_and_RIGHT (d))
         {
           Real y = conf->position_ * details_.staff_space_ * 0.5 + conf->delta_y_;
           if (get_stem_extent (conf->column_ranks_[d], d, X_AXIS).is_empty ()
@@ -577,7 +570,6 @@ Tie_formatting_problem::generate_configuration (int pos, Direction dir,
             = d * min (d * conf->attachment_x_[d],
                        d * (get_stem_extent (conf->column_ranks_[d], d, X_AXIS)[-d] - d * details_.stem_gap_));
         }
-      while (flip (&d) != LEFT);
     }
   return conf;
 }
@@ -631,8 +623,7 @@ Tie_formatting_problem::score_aptitude (Tie_configuration *conf,
       penalty += p;
   }
 
-  Direction d = LEFT;
-  do
+  for (LEFT_and_RIGHT (d))
     {
       if (!spec.note_head_drul_[d])
         continue;
@@ -652,14 +643,12 @@ Tie_formatting_problem::score_aptitude (Tie_configuration *conf,
         penalty += p;
 
     }
-  while (flip (&d) != LEFT);
 
   if (ties_conf
       && ties_conf->size () == 1)
     {
-      Direction d = LEFT;
       Drul_array<Grob *> stems (0, 0);
-      do
+      for (LEFT_and_RIGHT (d))
         {
           if (!spec.note_head_drul_[d])
             continue;
@@ -669,7 +658,6 @@ Tie_formatting_problem::score_aptitude (Tie_configuration *conf,
               && Stem::is_normal_stem (stem))
             stems[d] = stem;
         }
-      while (flip (&d) != LEFT);
 
       bool tie_stem_dir_ok = true;
       bool tie_position_dir_ok = true;
@@ -1038,11 +1026,10 @@ vector<Tie_configuration_variation>
 Tie_formatting_problem::generate_extremal_tie_variations (Ties_configuration const &ties) const
 {
   vector<Tie_configuration_variation> vars;
-  Direction d = DOWN;
   for (int i = 1; i <= details_.multi_tie_region_size_; i++)
     {
       Drul_array<Tie_configuration *> configs (0, 0);
-      do
+      for (DOWN_and_UP (d))
         {
           const Tie_configuration &config = boundary (ties, d, 0);
           if (config.dir_ == d
@@ -1057,7 +1044,6 @@ Tie_formatting_problem::generate_extremal_tie_variations (Ties_configuration con
               vars.push_back (var);
             }
         }
-      while (flip (&d) != DOWN);
       if (configs[LEFT] && configs[RIGHT])
         {
           Tie_configuration_variation var;
@@ -1080,8 +1066,7 @@ Tie_formatting_problem::generate_single_tie_variations (Ties_configuration const
     sz = 1;
   for (int i = 0; i < sz; i++)
     {
-      Direction d = LEFT;
-      do
+      for (LEFT_and_RIGHT (d))
         {
           if (i == 0
               && ties[0].dir_ == d)
@@ -1100,7 +1085,6 @@ Tie_formatting_problem::generate_single_tie_variations (Ties_configuration const
               vars.push_back (var);
             }
         }
-      while (flip (&d) != LEFT);
     }
   return vars;
 }