2 slur-scoring.hh -- declare Slur_score_parameters
4 source file of the GNU LilyPond music typesetter
6 (c) 2004--2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
9 #ifndef SLUR_SCORING_HH
10 #define SLUR_SCORING_HH
13 #include "lily-proto.hh"
15 #include "lily-guile.hh"
17 struct Slur_score_parameters
20 Real head_encompass_penalty_;
21 Real stem_encompass_penalty_;
22 Real closeness_factor_;
23 Real edge_attraction_factor_;
24 Real same_slope_penalty_;
25 Real steeper_slope_factor_;
26 Real non_horizontal_penalty_;
28 Real max_slope_factor_;
29 Real extra_object_collision_;
30 Real accidental_collision_;
31 Real free_slur_distance_;
32 Real free_head_distance_;
33 Real extra_encompass_free_distance_;
34 Real absolute_closeness_measure_;
35 Real edge_slope_exponent_;
36 Real head_slur_distance_max_ratio_;
37 Real head_slur_distance_factor_;
39 void fill (Grob *him);
42 struct Extra_collision_info
49 Extra_collision_info (Grob *g, Real idx, Interval x, Interval y, Real p)
57 Extra_collision_info ()
76 Real get_point (Direction dir) const
94 Interval slur_head_extent_;
107 struct Slur_score_state
110 Grob *common_[NO_AXES];
112 bool edge_has_beams_;
117 Link_array<Grob> columns_;
118 Array<Encompass_info> encompass_infos_;
119 Array<Extra_collision_info> extra_encompass_infos_;
122 Slur_score_parameters parameters_;
123 Drul_array<Bound_info> extremes_;
124 Drul_array<Offset> base_attachments_;
125 Link_array<Slur_configuration> configurations_;
130 ~Slur_score_state ();
132 Bezier get_best_curve ();
134 void set_next_direction ();
136 Array<Offset> Slur_score_state::generate_avoid_offsets () const;
137 Drul_array<Bound_info> get_bound_info () const;
138 void generate_curves () const;
139 Link_array<Slur_configuration> enumerate_attachments (Drul_array<Real> end_ys) const;
140 Drul_array<Offset> get_base_attachments () const;
141 Drul_array<Real> get_y_attachment_range () const;
142 Encompass_info get_encompass_info (Grob *col) const;
143 Array<Extra_collision_info> get_extra_encompass_infos () const;
144 Real move_away_from_staffline (Real y, Grob *on_staff) const;
145 int get_closest_index (SCM inspect_quants) const;
148 void set_slur_control_points (Grob *me);
150 #endif /* SLUR_SCORING_HH */