]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/dots.cc
release: 1.0.1
[lilypond.git] / lily / dots.cc
index 0525aa1dda9e45f3cd01915d708d05be90b5df9f..370ea3dbe7ae46272e2fe5efe0564bf8b09a0238 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 #include "dots.hh"
@@ -22,15 +22,32 @@ Dots::do_post_processing ()
 {
   if (!(position_i_ % 2))
     position_i_ ++;
+  if (!no_dots_i_)
+    {
+      transparent_b_ = true;
+      set_empty (true);
+    }
 }
 
 Molecule* 
 Dots::brew_molecule_p () const
 {
-  Symbol d = paper ()->lookup_l ()->dots (no_dots_i_);
-  Molecule *out = new Molecule (Atom (d));
+  Molecule *out = new Molecule;
+  Atom fill = lookup_l ()->fill (Box (Interval (0,0),
+                                              Interval (0,0)));
+  out->add_atom (fill);
+
+  Atom d = lookup_l ()->dots ();
+
+  Real dw = d.dim_[X_AXIS].length ();
+  d.translate_axis (-dw, X_AXIS);
+  for (int i=no_dots_i_; i--; )
+    {
+      d.translate_axis (2*dw,X_AXIS);
+      out->add_atom (d);
+    }
   Real inter_f = paper ()->internote_f ();
-  out->translate (inter_f * position_i_, Y_AXIS);
+  out->translate_axis (inter_f * position_i_, Y_AXIS);
   return out;
 }