2 slur-scoring.hh -- declare Slur_score_parameters
4 source file of the GNU LilyPond music typesetter
6 (c) 2004--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
9 #ifndef SLUR_SCORING_HH
10 #define SLUR_SCORING_HH
13 #include "lily-proto.hh"
14 #include "std-vector.hh"
15 #include "lily-guile.hh"
16 #include "slur-score-parameters.hh"
18 struct Extra_collision_info
26 Extra_collision_info (Grob *g, Real idx, Interval x, Interval y, Real p);
27 Extra_collision_info ();
42 Real get_point (Direction dir) const
60 Interval slur_head_x_extent_;
73 struct Slur_score_state
76 Grob *common_[NO_AXES];
83 vector<Grob*> columns_;
84 vector<Encompass_info> encompass_infos_;
85 vector<Extra_collision_info> extra_encompass_infos_;
88 Slur_score_parameters parameters_;
89 Drul_array<Bound_info> extremes_;
90 Drul_array<Offset> base_attachments_;
91 vector<Slur_configuration*> configurations_;
98 Bezier get_best_curve ();
100 void set_next_direction ();
102 vector<Offset> generate_avoid_offsets () const;
103 Drul_array<Bound_info> get_bound_info () const;
104 void generate_curves () const;
105 vector<Slur_configuration*> enumerate_attachments (Drul_array<Real> end_ys) const;
106 Drul_array<Offset> get_base_attachments () const;
107 Drul_array<Real> get_y_attachment_range () const;
108 Encompass_info get_encompass_info (Grob *col) const;
109 vector<Extra_collision_info> get_extra_encompass_infos () const;
110 Real move_away_from_staffline (Real y, Grob *on_staff) const;
111 int get_closest_index (SCM inspect_quants) const;
113 Grob *breakable_bound_item (Direction) const;
116 void set_slur_control_points (Grob *me);
118 #endif /* SLUR_SCORING_HH */