]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/beam.hh
patch::: 1.3.62.hwn1
[lilypond.git] / lily / include / beam.hh
index ff53282f52661eaf11fa9b0d8e2507c15a89f6e7..d14801e370a24fc9c0fdcc6266761e40c74ea014 100644 (file)
@@ -1,14 +1,14 @@
 /*
   beam.hh -- part of GNU LilyPond
 
 /*
   beam.hh -- part of GNU LilyPond
 
-  (c) 1996--1999 Han-Wen Nienhuys
+  (c) 1996--2000 Han-Wen Nienhuys
 */
 
 #ifndef BEAM_HH
 #define BEAM_HH
 
 #include "lily-proto.hh"
 */
 
 #ifndef BEAM_HH
 #define BEAM_HH
 
 #include "lily-proto.hh"
-#include "directional-spanner.hh"
+#include "spanner.hh"
 
 
 /** a beam connects multiple stems.
 
 
 /** a beam connects multiple stems.
   Beam adjusts the stems its owns to make sure that they reach the
   beam and that point in the correct direction (urg?)
 
   Beam adjusts the stems its owns to make sure that they reach the
   beam and that point in the correct direction (urg?)
 
-elt property:
-
-damping: amount of beam slope damping. (int)
-
-should beam slope be damped? 0: no, 1: yes, 100000: horizontal beams 
-
-slope_quantisation: 'none, 'normal or 'traditional
+   elt_properties:
+   y-position: real  (position of left edge)
+   height: real  (dy)
 
 
+   damping: amount of beam slope damping. (int)
+   should beam slope be damped? 0: no, 1: yes, 100000: horizontal beams 
 */
 */
-class Beam : public Directional_spanner
+class Beam : public Spanner
 {
 public:
 {
 public:
+  static SCM brew_molecule (SCM);
+  
 
   int stem_count () const;
   Stem* stem (int) const;
 
   int stem_count () const;
   Stem* stem (int) const;
@@ -36,15 +36,7 @@ public:
   Stem* first_visible_stem () const;
   Stem* last_visible_stem () const;
 
   Stem* first_visible_stem () const;
   Stem* last_visible_stem () const;
 
-  /**
-     the slope of the beam in dy/dx
-   */
-  Real dydx_f_;
-
-  /// position of leftmost end of beam  
-  Real left_y_;
-
-  Beam ();
+  Beam (SCM);
   void add_stem (Stem*);
   void set_grouping (Rhythmic_grouping def, Rhythmic_grouping current);
   void set_beaming (Beaming_info_list *);
   void add_stem (Stem*);
   void set_grouping (Rhythmic_grouping def, Rhythmic_grouping current);
   void set_beaming (Beaming_info_list *);
@@ -53,20 +45,22 @@ public:
 
   int get_multiplicity () const;
 
 
   int get_multiplicity () const;
 
-protected:
+public:
  
  
-  virtual void do_pre_processing ();
-  virtual void do_post_processing ();
-  virtual Molecule*do_brew_molecule_p () const;
+  SCM member_before_line_breaking ();
+  static SCM before_line_breaking (SCM);
+  SCM member_after_line_breaking ();
+  static SCM after_line_breaking (SCM);
+  SCM member_brew_molecule () const;
 
   Molecule stem_beams (Stem *here, Stem *next, Stem *prev) const;
 private:
 
   Molecule stem_beams (Stem *here, Stem *next, Stem *prev) const;
 private:
-  Direction calc_default_dir () const;
+  Direction get_default_dir () const;
   void set_stem_directions ();
   void auto_knees ();
   bool auto_knee (String gap_str, bool interstaff_b);
   void set_stem_shorten ();
   void set_stem_directions ();
   void auto_knees ();
   bool auto_knee (String gap_str, bool interstaff_b);
   void set_stem_shorten ();
-  void calc_position_and_height (Real* y, Real* dy) const;
+  void calc_default_position_and_height (Real* y, Real* dy) const;
   bool suspect_slope_b (Real y, Real dy) const;
   Real calc_slope_damping_f (Real dy) const;
   Real calc_stem_y_f (Stem* s, Real y, Real dy) const;
   bool suspect_slope_b (Real y, Real dy) const;
   Real calc_slope_damping_f (Real dy) const;
   Real calc_stem_y_f (Stem* s, Real y, Real dy) const;
@@ -75,7 +69,6 @@ private:
   Real quantise_dy_f (Real dy) const;
   Real quantise_y_f (Real y, Real dy, int quant_dir);
   int forced_stem_count () const;
   Real quantise_dy_f (Real dy) const;
   Real quantise_y_f (Real y, Real dy, int quant_dir);
   int forced_stem_count () const;
-
 };
 
 #endif // BEAM_HH
 };
 
 #endif // BEAM_HH