]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/rest-collision.cc
2003 -> 2004
[lilypond.git] / lily / rest-collision.cc
index 57e6f9310af1744f3a61c98f2c8f0603611ade91..ea072a3b1e05fd7cfc86bcda0512ba949450c6c7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c)  1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 #include <math.h>              // ceil.
@@ -29,9 +29,9 @@ Rest_collision::force_shift_callback (SCM element_smob, SCM axis)
 
   Grob * rc = unsmob_grob (them->get_grob_property ("rest-collision"));
 
-  if (rc && !to_boolean (rc->get_grob_property ("rest-collision-done")))
+  if (rc && !to_boolean (rc->get_grob_property ("positioning-done")))
     {
-      rc->set_grob_property ("rest-collision-done", SCM_BOOL_T);
+      rc->set_grob_property ("positioning-done", SCM_BOOL_T);
 
       do_shift (rc);
     }
@@ -141,7 +141,6 @@ Rest_collision::do_shift (Grob *me)
          for (; i > display_count; i--)
            {
              Grob* r = unsmob_grob (rests[i-1]->get_grob_property ("rest"));
-#if 1
              if (r)
                {
                  Grob * d = unsmob_grob (r->get_grob_property ("dot"));
@@ -150,16 +149,6 @@ Rest_collision::do_shift (Grob *me)
                  r->suicide ();
                }
              rests[i-1]->suicide ();
-#else
-             if (r)
-               {
-                 
-                 r->set_grob_property ("transparent", gh_bool2scm(1));
-                 r = unsmob_grob (r->get_grob_property ("dot"));
-                 if (r)
-                   r->set_grob_property ("transparent", gh_bool2scm(1));
-               }
-#endif
            }
        }
       else
@@ -208,13 +197,13 @@ Rest_collision::do_shift (Grob *me)
       Grob * r = unsmob_grob (rcol->get_grob_property ("rest"));
       Interval restdim = r->extent (r, Y_AXIS);        // ??
 
-      if (restdim.empty_b ())
+      if (restdim.is_empty ())
        return SCM_UNSPECIFIED;
       
 
       Real staff_space = Staff_symbol_referencer::staff_space (rcol);
 
-      Real minimum_dist = gh_scm2double (me->get_grob_property ("minimum-distance")) * staff_space;
+      Real minimum_dist = robust_scm2double (me->get_grob_property ("minimum-distance"), 1.0) * staff_space;
 
 
       Grob *common = common_refpoint_of_array (notes, rcol, Y_AXIS);
@@ -254,5 +243,5 @@ Rest_collision::do_shift (Grob *me)
 ADD_INTERFACE (Rest_collision,"rest-collision-interface",
   "Move around ordinary rests (not multi-measure-rests) to avoid "
 "conflicts.",
-  "maximum-rest-count minimum-distance rest-collision-done elements");
+  "maximum-rest-count minimum-distance positioning-done elements");