]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/beam.cc
release: 0.1.24
[lilypond.git] / lily / beam.cc
index b1dae43061988fcd80c9b5e6f295c327356e2008..ea102e44572aab0c69709e6325acb5f637e5404d 100644 (file)
@@ -8,7 +8,7 @@
   TODO
 
   Less hairy code.  knee: ([\stem 1; c8 \stem -1; c8]
-  
+
 */
 
 #include <math.h>
@@ -53,14 +53,14 @@ Beam::add (Stem*s)
 }
 
 Molecule*
-Beam::brew_molecule_p() const 
+Beam::brew_molecule_p() const
 {
   Molecule *mol_p = new Molecule;
   // huh? inter-what
   //    Real inter_f = paper()->interbeam_f ();
   Real inter_f = paper()->internote_f ();
   Real x0 = stems[0]->hpos_f();
-  for (int j=0; j <stems.size(); j++) 
+  for (int j=0; j <stems.size(); j++)
     {
       Stem *i = stems[j];
       Stem * prev = (j > 0)? stems[j-1] : 0;
@@ -101,20 +101,20 @@ Beam::do_print() const
 void
 Beam::do_post_processing()
 {
-  if (stems.size() < 2) 
+  if (stems.size() < 2)
     {
-      warning ("Beam with less than 2 stems");
+      warning (_("Beam with less than 2 stems"));
       transparent_b_ = true;
       return ;
     }
-  solve_slope();    
+  solve_slope();
   set_stemlens();
 }
 
 void
 Beam::do_substitute_dependent (Score_elem*o,Score_elem*n)
 {
-  if (o->is_type_b (Stem::static_name())) 
+  if (o->is_type_b (Stem::static_name()))
       stems.substitute ((Stem*)o->item(),  n?(Stem*) n->item ():0);
 }
 
@@ -131,17 +131,17 @@ Beam::set_default_dir()
   int up = 0, down = 0;
   int up_count = 0, down_count = 0;
 
-  for (int i=0; i <stems.size(); i++) 
+  for (int i=0; i <stems.size(); i++)
     {
       Stem *sl = stems[i];
       int cur_down = sl->get_center_distance_from_top();
       int cur_up = sl->get_center_distance_from_bottom();
-      if (cur_down) 
+      if (cur_down)
        {
          down += cur_down;
          down_count++;
        }
-      if (cur_up) 
+      if (cur_up)
        {
          up += cur_up;
          up_count++;
@@ -156,7 +156,7 @@ Beam::set_default_dir()
   //        up / up_count > down / down_count
   dir_ = (up * down_count > down * up_count) ? UP : DOWN;
 
-  for (int i=0; i <stems.size(); i++) 
+  for (int i=0; i <stems.size(); i++)
     {
       Stem *sl = stems[i];
       sl->dir_ = dir_;
@@ -175,30 +175,30 @@ void
 Beam::solve_slope()
 {
   Array<Stem_info> sinfo;
-  for (int j=0; j <stems.size(); j++) 
+  for (int j=0; j <stems.size(); j++)
     {
       Stem *i = stems[j];
 
       i->set_default_extents();
       if (i->invisible_b())
        continue;
-       
+
       Stem_info info (i);
       sinfo.push (info);
     }
   if (! sinfo.size())
     slope = left_pos = 0;
-  else if (sinfo.size() == 1) 
+  else if (sinfo.size() == 1)
     {
       slope = 0;
       left_pos = sinfo[0].idealy_f_;
     }
-  else 
+  else
     {
-       
+
       Real leftx = sinfo[0].x;
       Least_squares l;
-      for (int i=0; i < sinfo.size(); i++) 
+      for (int i=0; i < sinfo.size(); i++)
        {
          sinfo[i].x -= leftx;
          l.input.push (Offset (sinfo[i].x, sinfo[i].idealy_f_));
@@ -206,18 +206,18 @@ Beam::solve_slope()
 
       l.minimise (slope, left_pos);
     }
-  
+
   Real dy = 0.0;
-  for (int i=0; i < sinfo.size(); i++) 
+  for (int i=0; i < sinfo.size(); i++)
     {
       Real y = sinfo[i].x * slope + left_pos;
       Real my = sinfo[i].miny_f_;
 
       if (my - y > dy)
-       dy = my -y;     
+       dy = my -y;
     }
   left_pos += dy;
-  left_pos *= dir_;    
+  left_pos *= dir_;
 
   slope *= dir_;
 
@@ -225,7 +225,7 @@ Beam::solve_slope()
     This neat trick is by Werner Lemberg, damped = tanh (slope) corresponds
     with some tables in [Wanske]
     */
-  slope = 0.6 * tanh (slope);  
+  slope = 0.6 * tanh (slope);
 
   // ugh
   Real sl = slope*paper()->internote_f ();
@@ -236,13 +236,13 @@ Beam::solve_slope()
 void
 Beam::set_stemlens()
 {
-  Real x0 = stems[0]->hpos_f();    
-  for (int j=0; j <stems.size(); j++) 
+  Real x0 = stems[0]->hpos_f();
+  for (int j=0; j <stems.size(); j++)
     {
       Stem *s = stems[j];
 
       Real x =  s->hpos_f()-x0;
-      s->set_stemend (left_pos + slope * x);   
+      s->set_stemend (left_pos + slope * x);
     }
 }
 
@@ -252,13 +252,13 @@ Beam::set_grouping (Rhythmic_grouping def, Rhythmic_grouping cur)
   def.OK();
   cur.OK();
   assert (cur.children.size() == stems.size ());
-  
+
   cur.split (def);
 
   Array<int> b;
   {
     Array<int> flags;
-    for (int j=0; j <stems.size(); j++) 
+    for (int j=0; j <stems.size(); j++)
       {
        Stem *s = stems[j];
 
@@ -273,7 +273,7 @@ Beam::set_grouping (Rhythmic_grouping def, Rhythmic_grouping cur)
     assert (stems.size() == b.size ()/2);
   }
 
-  for (int j=0, i=0; i < b.size() && j <stems.size (); i+= 2, j++) 
+  for (int j=0, i=0; i < b.size() && j <stems.size (); i+= 2, j++)
     {
       Stem *s = stems[j];
       s->beams_left_i_ = b[i];
@@ -299,7 +299,7 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const
   Molecule rightbeams;
 
   /* half beams extending to the left. */
-  if (prev) 
+  if (prev)
     {
       int lhalfs= lhalfs = here->beams_left_i_ - prev->beams_right_i_ ;
       int lwholebeams= here->beams_left_i_ <? prev->beams_right_i_ ;
@@ -308,18 +308,18 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const
       if (lhalfs)              // generates warnings if not
        a =  paper()->lookup_l ()->beam (sl, w);
       a.translate (Offset (-w, -w * sl));
-      for (int j = 0; j  < lhalfs; j++) 
+      for (int j = 0; j  < lhalfs; j++)
        {
          Atom b (a);
          b.translate_axis (-dir_ * dy * (lwholebeams+j), Y_AXIS);
          leftbeams.add (b);
        }
     }
-       
+
   if (next)
     {
       int rhalfs = here->beams_right_i_ - next->beams_left_i_;
-      int rwholebeams = here->beams_right_i_ <? next->beams_left_i_; 
+      int rwholebeams = here->beams_right_i_ <? next->beams_left_i_;
 
       Real w = next->hpos_f() - here->hpos_f ();
       Atom a = paper()->lookup_l ()->beam (sl, w + stemdx);
@@ -329,11 +329,11 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const
       if (here->beam_gap_i_)
        {
          int nogap = rwholebeams - here->beam_gap_i_;
-         for (; j  < nogap; j++) 
+         for (; j  < nogap; j++)
            {
              Atom b (a);
              b.translate_axis (-dir_ * dy * j, Y_AXIS);
-             rightbeams.add (b); 
+             rightbeams.add (b);
            }
          // TODO: notehead widths differ for different types
          gap_f = paper()->note_width () / 2;
@@ -341,24 +341,24 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const
          a = paper()->lookup_l ()->beam (sl, w + stemdx);
        }
 
-      for (; j  < rwholebeams; j++) 
+      for (; j  < rwholebeams; j++)
        {
          Atom b (a);
          b.translate (Offset (gap_f, -dir_ * dy * j));
-         rightbeams.add (b); 
+         rightbeams.add (b);
        }
 
       w /= 4;
       if (rhalfs)
        a = paper()->lookup_l ()->beam (sl, w);
-       
-      for (; j  < rwholebeams + rhalfs; j++) 
+
+      for (; j  < rwholebeams + rhalfs; j++)
        {
          Atom b (a);
          b.translate_axis (-dir_ * dy * j, Y_AXIS);
-         rightbeams.add (b); 
+         rightbeams.add (b);
        }
-       
+
     }
   leftbeams.add (rightbeams);
   return leftbeams;