]> git.donarmstrong.com Git - lilypond.git/commitdiff
* lily/include/directional-element-interface.hh:
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 29 Sep 2003 22:39:08 +0000 (22:39 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 29 Sep 2003 22:39:08 +0000 (22:39 +0000)
junk class, make {get,set}_grob_direction functions.

* lily/slur.cc (get_attachment): do something sensible when
attaching to stem without heads (eg. a rest).

* lily/stem.cc: remove #'up-to-staff ; use #'stem-end for forcing
up to staff. Add #'rests.
remove #'support-head property
(brew_molecule): small cleanup.
(flag): remove #'grace property.

14 files changed:
ChangeLog
lily/beam.cc
lily/breathing-sign.cc
lily/directional-element-interface.cc
lily/dots.cc
lily/dynamic-engraver.cc
lily/horizontal-bracket.cc
lily/include/directional-element-interface.hh
lily/side-position-interface.cc
lily/slur.cc
lily/stem.cc
lily/tie-column.cc
lily/tie.cc
lily/tuplet-bracket.cc

index 5e11ed1ec8f0a3604156d72b8b04333f0f8eba9f..473776ac14970c4442ef968e388671d0316f8560 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2003-09-30  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
 
+       * lily/include/directional-element-interface.hh:
+       junk class, make {get,set}_grob_direction functions.
+
        * lily/slur.cc (get_attachment): do something sensible when
        attaching to stem without heads (eg. a rest).
 
index 3b04092c5138d18b02e61add951c1b14ae9fc011..d39892847f1d32985189b5c964bb90f28b3afc2c 100644 (file)
@@ -236,7 +236,7 @@ Beam::connect_beams (Grob *me)
       Grob *this_stem = stems[i];
       SCM this_beaming = this_stem->get_grob_property ("beaming");
 
-      Direction this_dir = Directional_element_interface::get(this_stem);
+      Direction this_dir = get_grob_direction (this_stem);
       if (gh_pair_p (last_beaming) && gh_pair_p (this_beaming))
        {
          int start_point = position_with_maximal_common_beams
@@ -530,7 +530,7 @@ Beam::get_default_dir (Grob *me)
   for (int i=0; i <stems.size (); i++)
     do {
       Grob *s = stems[i];
-      Direction sd = Directional_element_interface::get (s);
+      Direction sd = get_grob_direction (s);
 
       int center_distance = int(- d * Stem::head_positions (s) [-d]) >? 0;
       int current = sd ? (1 + d * sd)/2 : center_distance;
@@ -572,7 +572,7 @@ Beam::set_stem_directions (Grob *me, Direction d)
   
       SCM forcedir = s->get_grob_property ("direction");
       if (!to_dir (forcedir))
-       Directional_element_interface::set (s, d);
+       set_grob_direction (s,  d);
     }
 }
 
@@ -1223,7 +1223,7 @@ Beam::calc_stem_y (Grob *me, Grob* s, Grob ** common,
                       * dy
                       : 0) + pos[LEFT];
   
-  Direction my_dir = Directional_element_interface::get (s);
+  Direction my_dir = get_grob_direction (s);
   SCM beaming = s->get_grob_property ("beaming");
  
   Real stem_y = stem_y_beam0;
@@ -1298,7 +1298,7 @@ Beam::set_stem_lengths (Grob *me)
        for normal beams, but for tremolo beams it looks silly otherwise.
        */
       if (gap)
-       stem_y += thick * 0.5 * Directional_element_interface::get(s);
+       stem_y += thick * 0.5 * get_grob_direction (s);
 
       Stem::set_stemend (s, 2* stem_y / staff_space);
     }
@@ -1504,8 +1504,7 @@ Beam::knee_b (Grob* me)
   int d = 0;
   for (SCM s = me->get_grob_property ("stems"); gh_pair_p (s); s = ly_cdr (s))
     {
-      Direction dir = Directional_element_interface::get
-       (unsmob_grob (ly_car (s)));
+      Direction dir = get_grob_direction (unsmob_grob (ly_car (s)));
       if (d && d != dir)
        {
          knee = true;
index 30e24dfb39fa402b10c29050d46292fa1f170dae..ede4b2f8b96c0e316ac0f47cdbdff5da3433dc63 100644 (file)
@@ -178,11 +178,11 @@ Breathing_sign::offset_callback (SCM element_smob, SCM)
 {
   Grob *me = unsmob_grob (element_smob);
   
-  Direction d = Directional_element_interface::get (me);
+  Direction d = get_grob_direction (me);
   if (!d)
     {
       d = UP;
-      Directional_element_interface::set (me, d);
+      set_grob_direction (me, d);
     }
 
   Real inter_f = Staff_symbol_referencer::staff_space (me)/2;
index dec6d49ce3a52dde394cc5495dc21097d8a713d3..230bcc8cd0689289ea4ccd3de46c851523f9d4e1 100644 (file)
 #include "directional-element-interface.hh"
 
 
-
-
-bool
-Directional_element_interface::has_interface (Grob*me) 
-{
-  return is_direction (me->get_grob_property ("direction"));
-}
-
 Direction
-Directional_element_interface::get (Grob*me) 
+get_grob_direction (Grob*me) 
 {
-  // return dir_;
   SCM d= me->get_grob_property ("direction");
   if (!is_direction (d))
     return CENTER;
@@ -30,13 +21,8 @@ Directional_element_interface::get (Grob*me)
 }
 
 void
-Directional_element_interface::set (Grob*me, Direction d) 
+set_grob_direction (Grob*me, Direction d) 
 {
   SCM sd = gh_int2scm (d);
-
-  /*
-    Vain attempt to save some conses.
-   */
-  if (me->get_grob_property ("direction") != sd)
-    me->set_grob_property ("direction", sd);
+  me->set_grob_property ("direction", sd);
 }
index b6343f17b4c9911b7e43123df29bc204758be74c..c71973054703b2403cdd324ea0dac0652d9dcf40 100644 (file)
@@ -27,11 +27,11 @@ Dots::quantised_position_callback (SCM element_smob, SCM axis)
   SCM d= me->get_grob_property ("dot-count");
   if (gh_number_p (d) && gh_scm2int (d))
     {
-      if (!Directional_element_interface::get (me))
-       Directional_element_interface::set (me, UP);
+      if (!get_grob_direction (me))
+       set_grob_direction (me, UP);
 
       if (Staff_symbol_referencer::on_staffline (me))
-       return gh_double2scm (Staff_symbol_referencer::staff_space (me) / 2.0 * Directional_element_interface::get (me));
+       return gh_double2scm (Staff_symbol_referencer::staff_space (me) / 2.0 * get_grob_direction (me));
     }
 
   return gh_double2scm (0.0);
index 3344f8753ed37cd7dac26808c2d6024cd2bf509d..a8bb1d2f899d06d0e721e3369d9fdb3cd9615ce9 100644 (file)
@@ -170,7 +170,7 @@ Dynamic_engraver::process_music ()
 
       
       if (Direction d = to_dir (script_ev_->get_mus_property ("direction")))
-       Directional_element_interface::set (line_spanner_, d);
+       set_grob_direction (line_spanner_, d);
 
       Axis_group_interface::add_element (line_spanner_, script_);
 
@@ -227,7 +227,7 @@ Dynamic_engraver::process_music ()
          current_cresc_ev_ = accepted_spanreqs_drul_[START];
 
          if (Direction d = to_dir (current_cresc_ev_->get_mus_property ("direction")))
-           Directional_element_interface::set (line_spanner_, d);
+           set_grob_direction (line_spanner_, d);
 
          /*
            TODO: Use symbols.
index d1259113222f3991059b728c0f4400f2ae35fb3d..6f4dbc09dba7e645704ce6ee3790f441ce9a161a 100644 (file)
@@ -50,7 +50,7 @@ Horizontal_bracket::brew_molecule (SCM smob)
   Interval ext = gs.top()->extent (cx, X_AXIS);
   ext.unite (gs[0]->extent (cx, X_AXIS));
 
-  Direction d = Directional_element_interface::get (me);
+  Direction d = get_grob_direction (me);
   Real t = me->get_paper()->get_realvar (ly_symbol2scm ("linethickness"));
 
   SCM lthick = me->get_grob_property ("thickness");
index ea77c3dc557321bade50f1810c41abac95d91bd3..91336308c59fc29c6828270077559a00c4324480 100644 (file)
 
 #include "grob.hh"
 
-struct Directional_element_interface 
-{
-public:
-
-  static void set (Grob*,Direction d);
-  static Direction get (Grob*) ;
-  static bool has_interface (Grob*) ;
-};
-
+void set_grob_direction (Grob*, Direction);
+Direction get_grob_direction (Grob*);
 
 #endif /* DIRECTIONAL_ELEMENT_HH */
 
index 103593b686c95be0bf6a7e80b69e5460209bfcea..592d53834f02176a937e67e28a57c2c6b2a6b6fa 100644 (file)
@@ -42,7 +42,7 @@ Side_position_interface::get_direction (Grob*me)
   Grob * e = unsmob_grob (other_elt);
   if (e)
     {
-      return (Direction) (relative_dir * Directional_element_interface::get (e));
+      return (Direction) (relative_dir * get_grob_direction (e));
     }
   
   return CENTER;
index c3d7b1e2c1cc8fff4c6c3ca049787d04abb501dc..5a42fcb7da3aa590e44cb0224dd4a28387516f4b 100644 (file)
@@ -160,7 +160,7 @@ Slur::check_slope (Grob *me)
          o[RIGHT] = ly_scm2offset (index_get_cell (a, RIGHT));
          o[d][Y_AXIS] -= (limit - slope) * dx * dir / staff_space;
 
-         o[d][Y_AXIS] *= Directional_element_interface::get (me);
+         o[d][Y_AXIS] *= get_grob_direction (me);
 
          me->set_grob_property ("attachment-offset",
                                gh_cons (ly_offset2scm (o[LEFT]),
@@ -176,8 +176,8 @@ Slur::check_slope (Grob *me)
 SCM
 Slur::set_extremities (Grob *me)
 {
-  if (!Directional_element_interface::get (me))
-    Directional_element_interface::set (me, get_default_dir (me));
+  if (!get_grob_direction (me))
+    set_grob_direction (me, get_default_dir (me));
 
   SCM att = me->get_grob_property ("attachment");
       /*
@@ -415,7 +415,7 @@ Slur::encompass_offset (Grob*me,
   Offset o;
   Grob* stem = unsmob_grob (col->get_grob_property ("stem"));
   
-  Direction dir = Directional_element_interface::get (me);
+  Direction dir = get_grob_direction (me);
   
   if (!stem)
     {
@@ -424,7 +424,7 @@ Slur::encompass_offset (Grob*me,
       o[Y_AXIS] = col->relative_coordinate (common[Y_AXIS], Y_AXIS);
       return o;  
     }
-  Direction stem_dir = Directional_element_interface::get (stem);
+  Direction stem_dir = get_grob_direction (stem);
   o[X_AXIS] = stem->relative_coordinate (0, X_AXIS);
 
   /*
@@ -561,7 +561,7 @@ Slur::brew_molecule (SCM smob)
   if (gh_number_p (d))
     a = Lookup::dashed_slur (one, thick, thick * gh_scm2double (d));
   else
-    a = Lookup::slur (one, Directional_element_interface::get (me) * thick, thick);
+    a = Lookup::slur (one, get_grob_direction (me) * thick, thick);
 
   return a.smobbed_copy ();
 }
@@ -579,7 +579,7 @@ Slur::set_control_points (Grob*me)
   Real h_inf = staff_space * gh_scm2double (h_inf_scm);
   
   Slur_bezier_bow bb (get_encompass_offsets (me),
-                     Directional_element_interface::get (me),
+                     get_grob_direction (me),
                      h_inf, r_0);
 
 
@@ -646,7 +646,7 @@ Slur::get_curve (Grob*me)
     attach = set_extremities(me);
 
   
-  if (!Directional_element_interface::get (me)
+  if (!get_grob_direction (me)
       || ! gh_symbol_p (index_get_cell (attach, LEFT))
       || ! gh_symbol_p (index_get_cell (attach, RIGHT)))
     set_extremities (me);
@@ -665,7 +665,7 @@ Slur::get_curve (Grob*me)
     }
 
   Array<Offset> enc (get_encompass_offsets (me));
-  Direction dir = Directional_element_interface::get (me);
+  Direction dir = get_grob_direction (me);
   
   Real x1 = enc[0][X_AXIS];
   Real x2 = enc.top ()[X_AXIS];
index 968339aec4609f88247eb26e63483ce273067f9d..e4a8950024ba52c3afdfc123c15c33484cfd778f 100644 (file)
@@ -97,13 +97,13 @@ Stem::stem_end_position (Grob*me)
 Direction
 Stem::get_direction (Grob*me)
 {
-  Direction d = Directional_element_interface::get (me);
+  Direction d = get_grob_direction (me);
 
   if (!d)
     {
        d = get_default_dir (me);
        // urg, AAARGH!
-       Directional_element_interface::set (me, d);
+       set_grob_direction (me, d);
     }
   return d ;
 }
@@ -308,7 +308,7 @@ Stem::get_default_stem_end_position (Grob*me)
   if (!dir)
     {
       dir = get_default_dir (me);
-      Directional_element_interface::set (me, dir);
+      set_grob_direction (me, dir);
     }
 
 
@@ -822,7 +822,7 @@ Stem::get_stem_info (Grob *me)
     }
   
   Stem_info si;
-  si.dir_ = Directional_element_interface::get (me); 
+  si.dir_ = get_grob_direction (me); 
   si.ideal_y_ = gh_scm2double (gh_car (scm_info)); 
   si.shortest_y_ = gh_scm2double (gh_cadr (scm_info));
   return si;
@@ -835,7 +835,7 @@ Stem::get_stem_info (Grob *me)
 void
 Stem::calc_stem_info (Grob *me)
 {
-  Direction my_dir = Directional_element_interface::get (me);
+  Direction my_dir = get_grob_direction (me);
   Real staff_space = Staff_symbol_referencer::staff_space (me);
   Grob *beam = get_beam (me);
   Real beam_translation = Beam::get_beam_translation (beam);
index 6d4ad0e2932163bbd83fc533ec673fb3f71e0820..0f43e88515b00b155af51ac722d08c9d97dc3e40 100644 (file)
@@ -60,7 +60,7 @@ Tie_column::set_directions (Grob*me)
     Pointer_group_interface__extract_grobs (me, (Grob*)0, "ties");
 
   for (int i = ties.size (); i--;)
-    if (Directional_element_interface::get (ties[i]))
+    if (get_grob_direction (ties[i]))
       ties.del (i);
   
 
@@ -68,13 +68,13 @@ Tie_column::set_directions (Grob*me)
     return ;
   
 
-  Direction d = Directional_element_interface::get (me);
+  Direction d = get_grob_direction (me);
   if (d)
     {
       for (int i = ties.size (); i--;)
        {
          Grob *  t = ties[i];
-         Directional_element_interface::set (t, d);
+         set_grob_direction (t, d);
        }
       return;
     }
@@ -82,15 +82,15 @@ Tie_column::set_directions (Grob*me)
   if (ties.size () == 1)
     {
       Grob *  t = ties[0];      
-      Directional_element_interface::set (t,Tie::get_default_dir (t));
+      set_grob_direction (t,Tie::get_default_dir (t));
       return;
     }
   
   ties.sort (tie_compare);
-  Directional_element_interface::set (ties[0], DOWN);
+  set_grob_direction (ties[0], DOWN);
   ties.del (0);
   
-  Directional_element_interface ::set (ties.pop (), UP);
+  set_grob_direction (ties.pop (), UP);
   for (int i=ties.size (); i--;)
     {
       Grob *  t = ties[i];
@@ -98,7 +98,7 @@ Tie_column::set_directions (Grob*me)
       Direction d = (Direction) sign (p);
       if (!d)
        d = UP;
-      Directional_element_interface::set (t, d);
+      set_grob_direction (t, d);
     }
   
 }
index f314d8bc1727f544a6e899024ac5404c61fef6ad..e82516c56926272fc42933172578dbe4a85ef404 100644 (file)
@@ -86,14 +86,14 @@ Tie::get_default_dir (Grob*me)
 
   if (sl && sr)
     {
-      if (Directional_element_interface::get (sl) == UP
-         && Directional_element_interface::get (sr) == UP)
+      if (get_grob_direction (sl) == UP
+         && get_grob_direction (sr) == UP)
        return DOWN;
     }
   else if (sl || sr)
     {
       Item *s = sl ? sl : sr;
-      return - Directional_element_interface::get (s);
+      return - get_grob_direction (s);
     }
 
   
@@ -122,9 +122,9 @@ Tie::get_control_points (SCM smob)
     }
 
   
-  if (!Directional_element_interface::get (me))
-    Directional_element_interface::set (me, Tie::get_default_dir (me));
-  Direction dir = Directional_element_interface::get (me);
+  if (!get_grob_direction (me))
+    set_grob_direction (me, Tie::get_default_dir (me));
+  Direction dir = get_grob_direction (me);
   
   Real staff_space = Staff_symbol_referencer::staff_space (me);
 
@@ -327,7 +327,7 @@ Tie::brew_molecule (SCM smob)
       i++;
     }
   
-   Molecule a = Lookup::slur (b, Directional_element_interface::get (me) * thick, thick);
+   Molecule a = Lookup::slur (b, get_grob_direction (me) * thick, thick);
    
    return a.smobbed_copy ();
 }
index 306ff7b679258e8575d4a5e6af402342d8199db6..d8dce6cfcc2b435824aa37fee15b505d2bea869a 100644 (file)
@@ -142,7 +142,7 @@ Tuplet_bracket::brew_molecule (SCM smob)
   commonx = commonx->common_refpoint (sp->get_bound(LEFT), X_AXIS);
   commonx = commonx->common_refpoint (sp->get_bound(RIGHT), X_AXIS);  
   
-  Direction dir = Directional_element_interface::get (me);
+  Direction dir = get_grob_direction (me);
 
   Grob * lgr = get_x_bound_grob (columns[0], dir);
   Grob * rgr = get_x_bound_grob (columns.top(), dir);  
@@ -288,7 +288,7 @@ Tuplet_bracket::calc_position_and_height (Grob*me,Real *offset, Real * dy)
   Grob * commony = common_refpoint_of_list (cols, me, Y_AXIS);
   Grob * commonx = common_refpoint_of_list (cols, me, X_AXIS);  
   
-  Direction dir = Directional_element_interface::get (me);
+  Direction dir = get_grob_direction (me);
 
   /*
     Use outer non-rest columns to determine slope
@@ -375,7 +375,7 @@ Tuplet_bracket::calc_dy (Grob*me,Real * dy)
   /*
     ugh. refps.
    */
-  Direction d = Directional_element_interface::get (me);
+  Direction d = get_grob_direction (me);
   *dy = columns.top ()->extent (columns.top (), Y_AXIS) [d]
     - columns[0]->extent (columns[0], Y_AXIS) [d];
 }
@@ -424,11 +424,11 @@ Tuplet_bracket::after_line_breaking (SCM smob)
       return SCM_UNSPECIFIED;
     }
   
-  Direction dir = Directional_element_interface::get (me);
+  Direction dir = get_grob_direction (me);
   if (!dir)
     {
       dir = Tuplet_bracket::get_default_dir (me);
-      Directional_element_interface::set (me, dir);
+      set_grob_direction (me, dir);
     }
   
   bool equally_long = false;
@@ -439,7 +439,7 @@ Tuplet_bracket::after_line_breaking (SCM smob)
    */
   Real dy, offset;
   if (!par_beam
-      || Directional_element_interface::get (par_beam) != dir)
+      || get_grob_direction (par_beam) != dir)
     {
       calc_position_and_height (me,&offset,&dy);
     }