X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fslur-scoring.hh;h=9cfa24acec20562c9f3fee5e3b91055aab7abcb9;hb=e3d67c22f5f44859df86b9e3f1c26526a7f765dc;hp=3d9049b217bbf7717cc40eebe6f6ea7296c4555c;hpb=3b3d3fbc987c37f9f639c1e8720d07653894d318;p=lilypond.git diff --git a/lily/include/slur-scoring.hh b/lily/include/slur-scoring.hh index 3d9049b217..9cfa24acec 100644 --- a/lily/include/slur-scoring.hh +++ b/lily/include/slur-scoring.hh @@ -1,71 +1,32 @@ -/* +/* slur-scoring.hh -- declare Slur_score_parameters - + source file of the GNU LilyPond music typesetter - - (c) 2004 Han-Wen Nienhuys - + + (c) 2004--2008 Han-Wen Nienhuys */ #ifndef SLUR_SCORING_HH #define SLUR_SCORING_HH #include "box.hh" -#include "lily-proto.hh" -#include "parray.hh" +#include "std-vector.hh" #include "lily-guile.hh" - -struct Slur_score_parameters -{ - int region_size_; - Real head_encompass_penalty_; - Real stem_encompass_penalty_; - Real closeness_factor_; - Real edge_attraction_factor_; - Real same_slope_penalty_; - Real steeper_slope_factor_; - Real non_horizontal_penalty_; - Real max_slope_; - Real max_slope_factor_; - Real extra_object_collision_; - Real accidental_collision_; - Real free_slur_distance_; - Real free_head_distance_; - Real extra_encompass_free_distance_; - Real absolute_closeness_measure_; - Real edge_slope_exponent_; - Real head_slur_distance_max_ratio_; - Real head_slur_distance_factor_; - - void fill (Grob *him); -}; - - +#include "slur-score-parameters.hh" struct Extra_collision_info { Real idx_; Box extents_; Real penalty_; - Grob * grob_; + Grob *grob_; + SCM type_; + + Extra_collision_info (Grob *g, Real idx, Interval x, Interval y, Real p); + Extra_collision_info (); - Extra_collision_info (Grob *g, Real idx, Interval x, Interval y, Real p) - { - idx_ = idx; - extents_[X_AXIS] = x; - extents_[Y_AXIS] = y; - penalty_ = p; - grob_ = g; - } - Extra_collision_info () - { - idx_ = 0.0; - penalty_ = 0.; - grob_ = 0; - } }; - struct Encompass_info { Real x_; @@ -95,7 +56,7 @@ struct Bound_info Grob *slur_head_; Grob *staff_; Grob *stem_; - Interval slur_head_extent_; + Interval slur_head_x_extent_; Real staff_space_; Bound_info () @@ -116,38 +77,40 @@ struct Slur_score_state bool edge_has_beams_; bool is_broken_; bool has_same_beam_; - + Real musical_dy_; - Link_array columns_; - Array encompass_infos_; - Array extra_encompass_infos_; - + vector columns_; + vector encompass_infos_; + vector extra_encompass_infos_; + Direction dir_; Slur_score_parameters parameters_; Drul_array extremes_; Drul_array base_attachments_; - Link_array configurations_; + vector configurations_; Real staff_space_; Real thickness_; - - Slur_score_state(); - ~Slur_score_state(); + + Slur_score_state (); + ~Slur_score_state (); Bezier get_best_curve (); - void fill (Grob*); + void fill (Grob *); void set_next_direction (); + vector generate_avoid_offsets () const; Drul_array get_bound_info () const; - void generate_curves () const; - Link_array enumerate_attachments (Drul_array end_ys) const; - Drul_array get_base_attachments() const; - Drul_array get_y_attachment_range() const; + void generate_curves () const; + vector enumerate_attachments (Drul_array end_ys) const; + Drul_array get_base_attachments () const; + Drul_array get_y_attachment_range () const; Encompass_info get_encompass_info (Grob *col) const; - Array get_extra_encompass_infos () const; + vector get_extra_encompass_infos () const; Real move_away_from_staffline (Real y, Grob *on_staff) const; int get_closest_index (SCM inspect_quants) const; -}; + Grob *breakable_bound_item (Direction) const; +}; void set_slur_control_points (Grob *me);