diff options
author | Han-Wen Nienhuys <hanwen@xs4all.nl> | 2000-07-05 15:41:25 +0200 |
---|---|---|
committer | Han-Wen Nienhuys <hanwen@xs4all.nl> | 2000-07-05 15:41:25 +0200 |
commit | 3c2f386f1385a10dafbb811be245f5a75d6b132c (patch) | |
tree | 057d298c5fc72aab670c3831e033f9b62d807dc2 /lily/include | |
parent | cb788160bb99e5c6d1e28ba9dd3be955b2a99edc (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.hh | 57 | ||||
-rw-r--r-- | lily/include/break-algorithm.hh | 6 | ||||
-rw-r--r-- | lily/include/collision.hh | 2 | ||||
-rw-r--r-- | lily/include/column-x-positions.hh | 2 | ||||
-rw-r--r-- | lily/include/item.hh | 2 | ||||
-rw-r--r-- | lily/include/line-of-score.hh | 2 | ||||
-rw-r--r-- | lily/include/multi-measure-rest.hh | 12 | ||||
-rw-r--r-- | lily/include/note-column.hh | 29 | ||||
-rw-r--r-- | lily/include/paper-column.hh | 44 | ||||
-rw-r--r-- | lily/include/rest-collision.hh | 2 | ||||
-rw-r--r-- | lily/include/rod.hh | 7 | ||||
-rw-r--r-- | lily/include/score-element.hh | 2 | ||||
-rw-r--r-- | lily/include/script.hh | 11 | ||||
-rw-r--r-- | lily/include/separating-group-spanner.hh | 8 | ||||
-rw-r--r-- | lily/include/simple-spacer.hh | 2 | ||||
-rw-r--r-- | lily/include/slur.hh | 38 | ||||
-rw-r--r-- | lily/include/spaceable-element.hh | 29 | ||||
-rw-r--r-- | lily/include/spacing-engraver.hh | 57 | ||||
-rw-r--r-- | lily/include/spacing-spanner.hh | 22 | ||||
-rw-r--r-- | lily/include/spanner.hh | 5 | ||||
-rw-r--r-- | lily/include/stem.hh | 22 | ||||
-rw-r--r-- | lily/include/system-start-delimiter.hh | 17 | ||||
-rw-r--r-- | lily/include/tie-column.hh | 8 | ||||
-rw-r--r-- | lily/include/tie.hh | 2 |
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; }; |