summaryrefslogtreecommitdiff
path: root/lily/include
diff options
context:
space:
mode:
authorHan-Wen Nienhuys <hanwen@xs4all.nl>2000-07-05 15:41:25 +0200
committerHan-Wen Nienhuys <hanwen@xs4all.nl>2000-07-05 15:41:25 +0200
commit3c2f386f1385a10dafbb811be245f5a75d6b132c (patch)
tree057d298c5fc72aab670c3831e033f9b62d807dc2 /lily/include
parentcb788160bb99e5c6d1e28ba9dd3be955b2a99edc (diff)
release: 1.3.70
====== * Cleanup auto-beam-engraver: use properties for retrieving timing information. * Fixed: Multi measure rests don't cause crashes. * Fixed: don't invoke Hara_kiri::consider_suicide too early. * Fixed: property engraver. * Fixed: don't crash on multiple ties. * Cleanups of Beam, should also be a little faster. * Reunite properties and pointers. In implementation we make a distinction between mutable and immutable properties * Add {has|set}_interface () static methods to interface classes. * Made Side_position_interface and Staff_symbol_interface an all statics class, and stripped _interface suffix. * Make Align_interface and Axis_group_interface an all-statics class * Rhythmic_head, Staff_symbol, Grace_align_item, Break_align_item, Bar, Span_bar are now interfaces, Staff_bar was removed. Use a callback for determining barsize. * Removed all GLUE_SCORE_ELEMENT callbacks. * Added test for repeats to trip.ly 1.3
Diffstat (limited to 'lily/include')
-rw-r--r--lily/include/beam.hh57
-rw-r--r--lily/include/break-algorithm.hh6
-rw-r--r--lily/include/collision.hh2
-rw-r--r--lily/include/column-x-positions.hh2
-rw-r--r--lily/include/item.hh2
-rw-r--r--lily/include/line-of-score.hh2
-rw-r--r--lily/include/multi-measure-rest.hh12
-rw-r--r--lily/include/note-column.hh29
-rw-r--r--lily/include/paper-column.hh44
-rw-r--r--lily/include/rest-collision.hh2
-rw-r--r--lily/include/rod.hh7
-rw-r--r--lily/include/score-element.hh2
-rw-r--r--lily/include/script.hh11
-rw-r--r--lily/include/separating-group-spanner.hh8
-rw-r--r--lily/include/simple-spacer.hh2
-rw-r--r--lily/include/slur.hh38
-rw-r--r--lily/include/spaceable-element.hh29
-rw-r--r--lily/include/spacing-engraver.hh57
-rw-r--r--lily/include/spacing-spanner.hh22
-rw-r--r--lily/include/spanner.hh5
-rw-r--r--lily/include/stem.hh22
-rw-r--r--lily/include/system-start-delimiter.hh17
-rw-r--r--lily/include/tie-column.hh8
-rw-r--r--lily/include/tie.hh2
24 files changed, 146 insertions, 242 deletions
diff --git a/lily/include/beam.hh b/lily/include/beam.hh
index dba75f2045..b83254e1c5 100644
--- a/lily/include/beam.hh
+++ b/lily/include/beam.hh
@@ -8,7 +8,7 @@
#define BEAM_HH
#include "lily-proto.hh"
-#include "spanner.hh"
+#include "lily-guile.hh"
/** a beam connects multiple stems.
@@ -25,44 +25,41 @@
damping -- amount of beam slope damping. (int)
should beam slope be damped? 0: no, 1: yes, 100000: horizontal beams
*/
-class Beam : public Spanner
+class Beam
{
public:
-
-
- int visible_stem_count () const;
- Item* first_visible_stem () const;
- Item* last_visible_stem () const;
+ static int visible_stem_count (Score_element*);
+ static Item* first_visible_stem (Score_element*);
+ static Item* last_visible_stem (Score_element*);
+ static bool has_interface (Score_element*);
+ static void set_interface (Score_element*);
static Real rest_collision_callback (Score_element *,Axis);
Beam (SCM);
- void add_stem (Score_element*);
- void set_grouping (Rhythmic_grouping def, Rhythmic_grouping current);
- void set_beaming (Beaming_info_list *);
- void set_stemlens ();
- VIRTUAL_COPY_CONS(Score_element);
-
- int get_multiplicity () const;
-
+ static void add_stem (Score_element*,Score_element*);
+ static void set_grouping (Score_element*,Rhythmic_grouping def, Rhythmic_grouping current);
+ static void set_beaming (Score_element*,Beaming_info_list *);
+ static void set_stemlens (Score_element*);
+ static int get_multiplicity (Score_element*me);
static SCM brew_molecule (SCM);
static SCM before_line_breaking (SCM);
static SCM after_line_breaking (SCM);
+ static Molecule stem_beams (Score_element*,Item *here, Item *next, Item *prev);
- Molecule stem_beams (Item *here, Item *next, Item *prev) const;
private:
- 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 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 (Item* s, Real y, Real dy) const;
- Real check_stem_length_f (Real y, Real dy) const;
- void set_stem_length (Real y, Real dy);
- Real quantise_dy_f (Real dy) const;
- Real quantise_y_f (Real y, Real dy, int quant_dir);
- int forced_stem_count () const;
+ static Direction get_default_dir (Score_element*);
+ static void set_stem_directions (Score_element*);
+ static void auto_knees (Score_element*);
+ static bool auto_knee (Score_element*,String gap_str, bool interstaff_b);
+ static void set_stem_shorten (Score_element*);
+ static void calc_default_position_and_height (Score_element*,Real* y, Real* dy);
+ static bool suspect_slope_b (Score_element*, Real y, Real dy);
+ static Real calc_slope_damping_f (Score_element*, Real dy);
+ static Real calc_stem_y_f (Score_element*, Item* s, Real y, Real dy);
+ static Real check_stem_length_f (Score_element*, Real y, Real dy);
+ static void set_stem_length (Score_element*, Real y, Real dy);
+ static Real quantise_dy_f (Score_element*, Real dy);
+ static Real quantise_y_f (Score_element*, Real y, Real dy, int quant_dir);
+ static int forced_stem_count (Score_element*);
};
#endif // BEAM_HH
diff --git a/lily/include/break-algorithm.hh b/lily/include/break-algorithm.hh
index 7e0c341544..fa0b0d7770 100644
--- a/lily/include/break-algorithm.hh
+++ b/lily/include/break-algorithm.hh
@@ -28,7 +28,7 @@ protected:
Real linewidth_f_;
/// search all pcols which are breakable.
- Link_array<Paper_column> find_breaks() const;
+ Link_array<Score_element> find_breaks() const;
Array<int> find_break_indices() const;
@@ -37,10 +37,10 @@ protected:
void solve_line (Column_x_positions*) const;
/// does curline fit on the paper?
- bool feasible (Link_array<Paper_column>) const;
+ bool feasible (Link_array<Score_element>) const;
- Simple_spacer* generate_spacing_problem (Link_array<Paper_column>, Interval) const;
+ Simple_spacer* generate_spacing_problem (Link_array<Score_element>, Interval) const;
virtual Array<Column_x_positions> do_solve() const=0;
diff --git a/lily/include/collision.hh b/lily/include/collision.hh
index 469dfeacbd..10c5397a6e 100644
--- a/lily/include/collision.hh
+++ b/lily/include/collision.hh
@@ -43,6 +43,6 @@ public:
static SCM forced_shift (Score_element*);
static Real force_shift_callback (Score_element *, Axis);
static void do_shifts (Score_element*);
- static void add_column (Score_element*me,Note_column*ncol_l);
+ static void add_column (Score_element*me,Score_element*ncol_l);
};
#endif // COLLISION_HH
diff --git a/lily/include/column-x-positions.hh b/lily/include/column-x-positions.hh
index 23bea78d2e..aec9602223 100644
--- a/lily/include/column-x-positions.hh
+++ b/lily/include/column-x-positions.hh
@@ -13,7 +13,7 @@
struct Column_x_positions
{
- Link_array<Paper_column> cols_;
+ Link_array<Score_element> cols_;
Array<Real> config_;
Real force_f_;
bool satisfies_constraints_b_;
diff --git a/lily/include/item.hh b/lily/include/item.hh
index c036dd2e52..16f298f7f2 100644
--- a/lily/include/item.hh
+++ b/lily/include/item.hh
@@ -43,7 +43,7 @@ public:
Item (SCM);
Item (Item const &);
- bool breakable_b () const;
+ static bool breakable_b (Score_element*me);
bool broken_b () const;
Direction break_status_dir () const;
diff --git a/lily/include/line-of-score.hh b/lily/include/line-of-score.hh
index 9d510c692c..96b3d6b265 100644
--- a/lily/include/line-of-score.hh
+++ b/lily/include/line-of-score.hh
@@ -44,7 +44,7 @@ public:
void output_lines ();
Link_array<Item> broken_col_range (Item const*, Item const*) const;
- Link_array<Paper_column> column_l_arr () const;
+ Link_array<Score_element> column_l_arr () const;
void add_column (Paper_column*);
void typeset_element (Score_element*);
diff --git a/lily/include/multi-measure-rest.hh b/lily/include/multi-measure-rest.hh
index 71353da3b1..4b57a9662c 100644
--- a/lily/include/multi-measure-rest.hh
+++ b/lily/include/multi-measure-rest.hh
@@ -10,20 +10,18 @@
#ifndef MULTI_MEASURE_REST_HH
#define MULTI_MEASURE_REST_HH
-#include "spanner.hh"
+#include "lily-proto.hh"
+#include "lily-guile.hh"
+#include "rod.hh"
-
-class Multi_measure_rest : public Spanner
+class Multi_measure_rest
{
public:
- Multi_measure_rest (SCM);
-
static void set_interface (Score_element*);
static bool has_interface (Score_element*);
static SCM brew_molecule (SCM);
static void add_column (Score_element*,Item*);
- VIRTUAL_COPY_CONS (Score_element);
- virtual Array<Rod> get_rods () const;
+ static SCM set_spacing_rods (SCM);
};
#endif /* MULTI_MEASURE_REST_HH */
diff --git a/lily/include/note-column.hh b/lily/include/note-column.hh
index 7bf51956d5..855d655cd6 100644
--- a/lily/include/note-column.hh
+++ b/lily/include/note-column.hh
@@ -18,33 +18,30 @@
UGR. Junkme. refpoint should be the notehead, dir should come from stem.
*/
-class Note_column : public Item
+class Note_column
{
public:
- static int shift_compare (Note_column *const &, Note_column*const&);
+ static int shift_compare (Score_element *const &, Score_element*const&);
/** The relative position of the "voice" containing this
chord. Normally this would be the same as the stem direction,
JUNKME.
*/
- Direction dir () const;
-
- static Slice head_positions_interval(Score_element* me) ;
+ static Direction dir (Score_element*me);
+ static Slice head_positions_interval(Score_element* me);
static Direction static_dir (Score_element*);
- void translate_rests(int dy);
- Score_element * first_head ()const;
- Interval rest_dim ()const ;
- Note_column (SCM);
- void set_stem (Score_element*);
- void set_dotcol (Score_element*);
- void add_head (Score_element*);
- bool rest_b () const;
-
+ static void translate_rests(Score_element*me,int dy);
+ static Score_element * first_head (Score_element*me);
+ static Interval rest_dim (Score_element*me);
+ static void set_stem (Score_element*me,Score_element*);
+ static void set_dotcol (Score_element*me,Score_element*);
+ static void add_head (Score_element*me,Score_element*);
+ static bool rest_b (Score_element*me);
static bool has_interface (Score_element*);
-
- Item *stem_l()const;
+ static void set_interface (Score_element*);
+ static Item *stem_l(Score_element*);
};
#endif // NOTE_COLUMN_HH
diff --git a/lily/include/paper-column.hh b/lily/include/paper-column.hh
index 3b1756e8f1..5633cb0fb2 100644
--- a/lily/include/paper-column.hh
+++ b/lily/include/paper-column.hh
@@ -15,16 +15,14 @@
#include "spring.hh"
/**
- stuff grouped vertically.
- This is a class to address items vertically. It contains the data for:
- \begin{itemize}
- \item
- unbroken score
- \item
- broken score
- \item
- the linespacing problem
- \end{itemize}
+ bounded-by-me -- list of elts.
+
+ shortest-starter-duration -- rational signifying shortest moment that starts here
+
+
+ Interfaces:
+
+ axis-group, spaceable-element.
*/
class Paper_column : public Item
@@ -33,28 +31,10 @@ public:
VIRTUAL_COPY_CONS(Score_element);
/*
- ugh.
-
- TODO:
-
- * junk these after spacing is done.
-
- * Put these in Scheme.
- */
-
-
- Array<Column_rod> minimal_dists_;
- Array<Column_spring > springs_;
-
-
- /*
Not (yet) in scm, because of messy effects when a column commits suicide.
*/
int rank_i_;
- /// set a minimum distance
- void add_rod (Paper_column * to, Real distance);
- void add_spring (Paper_column * to, Real dist, Real strength);
-
+ virtual void do_break_processing ();
virtual Paper_column *column_l () const;
virtual Line_of_score *line_l () const;
@@ -65,10 +45,10 @@ public:
static int rank_i(Score_element*);
Paper_column (SCM);
- Moment when_mom ()const;
-
bool musical_b () const;
- bool used_b () const;
+ static Moment when_mom (Score_element*);
+
+ static bool used_b (Score_element*) ;
void set_rank (int);
};
diff --git a/lily/include/rest-collision.hh b/lily/include/rest-collision.hh
index 39a9fcd120..79b7b8aa72 100644
--- a/lily/include/rest-collision.hh
+++ b/lily/include/rest-collision.hh
@@ -16,7 +16,7 @@
class Rest_collision // interface
{
public:
- static void add_column (Score_element*me,Note_column*);
+ static void add_column (Score_element*me,Score_element*);
static void set_interface (Score_element*me);
static bool has_interface (Score_element*);
static Real force_shift_callback (Score_element *, Axis);
diff --git a/lily/include/rod.hh b/lily/include/rod.hh
index f76a4e5b0c..d795f539ad 100644
--- a/lily/include/rod.hh
+++ b/lily/include/rod.hh
@@ -13,13 +13,6 @@
#include "direction.hh"
#include "drul-array.hh"
-struct Column_rod
-{
- Paper_column *other_l_;
- Real distance_f_;
-
- Column_rod ();
-};
struct Rod
diff --git a/lily/include/score-element.hh b/lily/include/score-element.hh
index 0fd7fd077f..ebd656070d 100644
--- a/lily/include/score-element.hh
+++ b/lily/include/score-element.hh
@@ -139,8 +139,6 @@ public:
virtual void do_break_processing ();
virtual Score_element *find_broken_piece (Line_of_score*) const;
- /// generate rods & springs
- virtual void do_space_processing ();
virtual void discretionary_processing ();
virtual void do_derived_mark ();
diff --git a/lily/include/script.hh b/lily/include/script.hh
index b983b54716..0e4dfae387 100644
--- a/lily/include/script.hh
+++ b/lily/include/script.hh
@@ -10,19 +10,20 @@
#ifndef SCRIPT_HH
#define SCRIPT_HH
-#include "item.hh"
-#include "drul-array.hh"
+#include "lily-guile.hh"
+#include "lily-proto.hh"
/**
Articulation marks (and the like) that are attached to notes/stems.
Needs support from Staff_side for proper operation. Staff_side
handles the positioning.
*/
-class Script : public Item
+class Script
{
public:
- static Molecule get_molecule (Score_element*,Direction d);
- Script (SCM);
+ static Molecule get_molecule (Score_element*,Direction d);
+ static void set_interface (Score_element*);
+ static bool has_interface (Score_element*);
static SCM brew_molecule (SCM);
static SCM after_line_breaking (SCM);
};
diff --git a/lily/include/separating-group-spanner.hh b/lily/include/separating-group-spanner.hh
index 5c46dc3f8d..d01b6dbb51 100644
--- a/lily/include/separating-group-spanner.hh
+++ b/lily/include/separating-group-spanner.hh
@@ -12,14 +12,12 @@
#include "spanner.hh"
-class Separating_group_spanner : public Spanner
+class Separating_group_spanner
{
public:
static void add_spacing_unit (Score_element*me, Item*);
- Separating_group_spanner(SCM);
-protected:
- VIRTUAL_COPY_CONS(Score_element);
- virtual Array<Rod> get_rods () const;
+ static void set_interface (Score_element*);
+ static SCM set_spacing_rods (SCM);
};
#endif /* SEPARATING_GROUP_SPANNER_HH */
diff --git a/lily/include/simple-spacer.hh b/lily/include/simple-spacer.hh
index 0cc519fdbb..4f317b148a 100644
--- a/lily/include/simple-spacer.hh
+++ b/lily/include/simple-spacer.hh
@@ -73,7 +73,7 @@ struct Simple_spacer
Simple_spacer ();
void solve (Column_x_positions *) const;
- void add_columns (Link_array<Paper_column>);
+ void add_columns (Link_array<Score_element>);
void my_solve_linelen ();
void my_solve_natural_len ();
Real active_springs_stiffness () const;
diff --git a/lily/include/slur.hh b/lily/include/slur.hh
index c9f6052d5a..83d0900834 100644
--- a/lily/include/slur.hh
+++ b/lily/include/slur.hh
@@ -7,34 +7,28 @@
#ifndef SLUR_HH
#define SLUR_HH
-#include "spanner.hh"
+#include "lily-guile.hh"
+#include "lily-proto.hh"
#include "rod.hh"
-/**
- A #Bow# which tries to drape itself around the stems too.
- */
-class Slur : public Spanner
+class Slur
{
public:
- Slur (SCM);
- VIRTUAL_COPY_CONS(Score_element);
-
- void add_column (Note_column*);
- static SCM brew_molecule (SCM);
-
- Array<Offset> get_encompass_offset_arr () const;
- Bezier get_curve () const;
-
- Direction get_default_dir () const;
+ static void add_column (Score_element*me,Score_element*col);
+ static SCM brew_molecule (SCM);
+ static void set_interface (Score_element*);
+ static bool has_interface (Score_element*);
+ static Array<Offset> get_encompass_offset_arr (Score_element*me) ;
+ static Bezier get_curve (Score_element*me) ;
+ static Direction get_default_dir (Score_element*me) ;
static SCM after_line_breaking (SCM);
- Array<Rod> get_rods () const;
- Offset get_attachment (Direction dir, Score_element**common) const;
-
+ static SCM set_spacing_rods (SCM);
private:
- void de_uglyfy (Slur_bezier_bow* bb, Real default_height);
- void set_extremities ();
- void set_control_points ();
- Offset encompass_offset (Score_element *col,Score_element**common)const;
+ static Offset get_attachment (Score_element*me,Direction dir, Score_element**common) ;
+ static void de_uglyfy (Score_element*me,Slur_bezier_bow* bb, Real default_height);
+ static void set_extremities (Score_element*me);
+ static void set_control_points (Score_element*me);
+ static Offset encompass_offset (Score_element*me,Score_element *col,Score_element**common);
};
#endif // SLUR_HH
diff --git a/lily/include/spaceable-element.hh b/lily/include/spaceable-element.hh
new file mode 100644
index 0000000000..72a713ed4c
--- /dev/null
+++ b/lily/include/spaceable-element.hh
@@ -0,0 +1,29 @@
+/*
+ spaceable-element.hh -- declare Spaceable_element
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#ifndef SPACEABLE_ELEMENT_HH
+#define SPACEABLE_ELEMENT_HH
+
+#include "lily-guile.hh"
+#include "lily-proto.hh"
+
+
+struct Spaceable_element
+{
+ /// set a minimum distance
+ static void add_rod (Score_element*me, Score_element * to, Real distance);
+ static void add_spring (Score_element*me,Score_element * to, Real dist, Real strength);
+ static void set_interface (Score_element*);
+ static void remove_interface (Score_element*);
+ static SCM get_minimum_distances (Score_element*);
+ static SCM get_ideal_distances (Score_element*);
+};
+
+#endif /* SPACEABLE_ELEMENT_HH */
+
diff --git a/lily/include/spacing-engraver.hh b/lily/include/spacing-engraver.hh
deleted file mode 100644
index be6c44ff3c..0000000000
--- a/lily/include/spacing-engraver.hh
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- spacing-engraver.hh -- declare Spacing_engraver
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-
- */
-
-#ifndef SPACING_ENGRAVER_HH
-#define SPACING_ENGRAVER_HH
-
-#include "engraver.hh"
-#include "pqueue.hh"
-
-struct Rhythmic_tuple
-{
- Score_element_info info_;
- Moment end_;
-
- Rhythmic_tuple ()
- {
- }
- Rhythmic_tuple (Score_element_info i, Moment m )
- {
- info_ = i;
- end_ = m;
- }
- static int time_compare (Rhythmic_tuple const &, Rhythmic_tuple const &);
-};
-
-/**
- Acknowledge rhythmic elements, for initializing spacing fields in
- the columns.
-
- should be the last one of the toplevel context
-*/
-class Spacing_engraver : public Engraver
-{
- PQueue<Rhythmic_tuple> playing_durations_;
- Array<Rhythmic_tuple> now_durations_;
- Array<Rhythmic_tuple> stopped_durations_;
-
- Spacing_spanner * spacing_p_;
-protected:
- VIRTUAL_COPY_CONS(Translator);
- virtual void acknowledge_element (Score_element_info);
- virtual void do_post_move_processing ();
- virtual void do_pre_move_processing ();
- virtual void do_creation_processing ();
- virtual void do_removal_processing ();
-public:
- Spacing_engraver ();
-};
-
-#endif /* SPACING_ENGRAVER_HH */
-
diff --git a/lily/include/spacing-spanner.hh b/lily/include/spacing-spanner.hh
index c6e4bdd7cd..917b5fdc89 100644
--- a/lily/include/spacing-spanner.hh
+++ b/lily/include/spacing-spanner.hh
@@ -12,21 +12,17 @@
#include "spanner.hh"
-class Spacing_spanner : public Spanner
+class Spacing_spanner
{
public:
- Spacing_spanner (SCM);
-
- VIRTUAL_COPY_CONS(Score_element);
- Array<Spring> do_measure (Link_array<Paper_column>) const;
-
-protected:
- virtual Array<Spring> get_springs () const;
-
- Real stem_dir_correction (Paper_column*,Paper_column*) const;
- Real default_bar_spacing (Paper_column*,Paper_column*,Moment) const;
- Real note_spacing (Paper_column*,Paper_column*,Moment) const;
- Real get_duration_space (Moment dur, Moment shortest) const;
+ static void set_interface (Score_element*);
+ static void do_measure (Score_element*,Link_array<Score_element>) ;
+
+ static SCM set_springs (SCM);
+ static Real stem_dir_correction (Score_element*,Score_element*,Score_element*) ;
+ static Real default_bar_spacing (Score_element*,Score_element*,Score_element*,Moment) ;
+ static Real note_spacing (Score_element*,Score_element*,Score_element*,Moment) ;
+ static Real get_duration_space (Score_element*,Moment dur, Moment shortest) ;
};
#endif /* SPACING_SPANNER_HH */
diff --git a/lily/include/spanner.hh b/lily/include/spanner.hh
index 4ce355dd4c..dd5a61b21b 100644
--- a/lily/include/spanner.hh
+++ b/lily/include/spanner.hh
@@ -47,16 +47,11 @@ public:
Real spanner_length () const;
static int compare (Spanner * const &,Spanner * const &);
- virtual Array<Rod> get_rods () const;
- virtual Array<Spring> get_springs () const;
virtual Score_element* find_broken_piece (Line_of_score*) const;
virtual void do_derived_mark ();
protected:
void set_my_columns ();
VIRTUAL_COPY_CONS(Score_element);
-
-
- virtual void do_space_processing ();
virtual void do_break_processing ();
virtual Line_of_score*line_l () const;
};
diff --git a/lily/include/stem.hh b/lily/include/stem.hh
index d3b9eb8a1e..8c3e6f7691 100644
--- a/lily/include/stem.hh
+++ b/lily/include/stem.hh
@@ -7,10 +7,8 @@
#ifndef STEM_HH
#define STEM_HH
-#include "item.hh"
-#include "array.hh"
-#include "moment.hh"
-#include "molecule.hh"
+#include "lily-proto.hh"
+#include "lily-guile.hh"
#include "stem-info.hh"
/**the rule attached to the ball.
@@ -36,36 +34,29 @@
/// how many abbrev beam don't reach stem?
int beam_gap_i_;
-
-
*/
-class Stem : public Item
+class Stem
{
public:
static SCM brew_molecule (SCM);
/// log of the duration. Eg. 4 -> 16th note -> 2 flags
static int flag_i (Score_element*) ;
-
static int beam_count (Score_element*,Direction) ;
static void set_beaming (Score_element*,int, Direction d);
/**
don't print flag when in beam.
our beam, for aligning abbrev flags
*/
- static Beam * beam_l (Score_element*);
+ static Score_element * beam_l (Score_element*);
static Score_element * first_head (Score_element*) ;
static Drul_array<Score_element*> extremal_heads (Score_element*);
-
static Score_element * support_head (Score_element*) ;
- Stem (SCM);
-
+
/// ensure that this Stem also encompasses the Notehead #n#
static void add_head (Score_element*me, Score_element*n);
-
static Stem_info calc_stem_info (Score_element *) ;
-
static Real chord_start_f (Score_element *) ;
static Direction get_direction (Score_element*) ;
static int type_i (Score_element *) ;
@@ -73,13 +64,10 @@ public:
static Direction get_default_dir(Score_element *) ;
static int get_center_distance(Score_element *,Direction) ;
static int heads_i (Score_element *) ;
-
static bool invisible_b(Score_element *) ;
/// heads that the stem encompasses (positions)
static Interval head_positions(Score_element *) ;
-
-
static Real get_default_stem_end_position (Score_element*me) ;
static void position_noteheads(Score_element*);
static Real stem_end_position (Score_element*) ;
diff --git a/lily/include/system-start-delimiter.hh b/lily/include/system-start-delimiter.hh
index b5c500c6f7..121713d9e6 100644
--- a/lily/include/system-start-delimiter.hh
+++ b/lily/include/system-start-delimiter.hh
@@ -10,25 +10,24 @@
#ifndef SYSTEM_START_DELIMITER_HH
#define SYSTEM_START_DELIMITER_HH
-#include "spanner.hh"
+#include "lily-guile.hh"
+#include "lily-proto.hh"
/*
Braces/brackets across staffs.
*/
-class System_start_delimiter : public Spanner
+class System_start_delimiter
{
public:
- System_start_delimiter (SCM);
static SCM brew_molecule (SCM);
- VIRTUAL_COPY_CONS (Score_element);
-
+ static void set_interface (Score_element*me);
+ static bool has_interface (Score_element*);
static SCM after_line_breaking (SCM);
static void try_collapse (Score_element*);
-
- Molecule staff_bracket (Real) const;
- Molecule staff_brace (Real) const;
- Molecule simple_bar (Real) const;
+ static Molecule staff_bracket (Score_element*,Real) ;
+ static Molecule staff_brace (Score_element*,Real) ;
+ static Molecule simple_bar (Score_element*,Real) ;
};
#endif /* SYSTEM_START_DELIMITER_HH */
diff --git a/lily/include/tie-column.hh b/lily/include/tie-column.hh
index bbee8fede5..8dfab669bd 100644
--- a/lily/include/tie-column.hh
+++ b/lily/include/tie-column.hh
@@ -11,17 +11,15 @@
#ifndef TIE_COLUMN_HH
#define TIE_COLUMN_HH
-#include "spanner.hh"
+#include "lily-proto.hh"
+#include "lily-guile.hh"
-class Tie_column : public Spanner
+class Tie_column
{
public:
- Tie_column (SCM s);
- VIRTUAL_COPY_CONS (Score_element);
static void set_interface (Score_element*me);
static bool has_interface (Score_element*);
static void add_tie (Score_element*me,Tie*);
-
static SCM after_line_breaking (SCM);
static void set_directions (Score_element*me);
};
diff --git a/lily/include/tie.hh b/lily/include/tie.hh
index ea1f5f97f3..422a9fa375 100644
--- a/lily/include/tie.hh
+++ b/lily/include/tie.hh
@@ -38,7 +38,7 @@ public:
Bezier get_curve () const;
Drul_array<Real> dy_f_drul_;
Drul_array<Real> dx_f_drul_;
- virtual Array<Rod> get_rods () const;
+ static SCM set_spacing_rods (SCM);
Array<Offset> get_controls () const;
};