]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.1.36
authorfred <fred>
Tue, 26 Mar 2002 21:48:19 +0000 (21:48 +0000)
committerfred <fred>
Tue, 26 Mar 2002 21:48:19 +0000 (21:48 +0000)
lily/beam.cc
lily/clef-engraver.cc

index 752f23e10b44e265957158884d65218acad3a484..d5f9d9e9a9c7ecde26fb6ce9cced66175b229b9a 100644 (file)
@@ -26,7 +26,6 @@
 #include "abbreviation-beam.hh"
 #include "misc.hh"
 #include "debug.hh"
-
 #include "molecule.hh"
 #include "leastsquares.hh"
 #include "stem.hh"
@@ -38,7 +37,6 @@ Beam::Beam ()
 {
   slope_f_ = 0;
   left_y_ = 0;
-  damping_i_ = 1;
   quantisation_ = NORMAL;
   multiple_i_ = 0;
   vertical_align_drul_[MIN] = 0;
@@ -62,6 +60,9 @@ Molecule*
 Beam::do_brew_molecule_p () const
 {
   Molecule *mol_p = new Molecule;
+  if (!sinfo_.size ())
+    return mol_p;
+  
   Real x0 = stems_[0]->hpos_f ();
   for (int j=0; j <stems_.size (); j++)
     {
@@ -200,8 +201,10 @@ Beam::set_default_dir ()
   for (int i=0; i <stems_.size (); i++)
     {
       Stem *s = stems_[i];
-      s->beam_dir_ = dir_;
-      if (!s->dir_forced_b_)
+      s->set_elt_property (beam_dir_scm_sym, gh_int2scm (dir_));
+
+      SCM force = s->remove_elt_property (dir_forced_scm_sym);
+      if (force == SCM_BOOL_F)
        s->dir_ = dir_;
     }
 }
@@ -358,8 +361,13 @@ Beam::calculate_slope ()
        damped = tanh (slope_f_)
        corresponds with some tables in [Wanske]
       */
-      if (damping_i_)
-       slope_f_ = 0.6 * tanh (slope_f_) / damping_i_;
+      SCM damp = remove_elt_property (damping_scm_sym);
+      int damping = 1;         // ugh.
+      if (damp!= SCM_BOOL_F)
+       damping = gh_int2scm (SCM_CDR(damp));
+
+      if (damping)
+       slope_f_ = 0.6 * tanh (slope_f_) / damping;
       
       quantise_dy ();
 
index bdd816430c5e6ed57390afb9339c7b7d075a6b9e..da300420b16aaf5bec51984711142df57f764449 100644 (file)
@@ -30,7 +30,7 @@ Clef_engraver::Clef_engraver()
 }
 
 /*
-  ugh.  Should be configurable.
+  PUT THIS IN GUILE!
  */
 struct Clef_settings {
   char const *name;
@@ -125,9 +125,11 @@ Clef_engraver::acknowledge_element (Score_element_info info)
   if (dynamic_cast<Bar*>(info.elem_l_)
       && clef_type_str_.length_i())
     {
+      bool def = !clef_p_;
       create_clef();
-      if (!clef_req_l_)
-       clef_p_->default_b_ = true;
+      if(def)
+       clef_p_->set_elt_property(visibility_lambda_scm_sym,
+                                 gh_eval_str ("postbreak_only_visibility"));
     }
 
   /* ugh; should make Clef_referenced baseclass */
@@ -161,7 +163,7 @@ Clef_engraver::do_creation_processing()
   if (clef_type_str_.length_i ())
     { 
       create_clef();
-      clef_p_->default_b_ = false;
+      clef_p_->set_elt_property (non_default_scm_sym, SCM_BOOL_T);
     }
 }
 
@@ -194,7 +196,10 @@ Clef_engraver::create_clef()
   
   clef_p_->symbol_ = clef_type_str_;
   clef_p_->y_position_i_ = clef_position_i_;
-  clef_p_->octave_dir_ = octave_dir_;
+  if (octave_dir_)
+    {
+      clef_p_->set_elt_property (octave_dir_scm_sym, gh_int2scm (octave_dir_));
+    }
 }
 
 
@@ -204,14 +209,12 @@ Clef_engraver::do_process_requests()
   if (clef_req_l_)
     {
       create_clef();
-      clef_p_->default_b_ = false;
     }
   else if (create_default_b_)
     {
       String type = get_property ("defaultClef", 0);
       set_type (type.length_i () ? type : "treble");
       create_clef ();
-      clef_p_->default_b_ = false;
       create_default_b_ =0;
     }
 }